mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
mobile cleanup: unduplicate code and do not loop over dives (1)
This is the first of a set of commits that are (very) similar. It appeared that a number of more or less static lists, which are constructed by a loop over all dives in the logbook, were executed when changing focus to a next dive. For example, the in this commit addressed list of used dive suits. What was wrong was that the suitList was linked to a dive. There is only a need to construct the list of used suits when data is changed (and obviously, once on startup of the app). Further, it appeared that a lot of code was duplicated and that we can use (in this case) the same code from the desktop completionmodels.cpp. Basically, this commit involves the following changes: - include completionmodels.cpp in mobile and desktop (so move it from the desktop only category to the generic category). - remove double code from DiveObjectHelper.cpp - Do not differentiate in the init phase and the normal refresh of the list - the per dive logic is now only the getting of a previously constructed list (in init or update of the divelist). There are no visible changes in the UI, other than a better performance when scrolling over dive details. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
This commit is contained in:
parent
728e007c5c
commit
fed2c5b6a1
8 changed files with 15 additions and 37 deletions
|
@ -17,6 +17,7 @@
|
|||
|
||||
#include "qt-models/divelistmodel.h"
|
||||
#include "qt-models/gpslistmodel.h"
|
||||
#include "qt-models/completionmodels.h"
|
||||
#include "core/divelist.h"
|
||||
#include "core/device.h"
|
||||
#include "core/pref.h"
|
||||
|
@ -272,6 +273,8 @@ void QMLManager::openLocalThenRemote(QString url)
|
|||
appendTextToLog(QStringLiteral("have cloud credentials, trying to connect"));
|
||||
tryRetrieveDataFromBackend();
|
||||
}
|
||||
buddyModel.updateModel();
|
||||
suitModel.updateModel(); emit suitListChanged();
|
||||
}
|
||||
|
||||
void QMLManager::mergeLocalRepo()
|
||||
|
@ -1548,19 +1551,9 @@ void QMLManager::quit()
|
|||
QApplication::quit();
|
||||
}
|
||||
|
||||
QStringList QMLManager::suitInit() const
|
||||
QStringList QMLManager::suitList() const
|
||||
{
|
||||
QStringList suits;
|
||||
struct dive *d;
|
||||
int i = 0;
|
||||
for_each_dive (i, d) {
|
||||
QString temp = d->suit;
|
||||
if (!temp.isEmpty())
|
||||
suits << d->suit;
|
||||
}
|
||||
suits.removeDuplicates();
|
||||
suits.sort();
|
||||
return suits;
|
||||
return suitModel.stringList();
|
||||
}
|
||||
|
||||
QStringList QMLManager::buddyInit() const
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue