diff options
author | Tomaz Canabrava <tomaz.canabrava@gmail.com> | 2015-05-17 17:14:23 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-05-17 13:54:08 -0700 |
commit | 10a0a252c826ff3bb8871ff79951d8272132bd08 (patch) | |
tree | 235022e677d27e9049eaba510b3bda3a103e4718 /qt-ui | |
parent | 0c33d585ea152f53ceb3d92eaaa69f157f3e3782 (diff) | |
download | subsurface-10a0a252c826ff3bb8871ff79951d8272132bd08.tar.gz |
Update the dive location when showing the dialog
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/locationinformation.cpp | 21 | ||||
-rw-r--r-- | qt-ui/locationinformation.h | 9 |
2 files changed, 21 insertions, 9 deletions
diff --git a/qt-ui/locationinformation.cpp b/qt-ui/locationinformation.cpp index ad23b0901..812666737 100644 --- a/qt-ui/locationinformation.cpp +++ b/qt-ui/locationinformation.cpp @@ -7,7 +7,7 @@ #include <QDebug> #include <QShowEvent> -LocationInformationModel::LocationInformationModel(QObject *obj) +LocationInformationModel::LocationInformationModel(QObject *obj) : QAbstractListModel(obj), internalRowCount(0) { } @@ -37,13 +37,13 @@ void LocationInformationModel::update() for_each_dive_site (i, ds); if (rowCount()) { - beginRemoveRows(QModelIndex(), 0, rowCount()); + beginRemoveRows(QModelIndex(), 0, rowCount()-1); endRemoveRows(); } if (i) { beginInsertRows(QModelIndex(), 0, i); internalRowCount = i; - endRemoveRows(); + endInsertRows(); } } @@ -66,6 +66,14 @@ LocationInformationWidget::LocationInformationWidget(QWidget *parent) : QGroupBo ui.diveSiteMessage->setText(tr("Dive site management")); ui.diveSiteMessage->addAction(closeAction); + ui.currentLocation->setModel(new LocationInformationModel()); + connect(ui.currentLocation, SIGNAL(currentIndexChanged(int)), this, SLOT(setCurrentDiveSite(int))); +} + +void LocationInformationWidget::setCurrentDiveSite(int dive_nr) +{ + currentDs = get_dive_site(dive_nr); + setLocationId(currentDs->uuid); } void LocationInformationWidget::setLocationId(uint32_t uuid) @@ -151,8 +159,13 @@ void LocationInformationWidget::rejectChanges() emit informationManagementEnded(); } -void LocationInformationWidget::showEvent(QShowEvent *ev) { +void LocationInformationWidget::showEvent(QShowEvent *ev) +{ + LocationInformationModel *m = (LocationInformationModel*) ui.currentLocation->model(); ui.diveSiteMessage->setCloseButtonVisible(false); + m->update(); + QGroupBox::showEvent(ev); + } void LocationInformationWidget::markChangedWidget(QWidget *w) diff --git a/qt-ui/locationinformation.h b/qt-ui/locationinformation.h index 1050a87d5..82105c333 100644 --- a/qt-ui/locationinformation.h +++ b/qt-ui/locationinformation.h @@ -20,20 +20,19 @@ class LocationInformationWidget : public QGroupBox { Q_OBJECT public: LocationInformationWidget(QWidget *parent = 0); - +protected: + void showEvent(QShowEvent *); +\ public slots: void acceptChanges(); void rejectChanges(); - - void showEvent(QShowEvent *); - void setLocationId(uint32_t uuid); void updateGpsCoordinates(void); void markChangedWidget(QWidget *w); void enableEdition(); void resetState(); void resetPallete(); - + void setCurrentDiveSite(int dive_nr); void on_diveSiteCoordinates_textChanged(const QString& text); void on_diveSiteDescription_textChanged(const QString& text); void on_diveSiteName_textChanged(const QString& text); |