GUI клиент WebDav для ОС Аврора
Приложение с графическим пользовательским интерфейсом, которое позволяет взаимодействовать
с удалённым WebDav сервером. Приложение позволяет взаимодействовать с такими сервисами, как
NextCloud, Yandex.Disk и Communigate.
Для сборки и запуска приложения нужно указать CLIENT_ID и CLIENT_SECRET. Эти значения нужны аутентификации через
протокол OAuth токенов авторизации API Яндекса. Каждый токен предоставляет приложению доступ к
данным пользователя. Получить CLIENT_ID и CLIENT_SECRET можно тут oauth.yandex.ru.
Особенности
Приложение протестировано на наличие следующих возможностей:
- Приложение позволяет авторизоваться через сервисы NextCloud, Яндекс.Диск, Communigate и WebDav.
- Приложение показывает уведомление об ошибке при неверных учетных данных пользователя.
- Приложение показывает удаленные файлы и директории пользователя.
- Приложение позволяет перемещаться по иерархии удаленной файловой системы.
- Приложение отображает данные о каждом файле и директории в удаленном каталоге.
- Приложение позволяет удалять любые файлы и директории с удаленного сервера.
- Приложение позволяет создавать новые директории на удаленном сервере. Имя папки не должно быть пустым или содержать запрещенные символы.
- Приложение позволяет копировать файлы и директории с удаленного сервера на локальное устройство.
- Приложение позволяет перемещать файлы и директории с удаленного сервера на локальное устройство.
- Приложение позволяет копировать файлы и директории с локального устройства на удаленный сервер.
- Приложение позволяет переименовывать файлы и директории на удаленном сервере.
- Приложение позволяет перемещать файлы и директории на удаленном сервере.
- Приложение позволяет кэшировать файлы с удаленного сервера для их локального редактирования.
WebDav API
Проект использует библиотеку qwebdavlib, которая реализует WebDav API для взаимодействия с удалённым сервером.
Используемые методы QWebDav:
- QWebDav::setConnectionSettings() используется внутри классов операций для установки параметров подключения к удалённому серверу.
- QWebDav::setToken() используется внутри большинства классов операций для выполнения операций с удалённым сервером.
- QWebDav::mkdir() используется внутри класса CreateFolderOperation для создания новой директории на удалённом сервере.
- QWebDav::remove() используется внутри класса DeleteFileOrDirectoryOperation для удаления файлов или директорий на удалённом сервере.
- QWebDav::get() используется внутри класса DownloadFileOperation для получения файла с удалённого сервера. Также этот метод используется внутри класса DownloadFolderOperation для получения директорий. Также этот метод используется внутри класса GetUserInfoOperation для получения информации о текущем авторизованном пользователе.
- QWebDav::move() используется внутри класса MoveFileOrDirectoryOperation для перемещения файлов и директорий на удалённом сервере. Также этот метод используется внутри класса RenameFileOrDirectoryOperation для переименования файлов и директорий.
- QWebDav::put() используется внутри классов UploadFileOperation и UploadFolderOperation для загрузки файлов и директорий на удалённый сервер.
- QWebdavDirParser::listDirectory() используется внутри класса DownloadFolderOperation для получения списка вложенных директорий для рекурсивной загрузки.
- QWebdavDirParser::getFileInfo() используется внутри класса FileInfoOperation для получения информации о файле.
Рекомендации по разработке
При разработке следует учитывать следующие рекомендации.
Варианты использования
С вариантами использования приложения можно ознакомиться в руководстве по использованию приложения.
Условия использования и участия
Исходный код проекта предоставляется по лицензии, которая позволяет использовать его в сторонних приложениях.
Соглашение участника регламентирует права, предоставляемые участниками компании «Открытая Мобильная Платформа».
Информация об участниках указана в файле AUTHORS.
Кодекс поведения — это действующий набор правил компании «Открытая Мобильная Платформа», который информирует об ожиданиях по взаимодействию между членами сообщества при общении и работе над проектами.
Структура проекта
Проект имеет стандартную структуру приложения на базе C++ и QML для ОС Аврора.
- Файл ru.auroraos.AuroraOsWebDavGuiClient.pro описывает структуру проекта для системы сборки qmake.
- Подпроект app содержит исходный код приложения:
- Файл app.pro описывает структуру проекта для системы сборки qmake
- Каталог icons содержит иконки приложения для поддерживаемых разрешений экрана.
- Каталог qml содержит исходный код на QML и ресурсы интерфейса пользователя.
- Каталог components содержит пользовательские компоненты пользовательского интерфейса.
- Каталог cover содержит реализации обложек приложения.
- Каталог dialogs содержит диалоги приложения.
- Каталог icons содержит дополнительные иконки интерфейса пользователя.
- Каталог pages содержит страницы приложения.
- Файл AuroraOsWebDavGuiClient.qml предоставляет реализацию окна приложения.
- Каталог src содержит исходный код на C++.
- Файл main.cpp является точкой входа в приложение.
- Каталог translations содержит файлы перевода интерфейса пользователя.
- Файл ru.auroraos.AuroraOsWebDavGuiClient.desktop определяет отображение и параметры запуска приложения.
- Файл resources.qrc описывает ресурсы приложения.
- Подпроект core содержит исходный код основной библиотеки:
- Файл core.pro описывает структуру подпроекта для системы сборки qmake.
- Каталог controllers содержит C++ классы контроллеров приложения.
- Каталог models содержит C++ классы моделей приложения.
- Каталог operations содержит C++ классы операций приложения.
- Каталог types содержит C++ классы с пользовательскими типами.
- Каталог utils содержит C++ классы утилит.
- Каталог docs содержит документацию по проекту:
- Файл build.md описывает сборки приложения.
- Файл coding_conventions.md описывает соглашение по разработке.
- Подпроект libs содержит внешние библиотеки приложения:
- Файл libs.pro описывает структуру подпроекта для системы сборки qmake.
- Подпроект qwebdavlib содержит исходный код библиотеки QWebDav.
- Каталог rpm содержит настройки сборки rpm-пакета.
- Файл ru.auroraos.AuroraOsWebDavGuiClient.spec используется инструментом rpmbuild.
Сборка проекта
Инструкция по сборке приложения находится в файле docs/build.ru.md.