diff options
author | Giorgio Marzano <marzano.giorgio@gmail.com> | 2015-10-11 22:24:35 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-10-18 17:37:49 -0700 |
commit | 166d587197e9d1f227f603ed10de71bf06ccacb9 (patch) | |
tree | b9bd2a85dad43dd2764dbfa318d93adc134c9272 /qt-ui | |
parent | 45b1d0d73db6e2116c6de7113feed381dcc5875f (diff) | |
download | subsurface-166d587197e9d1f227f603ed10de71bf06ccacb9.tar.gz |
Enable/Disable toolbar element in freedive mode
Signed-off-by: Giorgio Marzano <marzano.giorgio@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/mainwindow.cpp | 49 | ||||
-rw-r--r-- | qt-ui/mainwindow.h | 1 |
2 files changed, 49 insertions, 1 deletions
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 580190caa..e0476381f 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -114,7 +114,6 @@ MainWindow::MainWindow() : QMainWindow(), toolBar->addAction(a); toolBar->setOrientation(Qt::Vertical); toolBar->setIconSize(QSize(24,24)); - QWidget *profileContainer = new QWidget(); QHBoxLayout *profLayout = new QHBoxLayout(); profLayout->setSpacing(0); @@ -251,6 +250,7 @@ MainWindow::MainWindow() : QMainWindow(), ui.actionFacebook->setEnabled(false); #endif + ui.menubar->show(); set_git_update_cb(&updateProgress); } @@ -335,6 +335,48 @@ void MainWindow::recreateDiveList() SuitsFilterModel::instance()->repopulate(); } +void MainWindow::configureToolbar() { + if (selected_dive>0) { + if (current_dive->dc.divemode == FREEDIVE) { + ui.profCalcCeiling->setDisabled(true); + ui.profCalcAllTissues ->setDisabled(true); + ui.profIncrement3m->setDisabled(true); + ui.profDcCeiling->setDisabled(true); + ui.profPhe->setDisabled(true); + ui.profPn2->setDisabled(true); //TODO is the same as scuba? + ui.profPO2->setDisabled(true); //TODO is the same as scuba? + ui.profRuler->setDisabled(false); + ui.profScaled->setDisabled(false); // measuring and scaling + ui.profTogglePicture->setDisabled(false); + ui.profTankbar->setDisabled(true); + ui.profMod->setDisabled(true); + ui.profNdl_tts->setDisabled(true); + ui.profEad->setDisabled(true); + ui.profSAC->setDisabled(true); + ui.profHR->setDisabled(false); + ui.profTissues->setDisabled(true); + } else { + ui.profCalcCeiling->setDisabled(false); + ui.profCalcAllTissues ->setDisabled(false); + ui.profIncrement3m->setDisabled(false); + ui.profDcCeiling->setDisabled(false); + ui.profPhe->setDisabled(false); + ui.profPn2->setDisabled(false); + ui.profPO2->setDisabled(false); // partial pressure graphs + ui.profRuler->setDisabled(false); + ui.profScaled->setDisabled(false); // measuring and scaling + ui.profTogglePicture->setDisabled(false); + ui.profTankbar->setDisabled(false); + ui.profMod->setDisabled(false); + ui.profNdl_tts->setDisabled(false); // various values that a user is either interested in or not + ui.profEad->setDisabled(false); + ui.profSAC->setDisabled(false); + ui.profHR->setDisabled(false); // very few dive computers support this + ui.profTissues->setDisabled(false);; // maybe less frequently used + } + } +} + void MainWindow::current_dive_changed(int divenr) { if (divenr >= 0) { @@ -342,6 +384,7 @@ void MainWindow::current_dive_changed(int divenr) } graphics()->plotDive(); information()->updateDiveInfo(); + configureToolbar(); GlobeGPS::instance()->reload(); } @@ -654,6 +697,7 @@ bool MainWindow::plannerStateClean() void MainWindow::refreshProfile() { showProfile(); + configureToolbar(); graphics()->replot(get_dive(selected_dive)); DivePictureModel::instance()->updateDivePictures(); } @@ -789,6 +833,7 @@ void MainWindow::on_actionAddDive_triggered() graphics()->setAddState(); DivePlannerPointsModel::instance()->createSimpleDive(); + configureToolbar(); graphics()->plotDive(); } @@ -968,6 +1013,7 @@ void MainWindow::on_actionPreviousDC_triggered() { unsigned nrdc = number_of_computers(current_dive); dc_number = (dc_number + nrdc - 1) % nrdc; + configureToolbar(); graphics()->plotDive(); information()->updateDiveInfo(); } @@ -976,6 +1022,7 @@ void MainWindow::on_actionNextDC_triggered() { unsigned nrdc = number_of_computers(current_dive); dc_number = (dc_number + 1) % nrdc; + configureToolbar(); graphics()->plotDive(); information()->updateDiveInfo(); } diff --git a/qt-ui/mainwindow.h b/qt-ui/mainwindow.h index 14aa22f0e..02ec2478c 100644 --- a/qt-ui/mainwindow.h +++ b/qt-ui/mainwindow.h @@ -224,6 +224,7 @@ private: bool plannerStateClean(); void setupForAddAndPlan(const char *model); + void configureToolbar(); QDialog *survey; struct dive copyPasteDive; struct dive_components what; |