feat: persist main window state

This commit is contained in:
QiuSW
2026-07-09 00:34:47 +08:00
parent 91debb9ad6
commit 7942add8b6
14 changed files with 362 additions and 23 deletions
+26 -1
View File
@@ -80,7 +80,7 @@ func TestAppConfigServiceSettingsSchema(t *testing.T) {
"window.start_state": "normal",
"window.width": "1280",
"window.height": "800",
"window.remember_state": "false",
"window.remember_state": "true",
"shortcut.open_second_window": "Alt+P",
"shortcut.open_main_window": "Alt+M",
"data.root_mode": "app_config_dir",
@@ -114,6 +114,31 @@ func TestAppConfigServiceSettingsSchema(t *testing.T) {
}
}
func TestMigrateUpgradesWindowRememberStateOldDefault(t *testing.T) {
store := newTestStore(t)
if _, err := store.DB.Exec(`
UPDATE appconfig
SET value = 'false',
description = '保存主窗口尺寸和最大化状态,T-015 使用该配置。'
WHERE key = 'window.remember_state'
`); err != nil {
t.Fatalf("set old window remember default: %v", err)
}
if err := Migrate(store.DB); err != nil {
t.Fatalf("migrate old window remember default: %v", err)
}
var value string
if err := store.DB.QueryRow("SELECT value FROM appconfig WHERE key = 'window.remember_state'").Scan(&value); err != nil {
t.Fatalf("query window remember state: %v", err)
}
if value != "true" {
t.Fatalf("window.remember_state = %q, want true", value)
}
}
func TestAppConfigServiceValidatesSchemaValues(t *testing.T) {
store := newTestStore(t)
service := NewAppConfigService(store)