# Галерея компонентов UI

Витрина компонентов пользовательского интерфейса ОС Аврора. Демонстрация работы с Silica и заготовки для более комплексных пользовательских компонентов.

Статус сборки:
* example - [![pipeline status](https://gitlab.com/omprussia/demos/UiComponentGallery/badges/example/pipeline.svg)](https://gitlab.com/omprussia/demos/UiComponentGallery/-/commits/example)
* dev - [![pipeline status](https://gitlab.com/omprussia/demos/UiComponentGallery/badges/dev/pipeline.svg)](https://gitlab.com/omprussia/demos/UiComponentGallery/-/commits/dev)

### Компоненты

**Элементы управления**

Кнопки
[ButtonPage.qml](qml/pages/ButtonPage.qml)

Поле со списком
[ComboBoxPage.qml](qml/pages/ComboBoxPage.qml)

Список и меню
[ListPage.qml](qml/pages/ListPage.qml)

Сетка и меню
[GridPage.qml](qml/pages/GridPage.qml)

Ползунок
[SliderPage.qml](qml/pages/SliderPage.qml)

Индикаторы прогресса
[ProgressPage.qml](qml/pages/ProgressPage.qml)

Уведомления в приложении
[NoticePage.qml](qml/pages/NoticePage.qml)

Всплывающее меню
[PopupMenuPage.qml](qml/pages/PopupMenuPage.qml)

AppBar
[AppBarPage.qml](qml/pages/AppBarPage.qml)

**Текст**

Форматирование
[FormatterPage.qml](qml/pages/FormatterPage.qml)

Метки
[LabelPage.qml](qml/pages/LabelPage.qml)

Ввод текста
[TextInputPage.qml](qml/pages/TextInputPage.qml)

Вход в учетную запись
[SignInDialog.qml](qml/pages/SignInDialog.qml)

Пример формы
[FormDialog.qml](qml/pages/FormDialog.qml)

**Вид**

Обложка
[CoverPage.qml](qml/pages/CoverPage.qml)

Образцы обложек
[SampleCoverPage.qml](qml/pages/SampleCoverPage.qml)

Диалоги
[DialogPage.qml](qml/pages/DialogPage.qml)

Ориентация
[OrientationPage.qml](qml/pages/OrientationPage.qml)

Стек страниц
[PageStackPage.qml](qml/pages/PageStackPage.qml)

Подсказки касаний
[InteractionHintPage.qml](qml/pages/InteractionHintPage.qml)

Split view
[SplitViewPage.qml](qml/pages/SplitViewPage.qml)

Панели и секции
[PanelPage.qml](qml/pages/PanelPage.qml)

Веб-просмотр
[WebViewPage.qml](qml/pages/WebViewPage.qml)

**Стилизация и эффекты**

Эффекты
[EffectPage.qml](qml/pages/EffectPage.qml)

Тактильная связь
[HapticPage.qml](qml/pages/HapticPage.qml)

Плавный уход в прозрачность
[OpacityRampPage.qml](qml/pages/OpacityRampPage.qml)

Шрифт
[FontPage.qml](qml/pages/FontPage.qml)

Палитра
[PalettePage.qml](qml/pages/PalettePage.qml)

**Пример**

Поиск
[SearchPage.qml](qml/pages/SearchPage.qml)

Вырезы экрана: страница отладки
[CutoutDebugPage.qml](qml/pages/CutoutDebugPage.qml)

Формы: декларативные переключатели
[DeclarativeRadioButtonsPage.qml](qml/pages/DeclarativeRadioButtonsPage.qml)

Формы: радиокнопки с моделью
[RadioButtonsModelPage.qml](qml/pages/RadioButtonsModelPage.qml)

ListView с бегущей строкой
[ListViewWithRunningLinePage.qml](qml/pages/ListViewWithRunningLinePage.qml)

## Условия использования и участия

Исходный код проекта предоставляется по [лицензии](LICENSE.BSD-3-Clause.md),
которая позволяет использовать его в сторонних приложениях.

[Соглашение участника](CONTRIBUTING.md) регламентирует права,
предоставляемые участниками компании «Открытая Мобильная Платформа».

Информация об участниках указана в файле [AUTHORS](AUTHORS.md).

[Кодекс поведения](CODE_OF_CONDUCT.md) — это действующий набор правил
компании «Открытая Мобильная Платформа»,
который информирует об ожиданиях по взаимодействию между членами сообщества при общении и работе над проектами.

## Структура проекта

Проект имеет стандартную структуру приложения на базе C++ и QML для ОС Аврора.

* Файл **[ru.auroraos.UiComponentGallery.pro](ru.auroraos.UiComponentGallery.pro)** описывает структуру проекта для системы сборки qmake.
* Каталог **[icons](icons)** содержит иконки приложения для поддерживаемых разрешений экрана.
* Каталог **[qml](qml)** содержит исходный код на QML и ресурсы интерфейса пользователя.
  * Каталог **[components](qml/components)** содержит вспомогательные QML компоненты.
  * Каталог **[cover](qml/cover)** содержит реализации обложек приложения.
  * Каталог **[icons](qml/icons)** содержит дополнительные иконки интерфейса пользователя.
  * Каталог **[pages](qml/pages)** содержит страницы приложения.
  * Файл **[UiComponentGallery.qml](qml/UiComponentGallery.qml)** предоставляет реализацию окна приложения.
* Каталог **[rpm](rpm)** содержит настройки сборки rpm-пакета.
  * Файл **[ru.auroraos.UiComponentGallery.spec](rpm/ru.auroraos.UiComponentGallery.spec)** используется инструментом rpmbuild.
* Каталог **[src](src)** содержит исходный код на C++.
  * Файл **[main.cpp](src/main.cpp)** является точкой входа в приложение.
  * Файл **[selectgroupmodel.h](src/selectgroupmodel.h)** содержит объявление модели selectgroup.
  * Файл **[selectgroupmodel.cpp](src/selectgroupmodel.cpp)** содержит определение модели selectgroup.
* Каталог **[translations](translations)** содержит файлы перевода интерфейса пользователя.
* Файл **[ru.auroraos.UiComponentGallery.desktop](ru.auroraos.UiComponentGallery.desktop)** определяет отображение и параметры запуска приложения.

## Совместимость

Проект совместим с актуальными версиями ОС Аврора.

## UI-тесты

Данный проект используется в качестве примера для демонстрации возможностей автоматизированного UI-тестирования с помощью 
драйвера [qtium-driver](https://developer.auroraos.ru/doc/5.1.5/software_development/guides/application_testing/qtium_driver). 
Подробнее см. проект [UiComponentGalleryTestExample](https://gitlab.com/omprussia/testing/UiComponentGalleryTestExample).

## Снимки экранов

![screenshots](screenshots/screenshots.png)

## This document in English

- [README.md](README.md)
