@@ -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// ******************************************************************************
609646void 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// ******************************************************************************
635672void 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) {
0 commit comments