43 lines
1.4 KiB
C++
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;
|
|
}; |