v1.8.95: resizable sidebar via PanedWindow — drag to widen server list
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
21
gui/app.py
21
gui/app.py
@@ -116,19 +116,27 @@ class App(ctk.CTk):
|
|||||||
self.protocol("WM_DELETE_WINDOW", self._on_close)
|
self.protocol("WM_DELETE_WINDOW", self._on_close)
|
||||||
|
|
||||||
def _build_layout(self):
|
def _build_layout(self):
|
||||||
|
# PanedWindow — resizable sidebar | main area
|
||||||
|
self._paned = tkinter.PanedWindow(
|
||||||
|
self, orient="horizontal", sashwidth=4,
|
||||||
|
bg="#2b2b2b", sashrelief="flat", opaqueresize=True,
|
||||||
|
)
|
||||||
|
self._paned.pack(fill="both", expand=True)
|
||||||
|
|
||||||
# Sidebar
|
# Sidebar
|
||||||
self.sidebar = Sidebar(self, self.store, on_select=self._on_server_select, session_pool=self.session_pool)
|
self.sidebar = Sidebar(self._paned, self.store, on_select=self._on_server_select, session_pool=self.session_pool)
|
||||||
self.sidebar.pack(side="left", fill="y")
|
self._paned.add(self.sidebar, minsize=180, width=250)
|
||||||
self.sidebar.add_callback = self._add_server
|
self.sidebar.add_callback = self._add_server
|
||||||
self.sidebar.edit_callback = self._edit_server
|
self.sidebar.edit_callback = self._edit_server
|
||||||
self.sidebar.delete_callback = self._delete_server
|
self.sidebar.delete_callback = self._delete_server
|
||||||
|
self.sidebar.add_group_callback = self._add_group
|
||||||
self.sidebar.open_tab_callback = self._context_open_tab
|
self.sidebar.open_tab_callback = self._context_open_tab
|
||||||
self.sidebar.check_status_callback = self._context_check_status
|
self.sidebar.check_status_callback = self._context_check_status
|
||||||
self.sidebar.open_browser_callback = self._context_open_browser
|
self.sidebar.open_browser_callback = self._context_open_browser
|
||||||
|
|
||||||
# Main area
|
# Main area
|
||||||
self._main_frame = ctk.CTkFrame(self, fg_color="transparent")
|
self._main_frame = ctk.CTkFrame(self._paned, fg_color="transparent")
|
||||||
self._main_frame.pack(side="right", fill="both", expand=True)
|
self._paned.add(self._main_frame, minsize=500)
|
||||||
|
|
||||||
# Header bar (language + about)
|
# Header bar (language + about)
|
||||||
header_bar = ctk.CTkFrame(self._main_frame, fg_color="transparent", height=40)
|
header_bar = ctk.CTkFrame(self._main_frame, fg_color="transparent", height=40)
|
||||||
@@ -265,6 +273,11 @@ class App(ctk.CTk):
|
|||||||
dialog = ServerDialog(self, self.store)
|
dialog = ServerDialog(self, self.store)
|
||||||
self.wait_window(dialog)
|
self.wait_window(dialog)
|
||||||
|
|
||||||
|
def _add_group(self):
|
||||||
|
from gui.group_dialog import GroupDialog
|
||||||
|
dialog = GroupDialog(self, self.store)
|
||||||
|
self.wait_window(dialog)
|
||||||
|
|
||||||
def _edit_server(self, alias: str):
|
def _edit_server(self, alias: str):
|
||||||
server = self.store.get_server(alias)
|
server = self.store.get_server(alias)
|
||||||
if server:
|
if server:
|
||||||
|
|||||||
BIN
releases/ServerManager-v1.8.95-win-x64.exe
Normal file
BIN
releases/ServerManager-v1.8.95-win-x64.exe
Normal file
Binary file not shown.
@@ -1,6 +1,6 @@
|
|||||||
"""Version info for ServerManager."""
|
"""Version info for ServerManager."""
|
||||||
|
|
||||||
__version__ = "1.8.94"
|
__version__ = "1.8.95"
|
||||||
__app_name__ = "ServerManager"
|
__app_name__ = "ServerManager"
|
||||||
__author__ = "aibot777"
|
__author__ = "aibot777"
|
||||||
__description__ = "Desktop GUI for managing remote servers"
|
__description__ = "Desktop GUI for managing remote servers"
|
||||||
|
|||||||
Reference in New Issue
Block a user