Фаза 0: каркас — CMake (cmark-gfm, libgit2+SSH, libssh2), QML-скелет (меню, 3 панели, кнопка «+»), VaultManager, LICENSE GPL-3.0

This commit is contained in:
Flora (opencode)
2026-08-17 00:05:20 +03:00
parent d4734506cb
commit 980fbcedcb
10 changed files with 1251 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
#include "app/VaultManager.h"
VaultManager::VaultManager(QObject *parent)
: QObject(parent)
{
}
QStringList VaultManager::vaults() const
{
return m_vaults;
}
QString VaultManager::currentVault() const
{
return m_currentVault;
}
void VaultManager::setCurrentVault(const QString &path)
{
if (m_currentVault == path)
return;
m_currentVault = path;
if (!m_vaults.contains(path))
m_vaults.append(path);
emit currentVaultChanged();
emit vaultsChanged();
}
+31
View File
@@ -0,0 +1,31 @@
#pragma once
#include <QObject>
#include <QStringList>
// Менеджер хранилищ: список известных хранилищ, основное хранилище,
// открытие нового хранилища в новом окне (мульти-окна).
// Реализация заполняется в Фазе 2; здесь — только каркас для скелета (Фаза 0).
class VaultManager : public QObject
{
Q_OBJECT
Q_PROPERTY(QStringList vaults READ vaults NOTIFY vaultsChanged)
Q_PROPERTY(QString currentVault READ currentVault WRITE setCurrentVault
NOTIFY currentVaultChanged)
public:
explicit VaultManager(QObject *parent = nullptr);
QStringList vaults() const;
QString currentVault() const;
void setCurrentVault(const QString &path);
signals:
void vaultsChanged();
void currentVaultChanged();
private:
QStringList m_vaults;
QString m_currentVault;
};