#pragma once #include #include #include // Хранение настроек приложения (QSettings): // список хранилищ, основное хранилище, конфигурации провайдеров синхронизации. class SettingsStore : public QObject { Q_OBJECT Q_PROPERTY(QStringList vaults READ vaults NOTIFY vaultsChanged) Q_PROPERTY(QString currentVault READ currentVault WRITE setCurrentVault NOTIFY currentVaultChanged) Q_PROPERTY(QVariantList providers READ providers NOTIFY providersChanged) public: explicit SettingsStore(QObject *parent = nullptr); QStringList vaults() const; QString currentVault() const; void setCurrentVault(const QString &path); QVariantList providers() const; // Добавляет хранилище в список (если ещё нет) и делает его текущим. void addVault(const QString &path); // Сохраняет конфигурацию провайдера (provider: "github"/"gitlab"/"gitea"/"webdav"/"syncthing"). void addProvider(const QString &provider, const QVariantMap &config); Q_INVOKABLE bool hasVault(const QString &path) const; Q_INVOKABLE void clearProvider(const QString &provider); signals: void vaultsChanged(); void currentVaultChanged(); void providersChanged(); private: QVariantList m_providers; };