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)