Фаза 0: каркас — CMake (cmark-gfm, libgit2+SSH, libssh2), QML-скелет (меню, 3 панели, кнопка «+»), VaultManager, LICENSE GPL-3.0
This commit is contained in:
@@ -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();
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
@@ -0,0 +1,42 @@
|
||||
#include <QGuiApplication>
|
||||
#include <QQmlApplicationEngine>
|
||||
#include <QQmlContext>
|
||||
#include <QCommandLineParser>
|
||||
|
||||
#include "app/VaultManager.h"
|
||||
|
||||
#include <cmark-gfm.h>
|
||||
#include <git2.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QGuiApplication app(argc, argv);
|
||||
app.setApplicationName("Flora");
|
||||
app.setOrganizationName("Flora");
|
||||
app.setApplicationVersion("0.0.1");
|
||||
|
||||
QCommandLineParser parser;
|
||||
parser.setApplicationDescription("Минималистичный markdown-заметочник с git-историей");
|
||||
parser.addHelpOption();
|
||||
parser.addVersionOption();
|
||||
parser.process(app);
|
||||
|
||||
// Версии библиотек — быстрая проверка, что зависимости подключены и слинкованы.
|
||||
int gitMajor = 0, gitMinor = 0, gitRev = 0;
|
||||
git_libgit2_version(&gitMajor, &gitMinor, &gitRev);
|
||||
qInfo("Flora %s | cmark-gfm %s | libgit2 %d.%d.%d",
|
||||
qPrintable(app.applicationVersion()),
|
||||
cmark_version_string(),
|
||||
gitMajor, gitMinor, gitRev);
|
||||
|
||||
VaultManager vaultManager;
|
||||
|
||||
QQmlApplicationEngine engine;
|
||||
engine.rootContext()->setContextProperty("vaultManager", &vaultManager);
|
||||
engine.loadFromModule("Flora", "MainWindow");
|
||||
|
||||
if (engine.rootObjects().isEmpty())
|
||||
return -1;
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
Reference in New Issue
Block a user