From 62d85730047d23591689e37c1fed504b61e2fab0 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sun, 10 May 2026 13:12:13 -0400 Subject: [PATCH] feat(ui): add shift-click range selection to context batch operations --- src/gui_2.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/gui_2.py b/src/gui_2.py index 209b72d..a89d6db 100644 --- a/src/gui_2.py +++ b/src/gui_2.py @@ -167,6 +167,7 @@ class App: self._selected_preset_idx = -1 self._selected_tool_preset_idx = -1 self._selected_bias_profile_idx = -1 + self._last_selected_context_index = -1 self._new_bias_tool_name = "run_powershell" self._new_bias_category_name = "General" self._editing_preset_name = "" @@ -2599,10 +2600,22 @@ class App: is_sel = f_path in self.ui_selected_context_files changed_sel, is_sel = imgui.checkbox(f"##sel{i}", is_sel) if changed_sel: - if is_sel: - self.ui_selected_context_files.add(f_path) + if imgui.get_io().key_shift and self._last_selected_context_index != -1: + start = min(self._last_selected_context_index, i) + end = max(self._last_selected_context_index, i) + for idx in range(start, end + 1): + item = self.files[idx] + item_path = item.path if hasattr(item, "path") else str(item) + if is_sel: + self.ui_selected_context_files.add(item_path) + else: + self.ui_selected_context_files.discard(item_path) else: - self.ui_selected_context_files.discard(f_path) + if is_sel: + self.ui_selected_context_files.add(f_path) + else: + self.ui_selected_context_files.discard(f_path) + self._last_selected_context_index = i imgui.same_line() imgui.text(f_path)