diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2015-08-31 21:35:17 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-08-31 18:43:09 -0700 |
commit | e36e4d1faa95439a1806935de6dcbd04d2283d20 (patch) | |
tree | 47a54f026cb0be6084d47ebff250b798df91591e /qt-ui | |
parent | 560426bf82ef7cb163d8046b722c12b76604006c (diff) | |
download | subsurface-e36e4d1faa95439a1806935de6dcbd04d2283d20.tar.gz |
UI code to merge dive sites
Get the Qt data structures and convert to something
that we can use in our C - core.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/locationinformation.cpp | 14 | ||||
-rw-r--r-- | qt-ui/locationinformation.h | 1 |
2 files changed, 14 insertions, 1 deletions
diff --git a/qt-ui/locationinformation.cpp b/qt-ui/locationinformation.cpp index b3acc6682..d029dd2a1 100644 --- a/qt-ui/locationinformation.cpp +++ b/qt-ui/locationinformation.cpp @@ -11,6 +11,7 @@ #include <QDebug> #include <QShowEvent> #include <QItemSelectionModel> +#include <cstdlib> LocationInformationWidget::LocationInformationWidget(QWidget *parent) : QGroupBox(parent), modified(false) { @@ -56,12 +57,23 @@ bool LocationInformationWidget::eventFilter(QObject*, QEvent *ev) if (ui.diveSiteListView->selectionModel()->selectedIndexes().count() >= 2) { QContextMenuEvent *ctx = (QContextMenuEvent*) ev; QMenu contextMenu; - contextMenu.addAction(tr("Merge dive Sites"), this, SLOT(merge_dive_sites())); + contextMenu.addAction(tr("Merge dive Sites"), this, SLOT(mergeSelectedDiveSites())); contextMenu.exec(ctx->globalPos()); } } } +void LocationInformationWidget::mergeSelectedDiveSites() { + QModelIndexList selection = ui.diveSiteListView->selectionModel()->selectedIndexes(); + uint32_t *selected_dive_sites = (uint32_t*) malloc(sizeof(u_int32_t) * selection.count()); + int i = 0; + Q_FOREACH(const QModelIndex& idx, selection) { + selected_dive_sites[i] = (uint32_t) idx.data(LocationInformationModel::UUID_ROLE).toInt(); + } + merge_dive_sites(selected_dive_sites, i); + free(selected_dive_sites); +} + void LocationInformationWidget::updateLabels() { if (displayed_dive_site.name) diff --git a/qt-ui/locationinformation.h b/qt-ui/locationinformation.h index 2442e16aa..080e013a8 100644 --- a/qt-ui/locationinformation.h +++ b/qt-ui/locationinformation.h @@ -27,6 +27,7 @@ public slots: void on_diveSiteName_textChanged(const QString& text); void on_diveSiteNotes_textChanged(); void reverseGeocode(); + void mergeSelectedDiveSites(); private slots: void updateLabels(); signals: |