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

- 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
+19
View File
@@ -49,6 +49,15 @@ ApplicationWindow {
// статус можно показать в UI, пока просто игнорируем
}
function applyAutosavePreset() {
if (settingsStore.autosaveEnabled) {
documentManager.setAutosaveIntervalMs(settingsStore.autosaveDiskMs)
documentManager.setAutosaveEnabled(true)
} else {
documentManager.setAutosaveEnabled(false)
}
}
Component.onCompleted: {
if (windowVault.length > 0) {
fileStore.openVault(windowVault)
@@ -58,6 +67,11 @@ ApplicationWindow {
if (vaultManager.vaults.length === 0) {
welcomeWizard.open()
}
applyAutosavePreset()
}
Connections {
target: settingsStore
function onAutosavePresetChanged() { applyAutosavePreset() }
}
menuBar: MenuBar {
@@ -72,6 +86,7 @@ ApplicationWindow {
Action { text: qsTr("В PDF…"); enabled: false }
}
MenuSeparator { }
Action { text: qsTr("Настройки…"); onTriggered: settingsDialog.open() }
Action { text: qsTr("Выход"); onTriggered: window.close() }
}
Menu {
@@ -164,6 +179,10 @@ ApplicationWindow {
}
}
SettingsDialog {
id: settingsDialog
}
Popup {
id: vaultSwitcher
x: 12