aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2013-11-01 14:06:03 -0400
committerGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2013-11-01 14:06:03 -0400
commit0e96c9f62e3a7030d9208f32e59390cb3fd20bbe (patch)
tree309804693d8c0b272343c8cd767a01baedb4e33f /qt-ui
parent23a193b0d1a94098ebcf1b5bafbc79ed879b5106 (diff)
downloadsubsurface-0e96c9f62e3a7030d9208f32e59390cb3fd20bbe.tar.gz
Enable undo for the Edit mode on Added Dives.
This enables undo for the edit mode on added dives, it uses the premade backup to fill the old dive with data. :) Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/diveplanner.cpp10
-rw-r--r--qt-ui/diveplanner.h2
-rw-r--r--qt-ui/maintab.cpp3
-rw-r--r--qt-ui/maintab.h4
4 files changed, 17 insertions, 2 deletions
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index d94e96570..169158987 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -1197,6 +1197,16 @@ void DivePlannerPointsModel::createTemporaryPlan()
#endif
}
+void DivePlannerPointsModel::undoEdition()
+{
+ beginRemoveRows(QModelIndex(), 0, rowCount()-1);
+ divepoints.clear();
+ endRemoveRows();
+ Q_FOREACH(const sample &s, backupSamples){
+ plannerModel->addStop(s.depth.mm, s.time.seconds, tr("Air"), 0);
+ }
+}
+
void DivePlannerPointsModel::deleteTemporaryPlan()
{
deleteTemporaryPlan(diveplan.dp);
diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h
index 6812b26ef..6883f62eb 100644
--- a/qt-ui/diveplanner.h
+++ b/qt-ui/diveplanner.h
@@ -55,7 +55,7 @@ public slots:
void createTemporaryPlan();
void deleteTemporaryPlan();
void loadFromDive(dive* d);
-
+ void undoEdition();
signals:
void planCreated();
void planCanceled();
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
index f88d7c6d0..ddcdc6c63 100644
--- a/qt-ui/maintab.cpp
+++ b/qt-ui/maintab.cpp
@@ -507,6 +507,9 @@ void MainTab::rejectChanges()
delete_single_dive(selected_dive);
DivePlannerPointsModel::instance()->cancelPlan();
}
+ else if (editMode == MANUALLY_ADDED_DIVE ){
+ DivePlannerPointsModel::instance()->undoEdition();
+ }
struct dive *curr = current_dive;
ui.notes->setText(notesBackup[curr].notes );
ui.location->setText(notesBackup[curr].location);
diff --git a/qt-ui/maintab.h b/qt-ui/maintab.h
index 1f586e70a..afc30a079 100644
--- a/qt-ui/maintab.h
+++ b/qt-ui/maintab.h
@@ -46,7 +46,8 @@ class MainTab : public QTabWidget
{
Q_OBJECT
public:
- enum EditMode { NONE, DIVE, TRIP, ADD, MANUALLY_ADDED_DIVE } editMode;
+ enum EditMode { NONE, DIVE, TRIP, ADD, MANUALLY_ADDED_DIVE };
+
MainTab(QWidget *parent);
void clearStats();
void clearInfo();
@@ -78,6 +79,7 @@ public slots:
void enableEdition(EditMode newEditMode = NONE);
private:
+ EditMode editMode;
Ui::MainTab ui;
WeightModel *weightModel;
CylindersModel *cylindersModel;