From 0a4a3e83514a8887a3a164ae56432abb3da80fcd Mon Sep 17 00:00:00 2001 From: Alain Emilia Anna Zscheile Date: Tue, 31 Dec 2024 19:53:42 +0100 Subject: [PATCH] feat: implement bounding box selection frontend --- crates/topola-egui/src/actions.rs | 17 +++++++++++++++++ crates/topola-egui/src/menu_bar.rs | 6 +++++- locales/en-US/main.ftl | 2 ++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/crates/topola-egui/src/actions.rs b/crates/topola-egui/src/actions.rs index 7e875c8..83f0fd7 100644 --- a/crates/topola-egui/src/actions.rs +++ b/crates/topola-egui/src/actions.rs @@ -79,6 +79,8 @@ pub struct EditActions { pub redo: Trigger, pub abort: Trigger, pub remove_bands: Trigger, + pub reset_bbox: Trigger, + pub reselect_bbox: Trigger, } impl EditActions { @@ -108,6 +110,18 @@ impl EditActions { egui::Key::Delete, ) .into_trigger(), + reset_bbox: Action::new( + tr.text("tr-menu-edit-reset-bbox"), + egui::Modifiers::CTRL, + egui::Key::B, + ) + .into_trigger(), + reselect_bbox: Action::new( + tr.text("tr-menu-edit-reselect-bbox"), + egui::Modifiers::NONE, + egui::Key::B, + ) + .into_trigger(), } } @@ -128,6 +142,9 @@ impl EditActions { ui.separator(); + self.reset_bbox.button(ctx, ui); + self.reselect_bbox.button(ctx, ui); + //ui.add_enabled_ui(workspace_activities_enabled, |ui| { self.remove_bands.button(ctx, ui); //}); diff --git a/crates/topola-egui/src/menu_bar.rs b/crates/topola-egui/src/menu_bar.rs index 561b7ec..58c90a3 100644 --- a/crates/topola-egui/src/menu_bar.rs +++ b/crates/topola-egui/src/menu_bar.rs @@ -232,6 +232,10 @@ impl MenuBar { workspace.interactor.redo(); } else if actions.edit.abort.consume_key_triggered(ctx, ui) { workspace.interactor.abort(); + } else if actions.edit.reset_bbox.consume_key_triggered(ctx, ui) { + workspace.overlay.reset_selected_bbox(); + } else if actions.edit.reselect_bbox.consume_key_triggered(ctx, ui) { + workspace.overlay.start_bbox_reselect(); } else if actions.place.place_via.consume_key_enabled( ctx, ui, @@ -279,7 +283,7 @@ impl MenuBar { pub fn update_view_menu( &mut self, - _ctx: &egui::Context, + ctx: &egui::Context, ui: &mut egui::Ui, tr: &Translator, viewport: &mut Viewport, diff --git a/locales/en-US/main.ftl b/locales/en-US/main.ftl index 8710ed9..8451d45 100644 --- a/locales/en-US/main.ftl +++ b/locales/en-US/main.ftl @@ -12,6 +12,8 @@ tr-menu-edit = Edit tr-menu-edit-undo = Undo tr-menu-edit-redo = Redo tr-menu-edit-abort = Abort +tr-menu-edit-reset-bbox = Reset selected BBox +tr-menu-edit-reselect-bbox = (Re-)select BBox tr-menu-edit-remove-bands = Remove Bands tr-menu-view = View