summaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-05-19 00:09:36 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-05-18 21:30:54 -0700
commit046eacabe529c2b064a89d55a86689ec4dda37e9 (patch)
tree44d67d3b2d13d10e8d443cec3912cd11ee919d00 /qt-ui
parent80274b578899772a6c45682029cbce56ebc1eccb (diff)
downloadsubsurface-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.cpp17
-rw-r--r--qt-ui/mainwindow.cpp28
-rw-r--r--qt-ui/mainwindow.h12
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