From dbfbb058991ed7aa9bfc40dac8aab86c5fd71938 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sun, 10 May 2026 16:41:28 -0400 Subject: [PATCH] fix(gui): add resizable splitter between Files and Screenshots panels Added: - _files_split_v state (0.5 default) for split ratio - _files_open and _shots_open tracking for collapse state - Splitter bar between collapsing headers when both open - Splitter updates _files_split_v based on mouse drag --- src/gui_2.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/gui_2.py b/src/gui_2.py index 5d7fd35..edcf8c5 100644 --- a/src/gui_2.py +++ b/src/gui_2.py @@ -873,11 +873,25 @@ class App: exp, opened = imgui.begin("Files & Media", self.show_windows["Files & Media"]) self.show_windows["Files & Media"] = bool(opened) if exp: - if imgui.collapsing_header("Files"): + if not hasattr(self, "_files_split_v"): self._files_split_v = 0.5 + if not hasattr(self, "_files_open"): self._files_open = True + if not hasattr(self, "_shots_open"): self._shots_open = True + if imgui.collapsing_header("Files", imgui.TreeNodeFlags_.default_open if self._files_open else 0): + self._files_open = True self._render_files_panel() - if imgui.collapsing_header("Screenshots"): + else: + self._files_open = False + if self._files_open and self._shots_open: + imgui.button("###files_media_splitter", imgui.ImVec2(-1, 4)) + if imgui.is_item_active(): + avail = imgui.get_content_region_avail().y + if avail > 0: self._files_split_v = max(0.2, min(0.8, self._files_split_v + imgui.get_io().mouse_delta.y / avail)) + if imgui.collapsing_header("Screenshots", imgui.TreeNodeFlags_.default_open if self._shots_open else 0): + self._shots_open = True self._render_screenshots_panel() - imgui.end() + else: + self._shots_open = False + imgui.end() if self.show_windows.get("AI Settings", False): exp, opened = imgui.begin("AI Settings", self.show_windows["AI Settings"]) self.show_windows["AI Settings"] = bool(opened)