pygui: update file dialogs to hide hidden files by default and provide a hidden file toggle
This commit is contained in:
parent
21fdbc48da
commit
fa163c3ed6
1 changed files with 29 additions and 13 deletions
|
@ -21,8 +21,8 @@ HEIGHT = 800
|
||||||
|
|
||||||
|
|
||||||
class Application(ttk.Frame):
|
class Application(ttk.Frame):
|
||||||
def __init__(self, proxy: bool):
|
def __init__(self, proxy: bool) -> None:
|
||||||
super().__init__(master=None)
|
super().__init__()
|
||||||
# load node icons
|
# load node icons
|
||||||
NodeUtils.setup()
|
NodeUtils.setup()
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ class Application(ttk.Frame):
|
||||||
self.draw()
|
self.draw()
|
||||||
self.core.setup()
|
self.core.setup()
|
||||||
|
|
||||||
def setup_scaling(self):
|
def setup_scaling(self) -> None:
|
||||||
self.fonts_size = {name: font.nametofont(name)["size"] for name in font.names()}
|
self.fonts_size = {name: font.nametofont(name)["size"] for name in font.names()}
|
||||||
text_scale = self.app_scale if self.app_scale < 1 else math.sqrt(self.app_scale)
|
text_scale = self.app_scale if self.app_scale < 1 else math.sqrt(self.app_scale)
|
||||||
themes.scale_fonts(self.fonts_size, self.app_scale)
|
themes.scale_fonts(self.fonts_size, self.app_scale)
|
||||||
|
@ -59,21 +59,37 @@ class Application(ttk.Frame):
|
||||||
family="TkDefaultFont", size=int(8 * text_scale), weight=font.BOLD
|
family="TkDefaultFont", size=int(8 * text_scale), weight=font.BOLD
|
||||||
)
|
)
|
||||||
|
|
||||||
def setup_theme(self):
|
def setup_theme(self) -> None:
|
||||||
themes.load(self.style)
|
themes.load(self.style)
|
||||||
self.master.bind_class("Menu", "<<ThemeChanged>>", themes.theme_change_menu)
|
self.master.bind_class("Menu", "<<ThemeChanged>>", themes.theme_change_menu)
|
||||||
self.master.bind("<<ThemeChanged>>", themes.theme_change)
|
self.master.bind("<<ThemeChanged>>", themes.theme_change)
|
||||||
self.style.theme_use(self.guiconfig.preferences.theme)
|
self.style.theme_use(self.guiconfig.preferences.theme)
|
||||||
|
|
||||||
def setup_app(self):
|
def setup_app(self) -> None:
|
||||||
self.master.title("CORE")
|
self.master.title("CORE")
|
||||||
self.center()
|
self.center()
|
||||||
self.master.protocol("WM_DELETE_WINDOW", self.on_closing)
|
self.master.protocol("WM_DELETE_WINDOW", self.on_closing)
|
||||||
image = Images.get(ImageEnum.CORE, 16)
|
image = Images.get(ImageEnum.CORE, 16)
|
||||||
self.master.tk.call("wm", "iconphoto", self.master._w, image)
|
self.master.tk.call("wm", "iconphoto", self.master._w, image)
|
||||||
self.master.option_add("*tearOff", tk.FALSE)
|
self.master.option_add("*tearOff", tk.FALSE)
|
||||||
|
self.setup_file_dialogs()
|
||||||
|
|
||||||
def center(self):
|
def setup_file_dialogs(self) -> None:
|
||||||
|
"""
|
||||||
|
Hack code that needs to initialize a bad dialog so that we can apply,
|
||||||
|
global settings for dialogs to not show hidden files by default and display
|
||||||
|
the hidden file toggle.
|
||||||
|
|
||||||
|
:return: nothing
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
self.master.tk.call("tk_getOpenFile", "-foobar")
|
||||||
|
except tk.TclError:
|
||||||
|
pass
|
||||||
|
self.master.tk.call("set", "::tk::dialog::file::showHiddenBtn", "1")
|
||||||
|
self.master.tk.call("set", "::tk::dialog::file::showHiddenVar", "0")
|
||||||
|
|
||||||
|
def center(self) -> None:
|
||||||
screen_width = self.master.winfo_screenwidth()
|
screen_width = self.master.winfo_screenwidth()
|
||||||
screen_height = self.master.winfo_screenheight()
|
screen_height = self.master.winfo_screenheight()
|
||||||
x = int((screen_width / 2) - (WIDTH * self.app_scale / 2))
|
x = int((screen_width / 2) - (WIDTH * self.app_scale / 2))
|
||||||
|
@ -82,7 +98,7 @@ class Application(ttk.Frame):
|
||||||
f"{int(WIDTH * self.app_scale)}x{int(HEIGHT * self.app_scale)}+{x}+{y}"
|
f"{int(WIDTH * self.app_scale)}x{int(HEIGHT * self.app_scale)}+{x}+{y}"
|
||||||
)
|
)
|
||||||
|
|
||||||
def draw(self):
|
def draw(self) -> None:
|
||||||
self.master.rowconfigure(0, weight=1)
|
self.master.rowconfigure(0, weight=1)
|
||||||
self.master.columnconfigure(0, weight=1)
|
self.master.columnconfigure(0, weight=1)
|
||||||
self.rowconfigure(0, weight=1)
|
self.rowconfigure(0, weight=1)
|
||||||
|
@ -99,7 +115,7 @@ class Application(ttk.Frame):
|
||||||
self.progress = Progressbar(self.right_frame, mode="indeterminate")
|
self.progress = Progressbar(self.right_frame, mode="indeterminate")
|
||||||
self.menubar = Menubar(self.master, self)
|
self.menubar = Menubar(self.master, self)
|
||||||
|
|
||||||
def draw_canvas(self):
|
def draw_canvas(self) -> None:
|
||||||
width = self.guiconfig.preferences.width
|
width = self.guiconfig.preferences.width
|
||||||
height = self.guiconfig.preferences.height
|
height = self.guiconfig.preferences.height
|
||||||
canvas_frame = ttk.Frame(self.right_frame)
|
canvas_frame = ttk.Frame(self.right_frame)
|
||||||
|
@ -117,7 +133,7 @@ class Application(ttk.Frame):
|
||||||
self.canvas.configure(xscrollcommand=scroll_x.set)
|
self.canvas.configure(xscrollcommand=scroll_x.set)
|
||||||
self.canvas.configure(yscrollcommand=scroll_y.set)
|
self.canvas.configure(yscrollcommand=scroll_y.set)
|
||||||
|
|
||||||
def draw_status(self):
|
def draw_status(self) -> None:
|
||||||
self.statusbar = StatusBar(self.right_frame, self)
|
self.statusbar = StatusBar(self.right_frame, self)
|
||||||
self.statusbar.grid(sticky="ew")
|
self.statusbar.grid(sticky="ew")
|
||||||
|
|
||||||
|
@ -133,17 +149,17 @@ class Application(ttk.Frame):
|
||||||
def show_error(self, title: str, message: str) -> None:
|
def show_error(self, title: str, message: str) -> None:
|
||||||
self.after(0, lambda: ErrorDialog(self, title, message).show())
|
self.after(0, lambda: ErrorDialog(self, title, message).show())
|
||||||
|
|
||||||
def on_closing(self):
|
def on_closing(self) -> None:
|
||||||
self.menubar.prompt_save_running_session(True)
|
self.menubar.prompt_save_running_session(True)
|
||||||
|
|
||||||
def save_config(self):
|
def save_config(self) -> None:
|
||||||
appconfig.save(self.guiconfig)
|
appconfig.save(self.guiconfig)
|
||||||
|
|
||||||
def joined_session_update(self):
|
def joined_session_update(self) -> None:
|
||||||
if self.core.is_runtime():
|
if self.core.is_runtime():
|
||||||
self.toolbar.set_runtime()
|
self.toolbar.set_runtime()
|
||||||
else:
|
else:
|
||||||
self.toolbar.set_design()
|
self.toolbar.set_design()
|
||||||
|
|
||||||
def close(self):
|
def close(self) -> None:
|
||||||
self.master.destroy()
|
self.master.destroy()
|
||||||
|
|
Loading…
Add table
Reference in a new issue