From 3f0d21046e92701de200a00f12bde20a7ad3a55c Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Sun, 28 May 2017 11:48:30 -0700 Subject: QML UI: add downloaded dives to dive list This already takes into account which of those dives were selected. Right now all we have is select all or none - this needs actual support in the UI, but once that's there, it will just work (famous last words). Signed-off-by: Dirk Hohndel --- qt-models/diveimportedmodel.cpp | 11 +++++++++++ qt-models/diveimportedmodel.h | 1 + qt-models/divelistmodel.cpp | 12 ++++++++++++ qt-models/divelistmodel.h | 2 ++ 4 files changed, 26 insertions(+) (limited to 'qt-models') diff --git a/qt-models/diveimportedmodel.cpp b/qt-models/diveimportedmodel.cpp index 781cd72c6..c1f4f7525 100644 --- a/qt-models/diveimportedmodel.cpp +++ b/qt-models/diveimportedmodel.cpp @@ -143,6 +143,17 @@ void DiveImportedModel::repopulate() setImportedDivesIndexes(0, diveTable->nr-1); } +void DiveImportedModel::recordDives() +{ + for (int i = 0; i < rowCount(); i++) { + if (diveTable->dives[i] && checkStates[i]) { + record_dive(diveTable->dives[i]); + diveTable->dives[i] = NULL; + } + } + diveTable->nr = 0; +} + QHash DiveImportedModel::roleNames() const { static QHash roles = { { DateTime, "datetime"}, diff --git a/qt-models/diveimportedmodel.h b/qt-models/diveimportedmodel.h index e68fec0f8..240f7f4b5 100644 --- a/qt-models/diveimportedmodel.h +++ b/qt-models/diveimportedmodel.h @@ -21,6 +21,7 @@ public: void clearTable(); QHash roleNames() const; Q_INVOKABLE void repopulate(); + Q_INVOKABLE void recordDives(); public slots: void changeSelected(QModelIndex clickedIndex); diff --git a/qt-models/divelistmodel.cpp b/qt-models/divelistmodel.cpp index 2a77f34fe..a0f181405 100644 --- a/qt-models/divelistmodel.cpp +++ b/qt-models/divelistmodel.cpp @@ -25,6 +25,18 @@ int DiveListSortModel::getIdxForId(int id) return -1; } +void DiveListSortModel::clear() +{ + DiveListModel *mySourceModel = qobject_cast(sourceModel()); + mySourceModel->clear(); +} + +void DiveListSortModel::addAllDives() +{ + DiveListModel *mySourceModel = qobject_cast(sourceModel()); + mySourceModel->addAllDives(); +} + DiveListModel *DiveListModel::m_instance = NULL; DiveListModel::DiveListModel(QObject *parent) : QAbstractListModel(parent) diff --git a/qt-models/divelistmodel.h b/qt-models/divelistmodel.h index d24282776..41bc9107c 100644 --- a/qt-models/divelistmodel.h +++ b/qt-models/divelistmodel.h @@ -14,6 +14,8 @@ class DiveListSortModel : public QSortFilterProxyModel Q_OBJECT public: DiveListSortModel(QObject *parent = 0); + Q_INVOKABLE void addAllDives(); + Q_INVOKABLE void clear(); public slots: int getDiveId(int idx); int getIdxForId(int id); -- cgit v1.2.3-70-g09d2