feat(ui): add shift-click range selection to context batch operations

This commit is contained in:
2026-05-10 13:12:13 -04:00
parent 51f804debc
commit 62d8573004
+16 -3
View File
@@ -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)