mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 20:23:25 +00:00
mobile: use undo-command to apply gps fixes
The goal is to send the signal for the correct dives / divesites and thus not having to reload the whole model. Right now the mobile UI does not yet catch the diveSiteChanged signals. [Dirk Hohndel: small fix to ensure that we trigger a save to storage] Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
93bdaa9bb5
commit
c8ec2f5b1c
3 changed files with 5 additions and 23 deletions
|
@ -310,23 +310,6 @@ std::vector<DiveAndLocation> GpsLocation::getLocations()
|
|||
return fixes;
|
||||
}
|
||||
|
||||
int GpsLocation::applyLocations()
|
||||
{
|
||||
std::vector<DiveAndLocation> fixes = getLocations();
|
||||
for (DiveAndLocation &dl: fixes) {
|
||||
struct dive_site *ds = dl.d->dive_site;
|
||||
if (!ds) {
|
||||
ds = create_dive_site(qPrintable(dl.name), &dive_site_table);
|
||||
add_dive_to_dive_site(dl.d, ds);
|
||||
invalidate_dive_cache(dl.d);
|
||||
}
|
||||
ds->location = dl.location;
|
||||
}
|
||||
if (!fixes.empty())
|
||||
mark_divelist_changed(true);
|
||||
return !fixes.empty();
|
||||
}
|
||||
|
||||
QMap<qint64, gpsTracker> GpsLocation::currentGPSInfo() const
|
||||
{
|
||||
return m_trackers;
|
||||
|
|
|
@ -34,7 +34,6 @@ public:
|
|||
static GpsLocation *instance();
|
||||
static bool hasInstance();
|
||||
std::vector<DiveAndLocation> getLocations();
|
||||
int applyLocations();
|
||||
int getGpsNum() const;
|
||||
bool hasLocationsSource();
|
||||
QString currentPosition();
|
||||
|
|
|
@ -1572,11 +1572,11 @@ QString QMLManager::getCurrentPosition()
|
|||
void QMLManager::applyGpsData()
|
||||
{
|
||||
appendTextToLog("Applying GPS fiexs");
|
||||
int cnt = locationProvider->applyLocations();
|
||||
if (cnt == 0)
|
||||
return;
|
||||
appendTextToLog(QString("Attached %1 GPS fixes").arg(cnt));
|
||||
refreshDiveList();
|
||||
std::vector<DiveAndLocation> fixes = locationProvider->getLocations();
|
||||
Command::applyGPSFixes(fixes);
|
||||
appendTextToLog(QString("Attached %1 GPS fixes").arg(fixes.size()));
|
||||
if (fixes.size())
|
||||
changesNeedSaving();
|
||||
}
|
||||
|
||||
void QMLManager::populateGpsData()
|
||||
|
|
Loading…
Add table
Reference in a new issue