Документация для разработчиков

Для расширения ПО под ваши предложения следует прочитать мини-документацию или написать создателю: @NiyazyanGerman

Основные классы для разработки

1. Класс LogicOperation

Один из основных классов, в котором реализуется вся работа "за кулисами".

Важно: Ни в коем случае не работаем с UI элементами напрямую. Для этого есть buildform.

Там реализуем логику взаимодействия с интерфейсом.

2. Класс Validator

Класс для работы с проверками технических элементов ПО.

Реализует связи между UI и backend, а также проверки данных.

3. Класс Logger

Класс для логгирования работы вашего кода в файлы любого расширения.

Поддерживает метод: write(const std::string_view& msg)

// Формат выходных данных: дата сообщение
// Пример использования:
logger << "Текст сообщения";
logger << currPath;

Ограничение: Логгер не поддерживает копирование и присваивание.

Создание логгера:

// Конструктор закрыт, используем статический метод
std::shared_ptr<Log> logger = Log::create(FileName);

4. Класс JSonKeys

Класс для работы с ключами и данными, которые предоставляют выбор или часто используются.

Например: организация для реестра, ключи для JSON, данные для комбобоксов.

5. Класс SerializerData

Класс для сохранения настроек в реестр Windows.

Для работы необходимо понимать основы сериализации и класс QSettings.

Ссылка на документацию: QSettings Documentation

Класс SerializerData имеет помощников:

  • SettingsBinder
  • Validator
  • LogicOperation

Там мы реализуем соединения между компонентами.

Пример использования SettingsBinder:

void SettingsBinder::ConnectionsContest(QLineEdit* line, const QString& org, 
                                      const QString& app, const QString& key)
{
    QObject::connect(line, &QLineEdit::textChanged, this, [org, app, key](const QString& text){
        QSettings settings(org, app);
        settings.setValue(key, text);
    });
}

Рекомендация: Не стоит передавать ORG напрямую, используйте класс JSonKeys:

SerelizationData::ORG_NAME