Skip to content

Commit 4b4581f

Browse files
committed
新增 自动保存窗口大小设置,新增设置是否自动保存窗口大小功能
1 parent abef317 commit 4b4581f

6 files changed

Lines changed: 84 additions & 7 deletions

File tree

CHANGELOG/v1.3.2-alpha.6/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ v2.0 - Koharu(小鸟游星野) Alpha 6
1111

1212
- 新增 **闪抽点击后禁用功能**,新增**点击后禁用时间设置**,支持设置**0-60s**的禁用时间,防止频繁点击
1313
- 新增 **通知窗口字体设置**,新增通知窗口支持独立的字体设置功能
14+
- 新增 **自动保存窗口大小设置**,新增设置是否自动保存窗口大小功能
1415

1516
## 💡 功能优化
1617

app/Language/modules/basic_settings.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@
2323
"description": "关闭所有窗口后是否仍在后台常驻",
2424
"switchbutton_name": {"enable": "", "disable": ""},
2525
},
26+
"auto_save_window_size": {
27+
"name": "自动保存窗口大小",
28+
"description": "是否自动保存窗口大小",
29+
"switchbutton_name": {"enable": "", "disable": ""},
30+
},
2631
"url_protocol": {
2732
"name": "URL协议注册",
2833
"description": "注册自定义URL协议(secrandom://),支持通过链接启动应用",
@@ -231,6 +236,11 @@
231236
"name": "Run in background",
232237
"description": "Whether to remain in the back office after closing all windows",
233238
},
239+
"auto_save_window_size": {
240+
"name": "Auto save window size",
241+
"description": "Whether to automatically save window size",
242+
"switchbutton_name": {"enable": "", "disable": ""},
243+
},
234244
"url_protocol": {
235245
"name": "URL protocol register",
236246
"description": "Sign up for custom URL protocol (secrandom://), support to launch app via link",

app/tools/settings_default_storage.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"autostart": {"default_value": False},
3333
"show_startup_window": {"default_value": True},
3434
"background_resident": {"default_value": True},
35+
"auto_save_window_size": {"default_value": True},
3536
"url_protocol": {"default_value": False},
3637
"export_diagnostic_data": {"default_value": None},
3738
"export_settings": {"default_value": None},

app/view/main/window.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -533,10 +533,17 @@ def changeEvent(self, event):
533533
def save_window_size(self, width, height):
534534
"""保存窗口大小
535535
记录当前窗口尺寸,下次启动时自动恢复"""
536-
# 只有在非最大化状态下才保存窗口大小
537-
if not self.isMaximized():
538-
update_settings("window", "height", height)
539-
update_settings("window", "width", width)
536+
# 检查是否启用了自动保存窗口大小功能
537+
auto_save_enabled = readme_settings_async(
538+
"basic_settings", "auto_save_window_size"
539+
)
540+
auto_save_enabled = True if auto_save_enabled is None else auto_save_enabled
541+
542+
if auto_save_enabled:
543+
# 只有在非最大化状态下才保存窗口大小
544+
if not self.isMaximized():
545+
update_settings("window", "height", height)
546+
update_settings("window", "width", width)
540547

541548
def toggle_window(self):
542549
"""切换窗口显示状态

app/view/settings/basic_settings.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,26 @@ def __init__(self, parent=None):
106106
self.__on_show_startup_window_changed
107107
)
108108

109+
# 自动保存窗口大小设置
110+
self.auto_save_window_size_switch = SwitchButton()
111+
self.auto_save_window_size_switch.setOffText(
112+
get_content_switchbutton_name_async(
113+
"basic_settings", "auto_save_window_size", "disable"
114+
)
115+
)
116+
self.auto_save_window_size_switch.setOnText(
117+
get_content_switchbutton_name_async(
118+
"basic_settings", "auto_save_window_size", "enable"
119+
)
120+
)
121+
_auto_save = readme_settings_async("basic_settings", "auto_save_window_size")
122+
self.auto_save_window_size_switch.setChecked(
123+
True if _auto_save is None else _auto_save
124+
)
125+
self.auto_save_window_size_switch.checkedChanged.connect(
126+
self.__on_auto_save_window_size_changed
127+
)
128+
109129
# 后台驻留设置
110130
self.resident_switch = SwitchButton()
111131
self.resident_switch.setOffText(
@@ -156,6 +176,12 @@ def __init__(self, parent=None):
156176
get_content_description_async("basic_settings", "show_startup_window"),
157177
self.show_startup_window_switch,
158178
)
179+
self.addGroup(
180+
get_theme_icon("ic_fluent_save_20_filled"),
181+
get_content_name_async("basic_settings", "auto_save_window_size"),
182+
get_content_description_async("basic_settings", "auto_save_window_size"),
183+
self.auto_save_window_size_switch,
184+
)
159185
self.addGroup(
160186
get_theme_icon("ic_fluent_resize_20_filled"),
161187
get_content_name_async("basic_settings", "background_resident"),
@@ -261,6 +287,31 @@ def __on_resident_changed(self, checked):
261287
parent=self.window(),
262288
)
263289

290+
def __on_auto_save_window_size_changed(self, checked):
291+
update_settings("basic_settings", "auto_save_window_size", checked)
292+
if checked:
293+
show_notification(
294+
NotificationType.SUCCESS,
295+
NotificationConfig(
296+
title=get_content_name_async(
297+
"basic_settings", "auto_save_window_size"
298+
),
299+
content="已开启自动保存窗口大小",
300+
),
301+
parent=self.window(),
302+
)
303+
else:
304+
show_notification(
305+
NotificationType.INFO,
306+
NotificationConfig(
307+
title=get_content_name_async(
308+
"basic_settings", "auto_save_window_size"
309+
),
310+
content="已关闭自动保存窗口大小",
311+
),
312+
parent=self.window(),
313+
)
314+
264315
def __on_url_protocol_changed(self, checked):
265316
"""URL协议开关变化处理"""
266317
# 临时断开信号连接,避免递归

app/view/settings/settings.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -895,9 +895,16 @@ def changeEvent(self, event):
895895
def save_window_size(self, setting_window_width, setting_window_height):
896896
"""保存窗口大小
897897
记录当前窗口尺寸,下次启动时自动恢复"""
898-
if not self.isMaximized():
899-
update_settings("settings", "height", setting_window_height)
900-
update_settings("settings", "width", setting_window_width)
898+
# 检查是否启用了自动保存窗口大小功能
899+
auto_save_enabled = readme_settings_async(
900+
"basic_settings", "auto_save_window_size"
901+
)
902+
auto_save_enabled = True if auto_save_enabled is None else auto_save_enabled
903+
904+
if auto_save_enabled:
905+
if not self.isMaximized():
906+
update_settings("settings", "height", setting_window_height)
907+
update_settings("settings", "width", setting_window_width)
901908

902909
def show_settings_window(self):
903910
"""显示设置窗口"""

0 commit comments

Comments
 (0)