/Astra-Test-Task-2023

Primary LanguageMakefileApache License 2.0Apache-2.0

Тестовое задание в компанию ГК "Астра"

Сентябрь 2023 Автор: Чудинов Дмитрий Tg: @dchudik

Задание:

  1. Установить Astra Linux (2.12 или 1.7) на виртуальную машину
  2. Обновиться до последней версии
  3. Необходимо реализовать графическое приложение, которое будет отображать дерево файловой системы 3.1. Сделать стартовой директорией домашнюю директорию текущего пользователя. То есть того пользователя что запускает утилиту 3.2. Отображать файлы, папки, в том числе и скрытые 3.3. Добавить QLineEdit виджет, который использовать для фильтрации по имёнам файлов и папок
  4. Пришлите готовый код и скриншот. Желательно ссылку на репозиторий GitHub/GitLab/BitBucket

Выполнять можно на С++/Qt или Python/PyQt. Для С++ за основу можно взять examples/widgets/itemviews/dirview из пакета qtbase5-examples.

Решение:

Программа реализована на базе фреймворка QT (Версия 5). С использованием языка C++.

Описание решения:

Интерфейс реализован в виде отдельного виджета.

  1. Для отображения файлов и директорий используются компоненты QTreeView
  2. Для ввода строки поиска QLineEdit
  3. Для фильтра по именам файлов и папок используется QFileSystemModel

Комментарии:

В задании не указано требуется ли рекурсивный поиск по папкам или нет. Если его надо сделать, то я бы попробовал следующие варианты:

  1. Через QProxyModel реализовать получение файлов и формирование модели.
  2. Сделать костомную модель для QTreeView и в неё поместить список файлов который сформирую через рекурсивный поиск.

Скриншоты Ubuntu

  1. Без фильтров

Без фильтров

  1. С фильтром

С фильтром

Скриншоты Astra

  1. Без фильтров

Без фильтров

  1. С фильтром

С фильтром

  1. Информация об установленном Astra Linux

Astra Linux 1.7

Инструкция по запуску на Astra Linux

  1. Скачать пакеты git, make, qt5-default

    sudo apt install git make qt5-default
  2. Скачать исходный код

    git clone https://github.com/dchudik/Astra-Test-Task-2023
  3. Перейти в папку

     cd Astra-Test-Task-2023/
  4. Подготовить make файл

    qmake dirviewer.pro
  5. Собрать программу через make

    make
  6. Запустить программу

    ./dirviewer