From 5133a38d259b2ef187d3707a10fd93f8078dea35 Mon Sep 17 00:00:00 2001 From: Jan Mulder Date: Thu, 13 Sep 2018 17:33:07 +0200 Subject: Desktop: disable UI elements that make no sense during editing As described in the referenced issue, we where able to navigate to nonlogical static pages (like information, statistics. extra data) when adding a dive. These are output style pages that make no sense on edit or add. Further, disable access to some pages when entering edit mode. Notice that the small change in file mainwindow.cpp is simply because this this not work at all, and became superfluous any way. Fixes: #1445 Signed-off-by: Jan Mulder --- desktop-widgets/mainwindow.cpp | 3 --- desktop-widgets/tab-widgets/maintab.cpp | 10 ++++++++++ 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'desktop-widgets') diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp index 1028a0f7c..d11d3c762 100644 --- a/desktop-widgets/mainwindow.cpp +++ b/desktop-widgets/mainwindow.cpp @@ -1054,9 +1054,6 @@ void MainWindow::on_actionAddDive_triggered() // now show the mostly empty main tab information()->updateDiveInfo(); - // show main tab - information()->setCurrentIndex(0); - information()->addDiveStarted(); graphics()->setAddState(); diff --git a/desktop-widgets/tab-widgets/maintab.cpp b/desktop-widgets/tab-widgets/maintab.cpp index 7112458f1..eb8292b1a 100644 --- a/desktop-widgets/tab-widgets/maintab.cpp +++ b/desktop-widgets/tab-widgets/maintab.cpp @@ -270,6 +270,11 @@ void MainTab::toggleTriggeredColumn() void MainTab::addDiveStarted() { + ui.tabWidget->setCurrentIndex(0); + ui.tabWidget->setTabEnabled(2, false); + ui.tabWidget->setTabEnabled(3, false); + ui.tabWidget->setTabEnabled(4, false); + ui.tabWidget->setTabEnabled(5, false); enableEdition(ADD); } @@ -339,6 +344,9 @@ void MainTab::enableEdition(EditMode newEditMode) MainWindow::instance()->dive_list()->setEnabled(false); MainWindow::instance()->setEnabledToolbar(false); MainWindow::instance()->enterEditState(); + ui.tabWidget->setTabEnabled(2, false); + ui.tabWidget->setTabEnabled(3, false); + ui.tabWidget->setTabEnabled(5, false); if (isTripEdit) { // we are editing trip location and notes @@ -534,6 +542,8 @@ void MainTab::updateDiveInfo(bool clear) ui.tabWidget->setTabText(0, tr("Notes")); ui.tabWidget->setTabEnabled(1, true); ui.tabWidget->setTabEnabled(2, true); + ui.tabWidget->setTabEnabled(3, true); + ui.tabWidget->setTabEnabled(4, true); ui.tabWidget->setTabEnabled(5, true); // Recover the tab selected for last dive if (!lastSelectedDive) -- cgit v1.2.3-70-g09d2