From 6e42ad5488e8bd3c3833733fde2c2ce40d5e2e0e Mon Sep 17 00:00:00 2001 From: crumblingstatue Date: Wed, 16 Oct 2024 16:57:02 +0200 Subject: [PATCH] Views window: Add button to create new view if there are no views --- src/gui/windows/views_window.rs | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/gui/windows/views_window.rs b/src/gui/windows/views_window.rs index f985aa6..91f8af1 100644 --- a/src/gui/windows/views_window.rs +++ b/src/gui/windows/views_window.rs @@ -61,6 +61,7 @@ impl super::Window for ViewsWindow { let mut removed_idx = None; if app.meta_state.meta.views.is_empty() { ui.label("No views"); + new_from_perspective_button(ui, app); return; } TableBuilder::new(ui) @@ -144,17 +145,7 @@ impl super::Window for ViewsWindow { }); }); ui.separator(); - ui.menu_button("New from perspective", |ui| { - for (key, perspective) in app.meta_state.meta.low.perspectives.iter() { - if ui.button(&perspective.name).clicked() { - ui.close_menu(); - app.cmd.push(Cmd::CreateView { - perspective_key: key, - name: perspective.name.to_owned(), - }); - } - } - }); + new_from_perspective_button(ui, app); ui.separator(); if let Some(view) = app.meta_state.meta.views.get_mut(self.selected) { ui.horizontal(|ui| { @@ -282,6 +273,20 @@ impl super::Window for ViewsWindow { } } +fn new_from_perspective_button(ui: &mut egui::Ui, app: &mut App) { + ui.menu_button("New from perspective", |ui| { + for (key, perspective) in app.meta_state.meta.low.perspectives.iter() { + if ui.button(&perspective.name).clicked() { + ui.close_menu(); + app.cmd.push(Cmd::CreateView { + perspective_key: key, + name: perspective.name.to_owned(), + }); + } + } + }); +} + /// Returns whether the value was changed fn view_combo( id: impl Hash,