mirror of https://codeberg.org/topola/topola.git
egui/MenuBar: grey out workspace-tied commands when no workspace is loaded
This commit is contained in:
parent
e66fbe292b
commit
b5c637e68b
|
|
@ -129,12 +129,14 @@ impl MenuBar {
|
||||||
egui::menu::bar(ui, |ui| {
|
egui::menu::bar(ui, |ui| {
|
||||||
ui.menu_button(tr.text("tr-menu-file"), |ui| {
|
ui.menu_button(tr.text("tr-menu-file"), |ui| {
|
||||||
open_design.button(ctx, ui);
|
open_design.button(ctx, ui);
|
||||||
export_session.button(ctx, ui);
|
ui.add_enabled_ui(maybe_workspace.is_some(), |ui| {
|
||||||
|
export_session.button(ctx, ui);
|
||||||
|
|
||||||
ui.separator();
|
ui.separator();
|
||||||
|
|
||||||
import_history.button(ctx, ui);
|
import_history.button(ctx, ui);
|
||||||
export_history.button(ctx, ui);
|
export_history.button(ctx, ui);
|
||||||
|
});
|
||||||
|
|
||||||
ui.separator();
|
ui.separator();
|
||||||
|
|
||||||
|
|
@ -145,16 +147,18 @@ impl MenuBar {
|
||||||
});
|
});
|
||||||
|
|
||||||
ui.menu_button(tr.text("tr-menu-edit"), |ui| {
|
ui.menu_button(tr.text("tr-menu-edit"), |ui| {
|
||||||
undo.button(ctx, ui);
|
ui.add_enabled_ui(maybe_workspace.is_some(), |ui| {
|
||||||
redo.button(ctx, ui);
|
undo.button(ctx, ui);
|
||||||
|
redo.button(ctx, ui);
|
||||||
|
|
||||||
ui.separator();
|
ui.separator();
|
||||||
|
|
||||||
abort.button(ctx, ui);
|
abort.button(ctx, ui);
|
||||||
|
|
||||||
ui.separator();
|
ui.separator();
|
||||||
|
|
||||||
remove_bands.button(ctx, ui);
|
remove_bands.button(ctx, ui);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
ui.menu_button(tr.text("tr-menu-view"), |ui| {
|
ui.menu_button(tr.text("tr-menu-view"), |ui| {
|
||||||
|
|
@ -165,23 +169,28 @@ impl MenuBar {
|
||||||
|
|
||||||
ui.separator();
|
ui.separator();
|
||||||
|
|
||||||
ui.checkbox(
|
ui.add_enabled_ui(maybe_workspace.is_some(), |ui| {
|
||||||
&mut self.show_ratsnest,
|
ui.checkbox(
|
||||||
tr.text("tr-menu-view-show-ratsnest"),
|
&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(
|
||||||
ui.checkbox(
|
&mut self.show_navmesh,
|
||||||
&mut self.show_origin_destination,
|
tr.text("tr-menu-view-show-navmesh"),
|
||||||
tr.text("tr-menu-view-show-origin-destination"),
|
);
|
||||||
);
|
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.separator();
|
||||||
|
|
||||||
ui.checkbox(
|
ui.checkbox(
|
||||||
&mut self.show_layer_manager,
|
&mut self.show_layer_manager,
|
||||||
tr.text("tr-menu-view-show-layer-manager"),
|
tr.text("tr-menu-view-show-layer-manager"),
|
||||||
);
|
);
|
||||||
|
});
|
||||||
|
|
||||||
ui.separator();
|
ui.separator();
|
||||||
|
|
||||||
|
|
@ -192,36 +201,47 @@ impl MenuBar {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// NOTE: we could disable the entire range of menus below
|
||||||
|
// when no workspace is loaded, but that would disrupt "hover-scrolling"
|
||||||
|
// between menus inside of the conditionally enabled section and
|
||||||
|
// those outside...
|
||||||
|
|
||||||
ui.menu_button(tr.text("tr-menu-place"), |ui| {
|
ui.menu_button(tr.text("tr-menu-place"), |ui| {
|
||||||
place_via.toggle_widget(ctx, ui, &mut self.is_placing_via);
|
ui.add_enabled_ui(maybe_workspace.is_some(), |ui| {
|
||||||
|
place_via.toggle_widget(ctx, ui, &mut self.is_placing_via);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
ui.menu_button(tr.text("tr-menu-route"), |ui| {
|
ui.menu_button(tr.text("tr-menu-route"), |ui| {
|
||||||
autoroute.button(ctx, ui);
|
ui.add_enabled_ui(maybe_workspace.is_some(), |ui| {
|
||||||
ui.separator();
|
autoroute.button(ctx, ui);
|
||||||
|
ui.separator();
|
||||||
|
|
||||||
ui.menu_button(tr.text("tr-menu-options"), |ui| {
|
ui.menu_button(tr.text("tr-menu-options"), |ui| {
|
||||||
ui.checkbox(
|
ui.checkbox(
|
||||||
&mut self.autorouter_options.presort_by_pairwise_detours,
|
&mut self.autorouter_options.presort_by_pairwise_detours,
|
||||||
tr.text("tr-menu-route-options-presort-by-pairwise-detours"),
|
tr.text("tr-menu-route-options-presort-by-pairwise-detours"),
|
||||||
);
|
);
|
||||||
ui.checkbox(
|
ui.checkbox(
|
||||||
&mut self
|
&mut self
|
||||||
.autorouter_options
|
.autorouter_options
|
||||||
.router_options
|
.router_options
|
||||||
.squeeze_through_under_bands,
|
.squeeze_through_under_bands,
|
||||||
tr.text("tr-menu-route-options-squeeze-through-under-bands"),
|
tr.text("tr-menu-route-options-squeeze-through-under-bands"),
|
||||||
);
|
);
|
||||||
ui.checkbox(
|
ui.checkbox(
|
||||||
&mut self.autorouter_options.router_options.wrap_around_bands,
|
&mut self.autorouter_options.router_options.wrap_around_bands,
|
||||||
tr.text("tr-menu-route-options-wrap-around-bands"),
|
tr.text("tr-menu-route-options-wrap-around-bands"),
|
||||||
);
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
ui.menu_button(tr.text("tr-menu-inspect"), |ui| {
|
ui.menu_button(tr.text("tr-menu-inspect"), |ui| {
|
||||||
compare_detours.button(ctx, ui);
|
ui.add_enabled_ui(maybe_workspace.is_some(), |ui| {
|
||||||
measure_length.button(ctx, ui);
|
compare_detours.button(ctx, ui);
|
||||||
|
measure_length.button(ctx, ui);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
ui.separator();
|
ui.separator();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue