mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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>
This commit is contained in:
parent
c986940630
commit
28e3413ff6
40 changed files with 251 additions and 264 deletions
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue