Инкрементальный индекс, пресеты автосейва, диалог Настройки

- VaultIndex: updateFile/removeFile/syncIncremental (mtime+size), полный рескан только на старте/смене/внешних изменениях; relink висячих [[ссылок]] при создании файла; FileStore.externalChanged для внешних правок
- QML: сейвы и правки идут точечно, дерево — через syncIncremental
- Настройки: пресеты safe/balanced/eco/manual (диск 2/5/10с/выкл, коммит после паузы 5/15/60с/вручную), диалог с +/-, шкалами и подсказкой; коммит только в простое, в manual — по Ctrl+S
- Удалены highlightedCode, словный merge, fileDiffText/Html, 2-arg fileHistory; renderInner без побочек
- Тесты: инкремент индекса, пресеты, autosaveEnabled, ~~~-блоки
This commit is contained in:
2026-09-06 23:02:05 +03:00
parent 1f140d3433
commit 417d0273b7
20 changed files with 802 additions and 80 deletions
+16
View File
@@ -17,6 +17,14 @@ class SettingsStore : public QObject
Q_PROPERTY(QString theme READ theme WRITE setTheme NOTIFY themeChanged)
Q_PROPERTY(int leftPanelWidth READ leftPanelWidth WRITE setLeftPanelWidth NOTIFY leftPanelWidthChanged)
Q_PROPERTY(int rightPanelWidth READ rightPanelWidth WRITE setRightPanelWidth NOTIFY rightPanelWidthChanged)
// Пресет автосохранения: "safe" | "balanced" | "eco" | "manual".
// Производные значения читает UI (таймеры) и тесты.
Q_PROPERTY(QString autosavePreset READ autosavePreset WRITE setAutosavePreset
NOTIFY autosavePresetChanged)
Q_PROPERTY(int autosaveDiskMs READ autosaveDiskMs NOTIFY autosavePresetChanged)
Q_PROPERTY(int autocommitIdleMs READ autocommitIdleMs NOTIFY autosavePresetChanged)
Q_PROPERTY(bool autosaveEnabled READ autosaveEnabled NOTIFY autosavePresetChanged)
Q_PROPERTY(bool autocommitEnabled READ autocommitEnabled NOTIFY autosavePresetChanged)
public:
explicit SettingsStore(QObject *parent = nullptr);
@@ -43,6 +51,13 @@ public:
int rightPanelWidth() const;
void setRightPanelWidth(int w);
QString autosavePreset() const;
void setAutosavePreset(const QString &p);
int autosaveDiskMs() const;
int autocommitIdleMs() const;
bool autosaveEnabled() const;
bool autocommitEnabled() const;
Q_INVOKABLE QString viewModeForFile(const QString &vault, const QString &filePath) const;
Q_INVOKABLE void setViewModeForFile(const QString &vault, const QString &filePath, const QString &mode);
@@ -53,6 +68,7 @@ signals:
void themeChanged();
void leftPanelWidthChanged();
void rightPanelWidthChanged();
void autosavePresetChanged();
private:
QVariantList m_providers;