diff options
author | Tomaz Canabrava <tcanabrava@kde.org> | 2013-05-19 00:09:36 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-05-18 21:30:54 -0700 |
commit | 046eacabe529c2b064a89d55a86689ec4dda37e9 (patch) | |
tree | 44d67d3b2d13d10e8d443cec3912cd11ee919d00 /qt-ui | |
parent | 80274b578899772a6c45682029cbce56ebc1eccb (diff) | |
download | subsurface-046eacabe529c2b064a89d55a86689ec4dda37e9.tar.gz |
Make impossible to change dives while editing one.
This is to prevent loss of data, so if the user is editing something,
either cancel the edition or save it, to continue moving around on
the Dive List. - Only the dive list is affected, user can still
play with the globe and the profile.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/maintab.cpp | 17 | ||||
-rw-r--r-- | qt-ui/mainwindow.cpp | 28 | ||||
-rw-r--r-- | qt-ui/mainwindow.h | 12 |
3 files changed, 51 insertions, 6 deletions
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp index 63e4a33d2..c33ad717b 100644 --- a/qt-ui/maintab.cpp +++ b/qt-ui/maintab.cpp @@ -8,8 +8,10 @@ #include "ui_maintab.h" #include "addcylinderdialog.h" #include "addweightsystemdialog.h" +#include "mainwindow.h" #include "../helpers.h" #include "../statistics.h" +#include "divelistview.h" #include <QLabel> #include <QDebug> @@ -218,6 +220,8 @@ void MainTab::on_editNotes_clicked(bool edit) ui->notes->setReadOnly(!edit); ui->rating->setReadOnly(!edit); + mainWindow()->dive_list()->setEnabled(!edit); + if (edit){ ui->diveNotesMessage->setText("This dive is being edited. click on finish / reset when ready."); ui->diveNotesMessage->animatedShow(); @@ -247,12 +251,13 @@ void MainTab::on_resetNotes_clicked() ui->editNotes->setChecked(false); ui->diveNotesMessage->animatedHide(); - ui->location->setReadOnly(false); - ui->divemaster->setReadOnly(false); - ui->buddy->setReadOnly(false); - ui->suit->setReadOnly(false); - ui->notes->setReadOnly(false); - ui->rating->setReadOnly(false); + ui->location->setReadOnly(true); + ui->divemaster->setReadOnly(true); + ui->buddy->setReadOnly(true); + ui->suit->setReadOnly(true); + ui->notes->setReadOnly(true); + ui->rating->setReadOnly(true); + mainWindow()->dive_list()->setEnabled(true); } #define EDIT_NOTES(what, text) \ diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 1eb741244..b60f668e2 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -26,6 +26,13 @@ #include "modeldelegates.h" #include "models.h" +static MainWindow* instance = 0; + +MainWindow* mainWindow() +{ + return instance; +} + MainWindow::MainWindow() : ui(new Ui::MainWindow()) { ui->setupUi(this); @@ -39,6 +46,7 @@ MainWindow::MainWindow() : ui(new Ui::MainWindow()) ui->ListWidget->reload(); ui->ListWidget->setFocus(); ui->globe->reload(); + instance = this; } void MainWindow::current_dive_changed(int divenr) @@ -465,3 +473,23 @@ void MainWindow::closeEvent(QCloseEvent *event) event->accept(); writeSettings(); } + +DiveListView* MainWindow::dive_list() +{ + return ui->ListWidget; +} + +GlobeGPS* MainWindow::globe() +{ + return ui->globe; +} + +ProfileGraphicsView* MainWindow::graphics() +{ + return ui->ProfileWidget; +} + +MainTab* MainWindow::information() +{ + return ui->InfoWidget; +} diff --git a/qt-ui/mainwindow.h b/qt-ui/mainwindow.h index 60f0d4609..ea0ec015e 100644 --- a/qt-ui/mainwindow.h +++ b/qt-ui/mainwindow.h @@ -11,6 +11,7 @@ #include <QModelIndex> #include <QAction> +struct DiveList; class QSortFilterProxyModel; class DiveTripModel; @@ -24,15 +25,24 @@ class DiveNotes; class Stats; class Equipment; class QItemSelection; +class DiveListView; +class GlobeGPS; +class MainTab; +class ProfileGraphicsView; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); + ProfileGraphicsView *graphics(); + MainTab *information(); + DiveListView *dive_list(); + GlobeGPS *globe(); private Q_SLOTS: + /* file menu action */ void on_actionNew_triggered(); void on_actionOpen_triggered(); @@ -86,4 +96,6 @@ private: void redrawProfile(); }; +MainWindow *mainWindow(); + #endif |