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)
|
||||
|
||||
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
|
||||
self.sidebar = Sidebar(self, self.store, on_select=self._on_server_select, session_pool=self.session_pool)
|
||||
self.sidebar.pack(side="left", fill="y")
|
||||
self.sidebar = Sidebar(self._paned, self.store, on_select=self._on_server_select, session_pool=self.session_pool)
|
||||
self._paned.add(self.sidebar, minsize=180, width=250)
|
||||
self.sidebar.add_callback = self._add_server
|
||||
self.sidebar.edit_callback = self._edit_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.check_status_callback = self._context_check_status
|
||||
self.sidebar.open_browser_callback = self._context_open_browser
|
||||
|
||||
# Main area
|
||||
self._main_frame = ctk.CTkFrame(self, fg_color="transparent")
|
||||
self._main_frame.pack(side="right", fill="both", expand=True)
|
||||
self._main_frame = ctk.CTkFrame(self._paned, fg_color="transparent")
|
||||
self._paned.add(self._main_frame, minsize=500)
|
||||
|
||||
# Header bar (language + about)
|
||||
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)
|
||||
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):
|
||||
server = self.store.get_server(alias)
|
||||
if server:
|
||||
|
||||
Reference in New Issue
Block a user