fix(egui): actually impl. F1 keyboard shortcut for opening doc

This commit is contained in:
Mikolaj Wielgus 2024-10-13 22:38:00 +02:00
parent 2bc090b132
commit 894326e3d5
1 changed files with 50 additions and 41 deletions

View File

@ -130,6 +130,7 @@ impl MenuBar {
egui::Modifiers::NONE, egui::Modifiers::NONE,
egui::Key::F1, egui::Key::F1,
)); ));
let online_documentation_url = "https://topola.codeberg.page/doc/";
let workspace_activities_enabled = match &maybe_workspace { let workspace_activities_enabled = match &maybe_workspace {
Some(w) => w Some(w) => w
@ -181,42 +182,7 @@ impl MenuBar {
}); });
}); });
ui.menu_button(tr.text("tr-menu-view"), |ui| { self.update_view_menu(ctx, ui, tr, viewport);
ui.toggle_value(
&mut viewport.scheduled_zoom_to_fit,
tr.text("tr-menu-view-zoom-to-fit"),
);
ui.separator();
//ui.add_enabled_ui(maybe_workspace.is_some(), |ui| {
ui.checkbox(
&mut self.show_ratsnest,
tr.text("tr-menu-view-show-ratsnest"),
);
ui.checkbox(&mut self.show_navmesh, tr.text("tr-menu-view-show-navmesh"));
ui.checkbox(&mut self.show_bboxes, tr.text("tr-menu-view-show-bboxes"));
ui.checkbox(
&mut self.show_origin_destination,
tr.text("tr-menu-view-show-origin-destination"),
);
ui.separator();
ui.checkbox(
&mut self.show_layer_manager,
tr.text("tr-menu-view-show-layer-manager"),
);
ui.separator();
//});
ui.label(tr.text("tr-menu-view-frame-timestep"));
ui.add(
egui::widgets::Slider::new(&mut self.frame_timestep, 0.0..=3.0)
.suffix(" s"),
);
});
// NOTE: we could disable the entire range of menus below // NOTE: we could disable the entire range of menus below
// when no workspace is loaded, but that would disrupt "hover-scrolling" // when no workspace is loaded, but that would disrupt "hover-scrolling"
@ -264,11 +230,7 @@ impl MenuBar {
}); });
ui.menu_button(tr.text("tr-menu-help"), |ui| { ui.menu_button(tr.text("tr-menu-help"), |ui| {
online_documentation.hyperlink( online_documentation.hyperlink(ctx, ui, online_documentation_url);
ctx,
ui,
"https://topola.codeberg.page/doc/",
);
}); });
ui.separator(); ui.separator();
@ -293,6 +255,11 @@ impl MenuBar {
}); });
} else if quit.consume_key_triggered(ctx, ui) { } else if quit.consume_key_triggered(ctx, ui) {
ctx.send_viewport_cmd(egui::ViewportCommand::Close); ctx.send_viewport_cmd(egui::ViewportCommand::Close);
} else if online_documentation.consume_key_triggered(ctx, ui) {
ui.ctx().open_url(egui::OpenUrl {
url: String::from(online_documentation_url),
new_tab: true,
});
} else if let Some(workspace) = maybe_workspace { } else if let Some(workspace) = maybe_workspace {
if export_session.consume_key_triggered(ctx, ui) { if export_session.consume_key_triggered(ctx, ui) {
let ctx = ui.ctx().clone(); let ctx = ui.ctx().clone();
@ -393,4 +360,46 @@ impl MenuBar {
}) })
.inner .inner
} }
pub fn update_view_menu(
&mut self,
ctx: &egui::Context,
ui: &mut egui::Ui,
tr: &Translator,
viewport: &mut Viewport,
) {
ui.menu_button(tr.text("tr-menu-view"), |ui| {
ui.toggle_value(
&mut viewport.scheduled_zoom_to_fit,
tr.text("tr-menu-view-zoom-to-fit"),
);
ui.separator();
//ui.add_enabled_ui(maybe_workspace.is_some(), |ui| {
ui.checkbox(
&mut self.show_ratsnest,
tr.text("tr-menu-view-show-ratsnest"),
);
ui.checkbox(&mut self.show_navmesh, tr.text("tr-menu-view-show-navmesh"));
ui.checkbox(&mut self.show_bboxes, tr.text("tr-menu-view-show-bboxes"));
ui.checkbox(
&mut self.show_origin_destination,
tr.text("tr-menu-view-show-origin-destination"),
);
ui.separator();
ui.checkbox(
&mut self.show_layer_manager,
tr.text("tr-menu-view-show-layer-manager"),
);
ui.separator();
//});
ui.label(tr.text("tr-menu-view-frame-timestep"));
ui.add(egui::widgets::Slider::new(&mut self.frame_timestep, 0.0..=3.0).suffix(" s"));
});
}
} }