feat(ui): add shift-click range selection to context batch operations
This commit is contained in:
+16
-3
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user