diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-20 14:12:15 -0400 |
---|---|---|
committer | Lubomir I. Ivanov <neolit123@gmail.com> | 2018-10-21 19:55:09 +0300 |
commit | 28e3413ff66552f392fecee25068d634cdfe59fc (patch) | |
tree | 5fe303d1e7dc1c371e13b534b85c232e29aea884 /qt-models/divelocationmodel.cpp | |
parent | c9869406301ff72f76b399097f0845fc1102ced1 (diff) | |
download | subsurface-28e3413ff66552f392fecee25068d634cdfe59fc.tar.gz |
Add 'location_t' data structure
Instead of having people treat latitude and longitude as separate
things, just add a 'location_t' data structure that contains both.
Almost all cases want to always act on them together.
This is really just prep-work for adding a few more locations that we
track: I want to add a entry/exit location to each dive (independent of
the dive site) because of how the Garmin Descent gives us the
information (and hopefully, some day, other dive computers too).
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'qt-models/divelocationmodel.cpp')
-rw-r--r-- | qt-models/divelocationmodel.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/qt-models/divelocationmodel.cpp b/qt-models/divelocationmodel.cpp index ca803f1cf..5949628b5 100644 --- a/qt-models/divelocationmodel.cpp +++ b/qt-models/divelocationmodel.cpp @@ -43,8 +43,8 @@ QVariant LocationInformationModel::getDiveSiteData(const struct dive_site *ds, i switch(column) { case UUID: return ds->uuid; case NAME: return ds->name; - case LATITUDE: return ds->latitude.udeg; - case LONGITUDE: return ds->longitude.udeg; + case LATITUDE: return ds->location.lat.udeg; + case LONGITUDE: return ds->location.lon.udeg; case COORDS: return "TODO"; case DESCRIPTION: return ds->description; case NOTES: return ds->name; @@ -123,28 +123,25 @@ bool GPSLocationInformationModel::filterAcceptsRow(int sourceRow, const QModelIn return false; struct dive_site *ds = get_dive_site_by_uuid(uuid); - return ds && ds->latitude.udeg == latitude.udeg && ds->longitude.udeg == longitude.udeg; + return ds && same_location(&ds->location, &location); } GPSLocationInformationModel::GPSLocationInformationModel(QObject *parent) : QSortFilterProxyModel(parent), ignoreUuid(0), - latitude({ 0 }), - longitude({ 0 }) + location({{0},{0}}) { setSourceModel(LocationInformationModel::instance()); } -void GPSLocationInformationModel::set(uint32_t ignoreUuidIn, degrees_t latitudeIn, degrees_t longitudeIn) +void GPSLocationInformationModel::set(uint32_t ignoreUuidIn, const location_t &locationIn) { ignoreUuid = ignoreUuidIn; - latitude = latitudeIn; - longitude = longitudeIn; + location = locationIn; invalidate(); } -void GPSLocationInformationModel::setCoordinates(degrees_t latitudeIn, degrees_t longitudeIn) +void GPSLocationInformationModel::setCoordinates(const location_t &locationIn) { - latitude = latitudeIn; - longitude = longitudeIn; + location = locationIn; invalidate(); } |