diff options
-rw-r--r-- | qt-ui/locationinformation.cpp | 13 | ||||
-rw-r--r-- | qt-ui/locationinformation.h | 11 | ||||
-rw-r--r-- | qt-ui/mainwindow.cpp | 9 | ||||
-rw-r--r-- | qt-ui/mainwindow.h | 1 |
4 files changed, 30 insertions, 4 deletions
diff --git a/qt-ui/locationinformation.cpp b/qt-ui/locationinformation.cpp index cc6405947..198d7f6a0 100644 --- a/qt-ui/locationinformation.cpp +++ b/qt-ui/locationinformation.cpp @@ -101,6 +101,19 @@ void LocationInformationWidget::acceptChanges() emit coordinatesChanged(); } +void LocationInformationWidget::editDiveSite(uint32_t uuid) +{ + current_mode = EDIT_DIVE_SITE; + setCurrentDiveSiteByUuid(uuid); +} + +void LocationInformationWidget::createDiveSite() +{ + uint32_t uid = LocationInformationModel::instance()->addDiveSite(tr("untitled")); + current_mode = CREATE_DIVE_SITE; + setCurrentDiveSiteByUuid(uid); +} + void LocationInformationWidget::rejectChanges() { if (currentDs && dive_site_is_empty(currentDs)) { diff --git a/qt-ui/locationinformation.h b/qt-ui/locationinformation.h index 445451197..d78af62f8 100644 --- a/qt-ui/locationinformation.h +++ b/qt-ui/locationinformation.h @@ -8,6 +8,7 @@ class LocationInformationWidget : public QGroupBox { Q_OBJECT public: + enum mode{CREATE_DIVE_SITE, EDIT_DIVE_SITE}; LocationInformationWidget(QWidget *parent = 0); protected: void showEvent(QShowEvent *); @@ -15,8 +16,9 @@ protected: public slots: void acceptChanges(); void rejectChanges(); - void setCurrentDiveSiteByUuid(uint32_t uuid); - void updateGpsCoordinates(void); + void updateGpsCoordinates(); + void editDiveSite(uint32_t uuid); + void createDiveSite(); void markChangedWidget(QWidget *w); void enableEdition(); void resetState(); @@ -25,7 +27,11 @@ public slots: void on_diveSiteDescription_textChanged(const QString& text); void on_diveSiteName_textChanged(const QString& text); void on_diveSiteNotes_textChanged(); +private slots: + void setCurrentDiveSiteByUuid(uint32_t uuid); signals: + void startEditDiveSite(uint32_t uuid); + void endEditDiveSite(); void informationManagementEnded(); void coordinatesChanged(); void startFilterDiveSite(uint32_t uuid); @@ -35,6 +41,7 @@ private: Ui::LocationInformation ui; bool modified; QAction *closeAction, *acceptAction, *rejectAction; + mode current_mode; }; #endif diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index aef22497b..e4309a23b 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -215,8 +215,13 @@ void MainWindow::on_actionManage_dive_sites_triggered() { enableDiveSiteEdit(displayed_dive.dive_site_uuid); } -void MainWindow::enableDiveSiteEdit(uint32_t id) { - locationInformationWidget()->setCurrentDiveSiteByUuid(id); +void MainWindow::enableDiveSiteCreation() { + locationInformationWidget()->createDiveSite(); + setApplicationState("EditDiveSite"); +} + + void MainWindow::enableDiveSiteEdit(uint32_t id) { + locationInformationWidget()->editDiveSite(id); setApplicationState("EditDiveSite"); } diff --git a/qt-ui/mainwindow.h b/qt-ui/mainwindow.h index ea09ca52d..6a5f95921 100644 --- a/qt-ui/mainwindow.h +++ b/qt-ui/mainwindow.h @@ -185,6 +185,7 @@ slots: void planCanceled(); void planCreated(); void setEnabledToolbar(bool arg1); + void enableDiveSiteCreation(); private: Ui::MainWindow ui; |