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

- 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
+20
View File
@@ -129,6 +129,26 @@ int main(int argc, char *argv[])
|| dm.isTextForEditor("/x/a.pdf"))
return fail("isTextForEditor");
// --- autosaveEnabled (ручной режим настроек) ---
if (!dm.autosaveEnabled())
return fail("autosave enabled by default");
{
QTimer *t = dm.findChild<QTimer*>();
if (!t || !t->isActive())
return fail("autosave timer active");
}
dm.setAutosaveEnabled(false);
if (dm.autosaveEnabled())
return fail("autosave disabled");
{
QTimer *t = dm.findChild<QTimer*>();
if (!t || t->isActive())
return fail("autosave timer stopped");
}
dm.setAutosaveEnabled(true);
if (!dm.autosaveEnabled())
return fail("autosave re-enabled");
std::printf("DOCUMENT MANAGER TEST OK\n");
return 0;
}