Skip to content

Commit 5dad2c9

Browse files
committed
optimization
1 parent af5181f commit 5dad2c9

File tree

2 files changed

+40
-28
lines changed

2 files changed

+40
-28
lines changed

smct/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def init_config():
7272
registry.remove_from_autostart()
7373

7474
if get_first_start_value():
75-
ui.init_mmt_selection_frame()
75+
ui.init_root_window()
7676
set_first_start_value(False)
7777

7878

smct/ui.py

Lines changed: 39 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,55 +6,67 @@
66
from customtkinter import filedialog
77
from smct import ui_strings, config, multimonitortool, paths
88

9-
customtkinter.set_ctk_parent_class(tkinter.Tk)
9+
_ROOT_WINDOW = None
10+
_SELECT_MMT_EXE_FRAME = None
11+
_SELECT_MONITOR_FRAME = None
1012

11-
customtkinter.set_appearance_mode("dark") # Modes: "System" (standard), "Dark", "Light"
12-
customtkinter.set_default_color_theme(
13-
"dark-blue"
14-
) # Themes: "blue" (standard), "green", "dark-blue"
1513

16-
_root_window = customtkinter.CTk()
14+
def init_root_window():
15+
# pylint: disable=global-statement
16+
global _ROOT_WINDOW, _SELECT_MMT_EXE_FRAME, _SELECT_MONITOR_FRAME
1717

18-
_root_window.title(ui_strings.SHORT_NAME)
19-
_root_window.resizable(False, False)
18+
customtkinter.set_ctk_parent_class(tkinter.Tk)
2019

21-
_root_window.geometry()
20+
customtkinter.set_appearance_mode(
21+
"dark"
22+
) # Modes: "System" (standard), "Dark", "Light"
23+
customtkinter.set_default_color_theme(
24+
"dark-blue"
25+
) # Themes: "blue" (standard), "green", "dark-blue"
2226

23-
_select_mmt_exe_frame = customtkinter.CTkFrame(master=_root_window)
24-
_select_monitor_frame = customtkinter.CTkFrame(master=_root_window)
27+
_ROOT_WINDOW = customtkinter.CTk()
28+
29+
_ROOT_WINDOW.title(ui_strings.SHORT_NAME)
30+
_ROOT_WINDOW.resizable(False, False)
31+
32+
_ROOT_WINDOW.geometry()
33+
_ROOT_WINDOW.protocol("WM_DELETE_WINDOW", exit_application)
34+
35+
_SELECT_MMT_EXE_FRAME = customtkinter.CTkFrame(master=_ROOT_WINDOW)
36+
_SELECT_MONITOR_FRAME = customtkinter.CTkFrame(master=_ROOT_WINDOW)
37+
38+
_init_mmt_selection_frame()
2539

2640

2741
def exit_application():
2842
# clean up files if setup was interrupted
2943
shutil.rmtree(paths.MMT_DIR_PATH)
44+
shutil.rmtree(paths.ASSETS_DIR_PATH)
3045
os.remove(paths.CONFIG_PATH)
31-
_root_window.destroy()
46+
_ROOT_WINDOW.destroy()
3247
sys.exit(1)
3348

3449

35-
_root_window.protocol("WM_DELETE_WINDOW", exit_application)
36-
37-
38-
def init_mmt_selection_frame():
39-
_root_window.iconbitmap(paths.ASSETS_ICO_PATH)
50+
def _init_mmt_selection_frame():
51+
_ROOT_WINDOW.iconbitmap(paths.ASSETS_ICO_PATH)
4052
# _root_window.geometry("300x110")
41-
_select_mmt_exe_frame.pack(pady=10, padx=10, fill="both", expand=True)
53+
_SELECT_MMT_EXE_FRAME.pack(pady=10, padx=10, fill="both", expand=True)
4254

4355
select_mmt_label = customtkinter.CTkLabel(
4456
text=ui_strings.SELECT_MMT_LABEL,
45-
master=_select_mmt_exe_frame,
57+
master=_SELECT_MMT_EXE_FRAME,
4658
justify=customtkinter.CENTER,
4759
)
4860
select_mmt_label.pack(pady=5, padx=5)
4961

5062
browse_button = customtkinter.CTkButton(
5163
text=ui_strings.BROWSE_BUTTON,
52-
master=_select_mmt_exe_frame,
64+
master=_SELECT_MMT_EXE_FRAME,
5365
command=_browse_button_callback,
5466
)
5567
browse_button.pack(pady=10, padx=10)
5668

57-
_root_window.mainloop()
69+
_ROOT_WINDOW.mainloop()
5870

5971

6072
def _browse_button_callback():
@@ -66,25 +78,25 @@ def _browse_button_callback():
6678
print(ui_strings.NO_FILE_SELECTED)
6779
else:
6880
config.set_mmt_path_value(_exe_path)
69-
_select_mmt_exe_frame.destroy()
81+
_SELECT_MMT_EXE_FRAME.destroy()
7082
multimonitortool.enable_all_disabled_monitors()
7183
multimonitortool.save_mmt_config()
7284
_init_monitor_selection_frame()
7385

7486

7587
def _init_monitor_selection_frame():
7688
# _root_window.geometry("300x160")
77-
_select_monitor_frame.pack(pady=10, padx=10, fill="both", expand=True)
89+
_SELECT_MONITOR_FRAME.pack(pady=10, padx=10, fill="both", expand=True)
7890

7991
_monitor_selection_label = customtkinter.CTkLabel(
8092
text=ui_strings.SELECT_MONITOR_LABEL,
81-
master=_select_monitor_frame,
93+
master=_SELECT_MONITOR_FRAME,
8294
justify=customtkinter.CENTER,
8395
)
8496
_monitor_selection_label.pack(pady=5, padx=5)
8597

8698
monitor_selection_menu = customtkinter.CTkOptionMenu(
87-
_select_monitor_frame,
99+
_SELECT_MONITOR_FRAME,
88100
values=multimonitortool.get_monitor_selection_list(),
89101
)
90102
monitor_selection_menu.pack(pady=10, padx=10)
@@ -94,11 +106,11 @@ def _select_monitor_button_callback():
94106
config.set_monitor_name_value(_menu_string[1].strip())
95107
config.set_monitor_serial_value(_menu_string[2].strip())
96108

97-
_root_window.destroy()
109+
_ROOT_WINDOW.destroy()
98110

99111
_select_monitor_button = customtkinter.CTkButton(
100112
text=ui_strings.OK_BUTTON,
101-
master=_select_monitor_frame,
113+
master=_SELECT_MONITOR_FRAME,
102114
command=_select_monitor_button_callback,
103115
)
104116
_select_monitor_button.pack(pady=10, padx=10)

0 commit comments

Comments
 (0)