|
|
3 years ago | |
|---|---|---|
| .. | ||
| layout | 3 years ago | |
| 3 years ago | ||
| pic | 3 years ago | |
| README.md | 3 years ago | |
README.md
ТЕХНИЧЕСКОЕ ЗАДАНИЕ на разработку утилиты ubl-settings-video
-
ОПИСАНИЕ:
Графическое средство настройки вывода изображения в ОС UBLinux
-
ЭТАПЫ И СРОКИ СОЗДАНИЯ ПРИЛОЖЕНИЯ:
- Общий срок работ по созданию приложения составляет N дней:
- N дня - макет и дизайн приложения и его утверждение
- N дней - разработка приложения
- N дня - тестирование приложения и исправление ошибок
- Перечень этапов разработки приложения:
- Разработка макета и дизайна приложения
- Утверждение и доработка макета
- Создание работающего интерфейса, включая полную разработку действующих ярлыков, кнопок и т.д.
- Проектирование алгоритма работы приложения
- Написание работающего кода приложения, включая полноценно работающие элементы графического интерфейса, а также перевод (поддержка локализации En, Ru), самостоятельно
- Тестирование и исправление ошибок, самостоятельно
- Публикация
- Общий срок работ по созданию приложения составляет N дней:
-
ТЕХНОЛОГИЧЕСКИЕ ТРЕБОВАНИЯ:
- Приложение разрабатывается под нужды операционной системы UBLinux
- Использование фирменного логотипа компании
- Название приложения, техническое: ubl-settings-video (далее ${NAME_APPLICATION})
- Название приложения, публичное: Настройки видеоадаптера и дисплея
- Стек технологий:
- Язык программирования: Bash или C(++)
- Приложение для разработки графического интерфейса: Glade 3
- Графические библиотеки: GTK3
- Операционная система разработки: UBLinux DB
- Структура:
- В исходных кодах использовать префикс корня CMAKE_INSTALL_PREFIX для сборки приложений. Например,
CMAKE_INSTALL_PREFIX/share. - Bash/C(++): Весь функционал сосредоточен в графической части, вызовы и исполнение процедур написаны на языках Bash, C(++) /usr/bin/${NAME_APPLICATION} (скомпилированный бинарный файл)
- Графическая часть, фронт /usr/share/${NAME_APPLICATION}/ui/${NAME_APPLICATION}.glade
- Стили виджетов GTK /usr/share/${NAME_APPLICATION}/css/${NAME_APPLICATION}.css
- Элементы изображений
- Иконки:
/usr/share/icons/hicolor/scalable/apps/${NAME_APPLICATION}{*.png,*.svg}
Файлы изображений png иконок должны иметь имена вида:
- ru.ublinux.${NAME_APPLICATION}.svg
- ru.ublinux.${NAME_APPLICATION}.${NAME_ICONS}.svg Где ${NAME_ICONS} - имя графического элемента, например: checked, warning, alert и т.д. Файлы изображений png иконок должны генерироваться из svg файла в размеры 16, 32, 48, 64 пикселей сценарием make-файла.
- Изображения: /usr/share/${NAME_APPLICATION}/ui/{*.png,*.svg}
- Иконки:
/usr/share/icons/hicolor/scalable/apps/${NAME_APPLICATION}{*.png,*.svg}
Файлы изображений png иконок должны иметь имена вида:
- Локализация En/Ru
-
Для локализации должен быть создан файл-шаблон ${NAME_APPLICATION}.pot, на его основе должны быть созданы сами po-файлы переводов на необходимые языки, через файл сборки из po-файлов компилируются mo-файлы и размещаются сценарием установки по указанному пути: /usr/share/locale/${LANG}/LC_MESSAGES/${FILE_MO} где ${LANG} - каталог с именем локали, например, "ru" или "ru_RU", ${FILE_MO} - файл локализации программы, например, "${NAME_APPLICATION}.mo"
-
В файле локализации .pot и .po должна присутствовать строчка информационная, показывающая позицию локализации в коде
Пример:
#: source/${NAME_APPLICATION}.c:41 msgid "Example string for localization" msgstr "Пример строки для локализации" -
Вывод всех текстовых элементов осуществляется через средства локализации.
-
- Версия ПО
- Файл, в котором хранится версия - VERSION.md, находится в корне каталога проекта.
- При компиляции (через сценарий make-файла) данные из файла VERSION.md передаются в значение переменной (-ых) version_application в файлах-исходниках ПО.
- В исходных кодах использовать префикс корня CMAKE_INSTALL_PREFIX для сборки приложений. Например,
-
ТЕХНИЧЕСКОЕ ЗАДАНИЕ:
- Ярлык (desktop-файл):
- Type: Application
- Exec: ubl-settings-video
- Categories: X-UBL-SettingsManager;X-UBL-SystemSettings
- Главное окно:
- Требования к внешнему виду:
- Адаптивный (резиновый) дизайн.
- Наличие элементов интерфейса:
- Статических - не меняют свою ширину при изменении размеров окна или родительского элемента.
- Динамических - меняют свою ширину при изменении размеров окна или родительского элемента. Обычно занимают пространство от края до края окна или родительского элемента, либо пространство от рядом расположенного элемента до до края окна или родительского элемента.
- Минимальный размер окна до прекращения масштабирования 800 на 600 пикселей.
- Шапка в стиле приложений GTK3 с содержимым:
- Иконка приложения. Статический элемент. Выравнивание по левому краю.
- Кнопка с выпадающим списком "Загрузить" -> ("Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию"). Статический элемент. Выравнивание по левому краю.
- Заголовок окна, название приложения. Выравнивание по центру между элементами.
- Кнопка с выпадающим списком "Сохранить" -> ("Сохранить глобальную и локальную конфигурацию, Сохранить глобальную конфигурацию, Сохранить локальную конфигурацию"). Статический элемент. Выравнивание по правому краю.
- Кнопка с иконкой с выпадающим списком -> "Справка, О приложении". Статический элемент. Выравнивание по правому краю.
- Стандартные элементы окна, кнопки "Свернуть, Минимизировать/На весь экран, Закрыть"
- В верхней части крупный логотип утилиты, с права от него краткое описание утилиты. Фон заполнен изображением. Статические элементы. Выравнивание по левому краю.
- Строка уведомления, представляющая собой полосу с инфографикой строки уведомлений. Динамический элемент. От края до края окна по горизонтали.
- Рабочая область.
- Требования к "Рабочей области". Динамический элемент. От края до края по горизонтали и вертикали окна. Выводятся группы настроек запуска:
- Блок с заголовком "Драйвер". Динамический элемент. От края до края окна по горизонтали.
- чекбокс "Автоматический выбор и использование драйвера". Статический элемент. Выравнивание по левому краю.
- лэйбл "Проприетарный драйвер:". Статический элемент. Выравнивание по левому краю. Неактивен, если активирован чекбокс "Автоматический выбор и использование драйвера".
- текстовое поле, активное, недоступное для редактирования. Содержит в себе текст с наименованием используемого проприетарного драйвера. Если проприетарный драйвер не используется - выводится надпись "Не используется". Динамический элемент. Выравнивание по левому краю. Делит пространство с соседними элементами. Неактивен, если активирован чекбокс "Автоматический выбор и использование драйвера".
- кнопка с иконкой "Настроить". Вызов окна "Настройка проприетарного драйвера". Статический элемент. Выравнивание по левому краю. Неактивна, если активирован чекбокс "Автоматический выбор и использование драйвера".
- лэйбл "Отказоустойчивый драйвер nVidia:". Статический элемент. Выравнивание по левому краю.
- комбобокс с вариантами выбора отказоустойчивого драйвера nVidia: "Отключен", "fbdev". Динамический элемент. Выравнивание по левому краю. Делит пространство с соседними элементами.
- лэйбл "Отказоустойчивый драйвер AMD/ATI:". Статический элемент. Выравнивание по левому краю.
- комбобокс с вариантами выбора отказоустойчивого драйвера AMD/ATI: "Отключен", "fbdev". Динамический элемент. Выравнивание по левому краю. Делит пространство с соседними элементами.
- Блок с заголовком "Настройка экрана". Динамический элемент. От края до края окна по горизонтали.
- динамические элементы (могут перемещаться друг относительно друга), представленные иконками дисплеев, включающих в себя графические элементы:
- иконка "звёздочка" - видна у монитора с атрибутом "Основной". Статический элемент. Выравнивание по левому краю.
- иконка "шестерёнка" - видна у всех, вызывает окно "Настройка: Монитор [ПОРТ_ПОДКЛЮЧЕНИЯ]". Статический элемент. Выравнивание по левому краю.
- чекбокс "Не выключать дисплеи". Статический элемент. Выравнивание по левому краю.
- динамические элементы (могут перемещаться друг относительно друга), представленные иконками дисплеев, включающих в себя графические элементы:
- Блок с заголовком "Гибридная графика". Динамический элемент. От края до края окна по горизонтали.
- чекбокс "Только дискретное видео (AMD/ATI)". Статический элемент. Выравнивание по левому краю.
- Блок с заголовком "Дополнительно". Динамический элемент. От края до края окна по горизонтали.
- Блок с заголовком "Драйвер". Динамический элемент. От края до края окна по горизонтали.
- Требования к внешнему виду:
- Ярлык (desktop-файл):
-
ОСОБЕННОСТИ
- При загрузке утилиты по умолчанию загружаются данные из локального конфигурационного файла (выполняются команды блоков "Чтение значений: из локального конфигурационного файла").
- Функции записи в локальный конфигурационный файл и чтения-записи в глобальный конфигурационный файл должны проходить процедуру повышения привилегий прав пользователя через polkit.
- Сохранение должно происходить только при наличии изменённых данных в элементах форм приложения, в противном случае выводить в информационной строке сообщение: "Нечего сохранять!".
- Кнопка "Загрузить" -> ("Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию"). При нажатии на кнопку происходит открытие меню с пунктами: "Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию". Загрузка текущей и глобальной конфигурации в системе через скрипт ubconfig (выполняются команды блоков "Чтение значений: из локального конфигурационного файла"), загрузка конфигурации из файла настроек ОС ublinux.ini (выполняются команды блоков "Чтение значений: из глобального конфигурационного файла").
- Кнопка "Сохранить" -> ("Сохранить глобальную и локальную конфигурацию). Сохраняет текущие настройки через скрипт ubconfig (выполняются команды блоков "Установить значение: в локальный конфигурационный файл") и в конфигурационный файл настроек ОС ublinux.ini (выполняются команды блоков "Установить значение: в глобальный конфигурационный файл"). При выборе пунктов "Сохранить глобальную конфигурацию, Сохранить локальную конфигурацию" происходит отдельное сохранение настроек.
- Обработчик ошибок. Встроенный небольшой обработчик кодов внутренних ошибок, который должен передавать статус возникшей ошибки в строку уведомления. Например: "Невозможно прочитать значение параметра XXXXXX!"
- Строка уведомлений. Цвет в зависимости от сигнала:
- песочный, пиктограмма "Птичка", сообщения об удачных загрузках или сохранениях конфигураций системы.
- красный, пиктограмма "Восклицательный знак", сообщения об ошибках при сохранении, загрузке параметров конфигурации, при ошибках в работе программы, полученных от обработчика ошибок.
- Кнопка с иконкой с выпадающим списком -> "Справка, О приложении"
- Справка - запуск окна с встроенным браузером (WebKitWebView) с переходом на ссылку:
- локализованный (ru_RU) вариант: https://wiki.ublinux.ru/ru/Программное_обеспечение/Программы_и_утилиты/Все/${NAME_APPLICATION} (далее ${URLWIKI})
- локализованный (en_EN) вариант:
https://wiki.ublinux.com/ru/Программное_обеспечение/Программы_и_утилиты/Все/${NAME_APPLICATION} (далее ${URLWIKI})
Если WebKitWebView не доступен, то запуск через
xdg-open ${URLWIKI}.
- О приложении. Открывается диалоговое окно с выводом информации о программе:
- Заголовок окна по локализованному названию утилиты
- Копирайты, порядок:
- Иконка приложения
- Название утилиты
- Версия программы (переменная version_application)
- Название утилиты, локализованное
- Ссылка "Домашняя страница проекта" на https://ublinux.ru/
- Авторские права © ООО "Юбисофт", 2022 - $LASTYEAR
- локализованный (en_EN) вариант: "Copyright © UBSoft LLC, 2022 - $LASTYEAR"
- где $LASTYEAR - текущий год.
- Справка - запуск окна с встроенным браузером (WebKitWebView) с переходом на ссылку:
-
КОМАНДЫ
-
ПОМОЩЬ И ПАРАМЕТРЫ ЗАПУСКА
-
Помощь
-
Пример вывода:
${NAME_APPLICATION} version: $VERSION Application Description for UBLinux
Использование: ${NAME_APPLICATION} [OPTIONS...] Параметры приложения: $OPTIONS
Где $OPTIONS - параметры запуска, $VERSION - версия программы (переменная version_application).
-
-
Параметры запуска:
- -h, --help - Показать параметры справки
- -V, --version - Показать текущую версию
- --lock-help - Блокировка вызова справки
- --lock-save - Блокировка сохранения локальной и глобальной конфигурации
- --lock-save-local - Блокировка сохранения локальной конфигурации
- --lock-save-global - Блокировка сохранения глобальной конфигурации
- --lock-load-global - Блокировка загрузки глобальной конфигурации
-
Действия при указанных параметрах:
- --lock-help - делать неактивным пункт "Справка" в выпадающем списке кнопки с иконкой.
- --lock-save - делать неактивной кнопку "Сохранить".
- --lock-save-local - делать неактивным пункт "Сохранить локальную конфигурацию" в выпадающем списке кнопки "Сохранить".
- --lock-save-global - делать неактивным пункт "Сохранить глобальную и локальную конфигурацию" и "Сохранить глобальную конфигурацию" в выпадающем списке кнопки "Сохранить".
- --lock-load-global - делать неактивным пункт "Сохранить глобальную и локальную конфигурацию" и "Загрузить глобальную конфигурацию" в выпадающем списке кнопки "Загрузить".
-
-
ПРИБЛИЗИТЕЛЬНЫЙ МАКЕТ ПРИЛОЖЕНИЯ.
- Главное окно