Фаза 1: мастер первого запуска — SettingsStore, GitManager (auto-init+коммиты), SyncManager (проверка соединений+ErrorCatalog), WelcomeWizard/ProviderSetupGuide; тесты smoke/git/vault (12/12)

This commit is contained in:
Flora (opencode)
2026-08-17 00:43:33 +03:00
parent 980fbcedcb
commit ed633ae036
18 changed files with 1412 additions and 29 deletions
+43
View File
@@ -0,0 +1,43 @@
#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;
};