Skip to content

Commit a70773d

Browse files
committed
GUI : disable most of buttons when board is not ready
1 parent ebdd2e0 commit a70773d

2 files changed

Lines changed: 48 additions & 10 deletions

File tree

src/ui/qt/main_window.cpp

Lines changed: 47 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ MainWindow::MainWindow(app::OpenEMSH& oemsh, QWidget* parent)
5252

5353
// TODO Init StructureView & ProcessingView stuff from buttons default values
5454

55+
update_board_dependant_buttons_visibility(false);
56+
5557
ui->statusBar->addPermanentWidget(ui->l_cell_number);
5658

5759
Progress::singleton().register_impl_builder(
@@ -93,6 +95,7 @@ bool MainWindow::parse_and_display() {
9395
if(auto res = oemsh.parse()
9496
; !res.has_value()) {
9597
QGuiApplication::restoreOverrideCursor();
98+
update_board_dependant_buttons_visibility(false);
9699
log({
97100
.level = Logger::Level::ERROR,
98101
.user_actions = { Logger::UserAction::OK },
@@ -104,6 +107,7 @@ bool MainWindow::parse_and_display() {
104107
return false;
105108
}
106109

110+
update_board_dependant_buttons_visibility(true);
107111
update_title();
108112
ui->structure_view->init(&oemsh.get_board());
109113
ui->processing_view->init(&oemsh.get_board());
@@ -605,6 +609,39 @@ void MainWindow::handle_edition_from(app::Step from, std::function<void ()> cons
605609
run(from);
606610
}
607611

612+
//******************************************************************************
613+
void MainWindow::update_board_dependant_buttons_visibility(bool are_enabled) {
614+
ui->a_file_save->setEnabled(are_enabled);
615+
ui->a_file_save_as->setEnabled(are_enabled);
616+
ui->a_edit->setEnabled(are_enabled);
617+
ui->a_auto_mesh->setEnabled(are_enabled);
618+
ui->a_remesh->setEnabled(are_enabled);
619+
ui->a_mesh_prev->setEnabled(are_enabled);
620+
ui->a_mesh_next->setEnabled(are_enabled);
621+
ui->a_undo->setEnabled(are_enabled);
622+
ui->a_redo->setEnabled(are_enabled);
623+
ui->a_appcsxcad->setEnabled(are_enabled);
624+
ui->tb_show_all_mesh->setEnabled(are_enabled);
625+
ui->tb_show_horizontal_mesh->setEnabled(are_enabled);
626+
ui->tb_show_vertical_mesh->setEnabled(are_enabled);
627+
ui->tb_show_no_mesh->setEnabled(are_enabled);
628+
ui->tb_show_selected->setEnabled(are_enabled);
629+
ui->tb_show_displayed->setEnabled(are_enabled);
630+
ui->tb_show_everything->setEnabled(are_enabled);
631+
ui->tb_curved_wires->setEnabled(are_enabled);
632+
ui->tb_direct_wires->setEnabled(are_enabled);
633+
ui->tb_structure_rotate_cw->setEnabled(are_enabled);
634+
ui->tb_structure_rotate_ccw->setEnabled(are_enabled);
635+
ui->tb_structure_zoom_in->setEnabled(are_enabled);
636+
ui->tb_structure_zoom_out->setEnabled(are_enabled);
637+
ui->tb_processing_zoom_in->setEnabled(are_enabled);
638+
ui->tb_processing_zoom_out->setEnabled(are_enabled);
639+
ui->tb_plane_xy->setEnabled(are_enabled);
640+
ui->tb_plane_yz->setEnabled(are_enabled);
641+
ui->tb_plane_zx->setEnabled(are_enabled);
642+
ui->tb_anchor->setEnabled(are_enabled);
643+
}
644+
608645
//******************************************************************************
609646
void MainWindow::update_navigation_buttons_visibility() {
610647
ui->a_undo->setEnabled(Caretaker::singleton().can_undo());
@@ -634,29 +671,29 @@ void MainWindow::update_show_buttons_pressing() {
634671
//******************************************************************************
635672
void MainWindow::keyPressEvent(QKeyEvent* event) {
636673
if(event->key() == Qt::Key_E || event->key() == Qt::Key_Space) {
637-
on_a_edit_triggered();
674+
ui->a_edit->trigger();
638675
} else if(event->key() == Qt::Key_F) {
639-
on_a_fit_triggered();
676+
ui->a_fit->trigger();
640677
} else if(event->key() == Qt::Key_A) {
641-
on_a_appcsxcad_triggered();
678+
ui->a_appcsxcad->trigger();
642679
} else if(event->modifiers() & Qt::ControlModifier && event->key() == Qt::Key_O) {
643-
on_a_file_open_triggered();
680+
ui->a_file_open->trigger();
644681
} else if(event->modifiers() & Qt::ControlModifier && event->key() == Qt::Key_S) {
645682
if(event->modifiers() & Qt::ShiftModifier) {
646-
on_a_file_save_as_triggered();
683+
ui->a_file_save_as->trigger();
647684
} else {
648-
on_a_file_save_triggered();
685+
ui->a_file_save->trigger();
649686
}
650687
} else if(event->modifiers() & Qt::ControlModifier && event->key() == Qt::Key_Z) {
651688
if(event->modifiers() & Qt::ShiftModifier) {
652-
on_a_redo_triggered();
689+
ui->a_redo->trigger();
653690
} else {
654-
on_a_undo_triggered();
691+
ui->a_undo->trigger();
655692
}
656693
} else if(event->key() == Qt::Key_Greater) {
657-
on_a_mesh_next_triggered();
694+
ui->a_mesh_next->trigger();
658695
} else if(event->key() == Qt::Key_Less) {
659-
on_a_mesh_prev_triggered();
696+
ui->a_mesh_prev->trigger();
660697
} else if(event->key() == Qt::Key_1) {
661698
ui->tb_show_selected->click();
662699
} else if(event->key() == Qt::Key_2) {

src/ui/qt/main_window.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class MainWindow : public QMainWindow {
3434
void set_style(Style const& style);
3535

3636
void update_title();
37+
void update_board_dependant_buttons_visibility(bool are_enabled);
3738
void update_navigation_buttons_visibility();
3839
void update_show_buttons_pressing();
3940
void update_cell_number(bool reset = false);

0 commit comments

Comments
 (0)