diff options
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/diveplanner.cpp | 10 | ||||
-rw-r--r-- | qt-ui/diveplanner.h | 14 | ||||
-rw-r--r-- | qt-ui/mainwindow.cpp | 14 |
3 files changed, 24 insertions, 14 deletions
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp index ba578fed1..5356aa71f 100644 --- a/qt-ui/diveplanner.cpp +++ b/qt-ui/diveplanner.cpp @@ -894,6 +894,16 @@ void DivePlannerWidget::lastStopChanged(bool checked) plannerModel->setLastStop6m(checked); } +void DivePlannerPointsModel::setPlanMode(bool isPlan) +{ + mode = isPlan ? PLAN : ADD; +} + +bool DivePlannerPointsModel::isPlanner() +{ + return mode == PLAN; +} + int DivePlannerPointsModel::columnCount(const QModelIndex& parent) const { return COLUMNS; diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h index 8dd8db3e3..2f7000a6d 100644 --- a/qt-ui/diveplanner.h +++ b/qt-ui/diveplanner.h @@ -29,9 +29,12 @@ public: virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const; virtual int rowCount(const QModelIndex& parent = QModelIndex()) const; virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; - virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole); - virtual Qt::ItemFlags flags(const QModelIndex& index) const; + virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole); + virtual Qt::ItemFlags flags(const QModelIndex& index) const; void removeSelectedPoints(const QVector<int>& rows); + enum Modes { PLAN, ADD }; + void setPlanMode(bool); + bool isPlanner(); /** * @return the row number. @@ -50,9 +53,9 @@ public slots: void setLastStop6m(bool value); void createPlan(); void remove(const QModelIndex& index); - void cancelPlan(); - void createTemporaryPlan(); - void deleteTemporaryPlan(); + void cancelPlan(); + void createTemporaryPlan(); + void deleteTemporaryPlan(); signals: void planCreated(); @@ -61,6 +64,7 @@ signals: private: explicit DivePlannerPointsModel(QObject* parent = 0); struct diveplan diveplan; + Modes mode; QVector<divedatapoint> divepoints; struct dive *tempDive; void deleteTemporaryPlan(struct divedatapoint *dp); diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 8d6315d86..0b1f57ca9 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -209,6 +209,7 @@ void MainWindow::enableDcShortcuts() void MainWindow::on_actionDivePlanner_triggered() { disableDcShortcuts(); + DivePlannerPointsModel::instance()->setPlanMode(true); ui->stackedWidget->setCurrentIndex(1); ui->infoPane->setCurrentIndex(1); } @@ -254,15 +255,10 @@ void MainWindow::on_actionEditDeviceNames_triggered() void MainWindow::on_actionAddDive_triggered() { - struct dive *dive; - dive = alloc_dive(); - record_dive(dive); - process_dives(FALSE, FALSE); - - ui->InfoWidget->reload(); - ui->globe->reload(); - ui->ListWidget->reload(DiveTripModel::TREE); - ui->ListWidget->setFocus(); + disableDcShortcuts(); + DivePlannerPointsModel::instance()->setPlanMode(false); + ui->stackedWidget->setCurrentIndex(1); + ui->infoPane->setCurrentIndex(1); } void MainWindow::on_actionRenumber_triggered() |