Files
Flora/src/core/SettingsStore.h
T

43 lines
1.4 KiB
C++

#pragma once
#include <QObject>
#include <QStringList>
#include <QVariantList>
// Хранение настроек приложения (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;
};