summaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@gmail.com>2015-05-17 17:14:23 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-05-17 13:54:08 -0700
commit10a0a252c826ff3bb8871ff79951d8272132bd08 (patch)
tree235022e677d27e9049eaba510b3bda3a103e4718 /qt-ui
parent0c33d585ea152f53ceb3d92eaaa69f157f3e3782 (diff)
downloadsubsurface-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.cpp21
-rw-r--r--qt-ui/locationinformation.h9
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);