From 6d1b6558372461d5d9db8744cd39fb8bdea3b1e9 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Wed, 1 Feb 2023 15:49:32 +0100 Subject: [PATCH 1/3] Click space view title to select it --- Cargo.lock | 2 +- Cargo.toml | 2 +- crates/re_viewer/src/ui/viewport.rs | 18 +++++++++++++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 02d45a882a63..3871d35ddd7a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1396,7 +1396,7 @@ dependencies = [ [[package]] name = "egui_dock" version = "0.3.1" -source = "git+https://github.com/rerun-io/egui_dock?rev=69f52c752695165243d8900b8e11a84df812d67f#69f52c752695165243d8900b8e11a84df812d67f" +source = "git+https://github.com/rerun-io/egui_dock?rev=bc7c2e3d3bd0261ddf3030ffbc85233a83d02e1e#bc7c2e3d3bd0261ddf3030ffbc85233a83d02e1e" dependencies = [ "egui", "serde", diff --git a/Cargo.toml b/Cargo.toml index afffc6c5287c..6ea53d5257f7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -84,7 +84,7 @@ epaint = { git = "https://github.com/emilk/egui", rev = "f222ee044edf8beebfaf5dd # epaint = { path = "../../egui/crates/epaint" } # Forks of 3rd party egui crates, tracking latest egui/master: -egui_dock = { git = "https://github.com/rerun-io/egui_dock", rev = "69f52c752695165243d8900b8e11a84df812d67f" } # https://github.com/Adanos020/egui_dock/pull/93 +egui_dock = { git = "https://github.com/rerun-io/egui_dock", rev = "bc7c2e3d3bd0261ddf3030ffbc85233a83d02e1e" } # https://github.com/Adanos020/egui_dock/pull/93 egui-notify = { git = "https://github.com/rerun-io/egui-notify", rev = "a158c2b81ca69ac78e3c61a705f478e8af76fd7d" } # https://github.com/ItsEthra/egui-notify/pull/10 # egui_dock = { path = "../../forks/egui_dock" } # egui-notify = { path = "../../forks/egui-notify" } diff --git a/crates/re_viewer/src/ui/viewport.rs b/crates/re_viewer/src/ui/viewport.rs index a001e3b2d3ad..f46312e14b0c 100644 --- a/crates/re_viewer/src/ui/viewport.rs +++ b/crates/re_viewer/src/ui/viewport.rs @@ -800,7 +800,23 @@ impl<'a, 'b> egui_dock::TabViewer for TabViewer<'a, 'b> { .space_views .get_mut(tab) .expect("Should have been populated beforehand"); - space_view.display_text() + + let mut text = space_view.display_text(); + + if self.ctx.selection().contains(&Selection::SpaceView(*tab)) { + // Show that it is selected: + let egui_ctx = &self.ctx.re_ui.egui_ctx; + let selection_bg_color = egui_ctx.style().visuals.selection.bg_fill; + text = text.background_color(selection_bg_color); + } + + text + } + + fn on_tab_button(&mut self, tab: &mut Self::Tab, response: &egui::Response) { + if response.clicked() { + self.ctx.set_single_selection(Selection::SpaceView(*tab)); + } } } From 72d29d9eb30d82536ad85144721cf88c322d3585 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Wed, 1 Feb 2023 15:51:21 +0100 Subject: [PATCH 2/3] Remove the cogwheel button from the tab row --- crates/re_viewer/src/ui/viewport.rs | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/crates/re_viewer/src/ui/viewport.rs b/crates/re_viewer/src/ui/viewport.rs index f46312e14b0c..96d6ce519c67 100644 --- a/crates/re_viewer/src/ui/viewport.rs +++ b/crates/re_viewer/src/ui/viewport.rs @@ -833,30 +833,6 @@ fn help_text_ui(ui: &mut egui::Ui, space_view: &SpaceView) { } } -fn space_view_options_link( - ctx: &mut ViewerContext<'_>, - selection_panel_expanded: &mut bool, - space_view_id: SpaceViewId, - ui: &mut egui::Ui, - text: &str, -) { - let selection = Selection::SpaceView(space_view_id); - let is_selected = ctx.selection().contains(&selection) && *selection_panel_expanded; - if ui - .selectable_label(is_selected, text) - .on_hover_text("Space View options") - .clicked() - { - if is_selected { - ctx.selection_state_mut().clear_current(); - *selection_panel_expanded = false; - } else { - ctx.set_single_selection(selection); - *selection_panel_expanded = true; - } - } -} - /// Shown in the right of the tab panel fn space_view_options_ui( ctx: &mut ViewerContext<'_>, @@ -875,8 +851,6 @@ fn space_view_options_ui( ui.add_space(4.0); - space_view_options_link(ctx, selection_panel_expanded, space_view.id, ui, "⛭"); - if viewport.maximized == Some(space_view_id) { // Show minimize-button: if ctx From bb8d9737921c2eff5414a1daa89f12dbcf5a8049 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Wed, 1 Feb 2023 15:52:25 +0100 Subject: [PATCH 3/3] Remove dead code --- crates/re_viewer/src/ui/blueprint.rs | 7 +------ crates/re_viewer/src/ui/viewport.rs | 12 +----------- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/crates/re_viewer/src/ui/blueprint.rs b/crates/re_viewer/src/ui/blueprint.rs index 0a2f04d192bd..d8b4a2401d9e 100644 --- a/crates/re_viewer/src/ui/blueprint.rs +++ b/crates/re_viewer/src/ui/blueprint.rs @@ -42,12 +42,7 @@ impl Blueprint { egui::CentralPanel::default() .frame(viewport_frame) .show_inside(ui, |ui| { - self.viewport.viewport_ui( - ui, - ctx, - &spaces_info, - &mut self.selection_panel_expanded, - ); + self.viewport.viewport_ui(ui, ctx, &spaces_info); }); } diff --git a/crates/re_viewer/src/ui/viewport.rs b/crates/re_viewer/src/ui/viewport.rs index 96d6ce519c67..5ed29b12ca56 100644 --- a/crates/re_viewer/src/ui/viewport.rs +++ b/crates/re_viewer/src/ui/viewport.rs @@ -384,7 +384,6 @@ impl Viewport { ui: &mut egui::Ui, ctx: &mut ViewerContext<'_>, spaces_info: &SpaceInfoCollection, - selection_panel_expanded: &mut bool, ) { if let Some(window) = &mut self.space_view_entity_window { if let Some(space_view) = self.space_views.get_mut(&window.space_view_id) { @@ -476,15 +475,7 @@ impl Viewport { for (space_view_id, tab_bar_rect) in tab_bars { // rect/viewport can be invalid for the first frame - space_view_options_ui( - ctx, - ui, - self, - tab_bar_rect, - selection_panel_expanded, - space_view_id, - num_space_views, - ); + space_view_options_ui(ctx, ui, self, tab_bar_rect, space_view_id, num_space_views); } } } @@ -839,7 +830,6 @@ fn space_view_options_ui( ui: &mut egui::Ui, viewport: &mut Viewport, tab_bar_rect: egui::Rect, - selection_panel_expanded: &mut bool, space_view_id: SpaceViewId, num_space_views: usize, ) {