feat(ui): add shift-click range selection to context batch operations
This commit is contained in:
@@ -167,6 +167,7 @@ class App:
|
|||||||
self._selected_preset_idx = -1
|
self._selected_preset_idx = -1
|
||||||
self._selected_tool_preset_idx = -1
|
self._selected_tool_preset_idx = -1
|
||||||
self._selected_bias_profile_idx = -1
|
self._selected_bias_profile_idx = -1
|
||||||
|
self._last_selected_context_index = -1
|
||||||
self._new_bias_tool_name = "run_powershell"
|
self._new_bias_tool_name = "run_powershell"
|
||||||
self._new_bias_category_name = "General"
|
self._new_bias_category_name = "General"
|
||||||
self._editing_preset_name = ""
|
self._editing_preset_name = ""
|
||||||
@@ -2599,10 +2600,22 @@ class App:
|
|||||||
is_sel = f_path in self.ui_selected_context_files
|
is_sel = f_path in self.ui_selected_context_files
|
||||||
changed_sel, is_sel = imgui.checkbox(f"##sel{i}", is_sel)
|
changed_sel, is_sel = imgui.checkbox(f"##sel{i}", is_sel)
|
||||||
if changed_sel:
|
if changed_sel:
|
||||||
|
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:
|
||||||
if is_sel:
|
if is_sel:
|
||||||
self.ui_selected_context_files.add(f_path)
|
self.ui_selected_context_files.add(f_path)
|
||||||
else:
|
else:
|
||||||
self.ui_selected_context_files.discard(f_path)
|
self.ui_selected_context_files.discard(f_path)
|
||||||
|
self._last_selected_context_index = i
|
||||||
imgui.same_line()
|
imgui.same_line()
|
||||||
imgui.text(f_path)
|
imgui.text(f_path)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user