diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-03-12 17:28:43 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-04-12 18:19:07 +0300 |
commit | e99c4c90592c9dba17d5cbb9a99d0bf458fb53d2 (patch) | |
tree | 07eb474520f6565cf685559eb19e0c97638d7345 /mobile-widgets | |
parent | 59f1191d0cbbb9bf7d049bfd8bd0fe544ecb40f0 (diff) | |
download | subsurface-e99c4c90592c9dba17d5cbb9a99d0bf458fb53d2.tar.gz |
Dive site: introduce proxy model DiveSiteSortedModel
The LocationInformationModel used to sort its entries and was completely
rebuilt after every change. This makes it rather complex to support
incremental changes.
Instead, keep LocationInformationModel sorted by UUID so that indexes
are consistent with indices in the core dive site table.
Implement sorting by other columns than name and enable sorting in the
dive site view.
Finally, don't cache the list of dive site names for the mobile app,
since that would also need some rather convoluted methods of keeping
the list up to date. Calculate it on the fly.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'mobile-widgets')
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 6 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.h | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index d312fac00..9b52ee211 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -223,6 +223,9 @@ QMLManager::QMLManager() : m_locationServiceEnabled(false), set_git_update_cb(&gitProgressCB); LOG_STP("qmlmgr git update"); + // present dive site lists sorted by name + locationModel.sort(LocationInformationModel::NAME); + // make sure we know if the current cloud repo has been successfully synced syncLoadFromCloud(); LOG_STP("qmlmgr sync load cloud"); @@ -334,7 +337,8 @@ void QMLManager::updateAllGlobalLists() buddyModel.updateModel(); emit buddyListChanged(); suitModel.updateModel(); emit suitListChanged(); divemasterModel.updateModel(); emit divemasterListChanged(); - locationModel.update(); emit locationListChanged(); + // TODO: Probably not needed anymore, as the dive site list is generated on the fly! + LocationInformationModel::instance()->update(); emit locationListChanged(); } void QMLManager::mergeLocalRepo() diff --git a/mobile-widgets/qmlmanager.h b/mobile-widgets/qmlmanager.h index 7d10f78b2..ff09661c6 100644 --- a/mobile-widgets/qmlmanager.h +++ b/mobile-widgets/qmlmanager.h @@ -209,7 +209,7 @@ private: BuddyCompletionModel buddyModel; SuitCompletionModel suitModel; DiveMasterCompletionModel divemasterModel; - LocationInformationModel locationModel; + DiveSiteSortedModel locationModel; QString m_startPageText; QString m_logText; QString m_lastError; |