subsurface/desktop-widgets
Willem Ferguson 1ecd5065a0 Desktop: Import dive coordinates directly from GPS
This allows Subsurface to obtain the coordinates of a dive directly
from a GPS track. It parses a GPX file (GPX V1.0 or V1.1) from
a GPS to locate the trackpoint immediatedly after the start of a
dive. There is an additional "Use GPS file" button in the Edit Dive
Site panel that is selected from the Notes tab. Image:

This allows one to select a GPX file, bringing up the Import GPS
dialog.

There is extensive provision for cross-checking that the dive track
synchronises with the dive start and end. If the Save button in the
dialog is pressed the dive coordinates are copied into the Dive
Coordinates text box in the Edit Dive Site panel. The map moves
to indicate the location of the dive site.

The bulk of the work is done in importgps.cpp. The code is
pretty intergrated: I tried to break it up in smaller commits but that
was not feasible.

The code includes responses to the comments by @neolit123 and
@bstoeger. The C-based file input was replaced with Qt-based
code using QChar, QString and QFile.

[Dirk Hohndel: fixed several small issues in the .ui file, removed
               various headers includes that weren't needed and
               fixed printing of minutes as zero padded]

Signed-off-by: willemferguson <willemferguson@zoology.up.ac.za>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-01-24 09:51:02 -08:00
..
css
preferences core/settings:: remove string functions for units 2020-01-20 09:55:26 -08:00
statistics Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
tab-widgets code cleanup: add missing initialization 2020-01-10 02:37:03 +09:00
about.cpp update year to 2019 in about screens 2019-01-02 09:45:01 -08:00
about.h
about.ui
btdeviceselectiondialog.cpp code cleanup: replace deprecated setBackgroundColor() method 2020-01-10 02:37:03 +09:00
btdeviceselectiondialog.h Bluetooth: use standard Qt code on Windows 2018-09-30 08:09:37 -07:00
btdeviceselectiondialog.ui Desktop: add checkbox to show all BT devices 2019-02-14 09:05:58 -08:00
CMakeLists.txt Desktop: Import dive coordinates directly from GPS 2020-01-24 09:51:02 -08:00
configuredivecomputerdialog.cpp Cleanup: we don't support configuring a Uemis SDA 2018-08-28 12:03:03 -07:00
configuredivecomputerdialog.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
configuredivecomputerdialog.ui
divecomponentselection.ui Add various enhancements to profile export and dive data copy 2019-02-07 16:06:43 +01:00
divecomputermanagementdialog.cpp Dive computers: turn QMultiMap into sorted vector 2018-06-17 06:53:13 +09:00
divecomputermanagementdialog.h Cleanup: fold DiveComputerManagementDialog::update() into init() 2018-06-17 06:53:13 +09:00
divecomputermanagementdialog.ui
divelistview.cpp code cleanup: QFontMetrics::width() is deprecated 2020-01-10 02:37:03 +09:00
divelistview.h Dive list: don't handle selection changes on filter-change in view 2019-12-10 18:45:30 -08:00
divelogexportdialog.cpp build-system: move exportfuncs to backend-shared 2019-12-24 08:44:23 +09:00
divelogexportdialog.h desktop-widgets: move export functions to shared class 2019-12-03 21:30:39 -08:00
divelogexportdialog.ui Add export option to export dive sites. 2019-04-13 08:18:32 -07:00
divelogimportdialog.cpp code cleanup: add empty table structures 2020-01-10 02:37:03 +09:00
divelogimportdialog.h Import: Make DiveLogImportDialog modal 2018-10-04 10:22:11 +02:00
divelogimportdialog.ui
divepicturewidget.cpp Dive media: transport dive-id in drag'n'drop events 2018-07-18 09:06:37 -07:00
divepicturewidget.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
diveplanner.cpp qt-models: add suffix Display to unit system aware asc/desc setters 2020-01-20 15:45:20 -08:00
diveplanner.h code cleanup: remove unused QSignalMapper 2020-01-10 02:37:03 +09:00
diveplanner.ui
diveshareexportdialog.cpp desktop-widgets: diveDiveShareExportDialog add signal handling 2019-12-11 11:08:51 -05:00
diveshareexportdialog.h desktop-widgets: diveDiveShareExportDialog add signal handling 2019-12-11 11:08:51 -05:00
diveshareexportdialog.ui
divesiteimportdialog.cpp code cleanup: add empty table structures 2020-01-10 02:37:03 +09:00
divesiteimportdialog.h Create DivesiteImportDialog to select sites to import 2019-05-06 10:48:44 +02:00
divesiteimportdialog.ui Create DivesiteImportDialog to select sites to import 2019-05-06 10:48:44 +02:00
downloadfromdivecomputer.cpp Refactoring: move undo commands to top level 2019-11-14 21:02:07 +01:00
downloadfromdivecomputer.h Import: Make DownloadThread a subobject of DiveImportedModel 2019-10-02 08:04:49 -07:00
downloadfromdivecomputer.ui Desktop/remember DCs: avoid highlighted button 2018-09-23 11:49:30 -07:00
filterwidget2.cpp Filter: split out filter from model 2019-11-19 21:13:40 -08:00
filterwidget2.h Filter: split out filter from model 2019-11-19 21:13:40 -08:00
filterwidget2.ui Desktop: correct tooltip for filter close button 2019-07-29 07:24:05 +02:00
findmovedimagesdialog.cpp Desktop: fix another variable name conflict 2019-03-18 19:40:32 -07:00
findmovedimagesdialog.h Dive pictures: implement FindMovedImagesDialog 2018-07-04 02:27:36 +08:00
findmovedimagesdialog.ui UI change of "images"/"photo" to "media" or "media files" 2018-07-15 09:38:12 -07:00
groupedlineedit.cpp
groupedlineedit.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
importgps.cpp Desktop: Import dive coordinates directly from GPS 2020-01-24 09:51:02 -08:00
importgps.h Desktop: Import dive coordinates directly from GPS 2020-01-24 09:51:02 -08:00
importgps.ui Desktop: Import dive coordinates directly from GPS 2020-01-24 09:51:02 -08:00
kmessagewidget.cpp
kmessagewidget.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
listfilter.ui Start to implement a simplified version of the filter widget 2018-12-14 01:05:18 +08:00
locationinformation.cpp Desktop: Import dive coordinates directly from GPS 2020-01-24 09:51:02 -08:00
locationinformation.h Desktop: Import dive coordinates directly from GPS 2020-01-24 09:51:02 -08:00
locationinformation.ui Desktop: Import dive coordinates directly from GPS 2020-01-24 09:51:02 -08:00
mainwindow.cpp code cleanup: add empty table structures 2020-01-10 02:37:03 +09:00
mainwindow.h Cleanup: remove MainWindow::recreateDiveList() function 2019-11-19 21:13:40 -08:00
mainwindow.ui Reword configure dive computer 2019-06-03 19:55:19 +02:00
mapwidget.cpp Refactoring: move undo commands to top level 2019-11-14 21:02:07 +01:00
mapwidget.h Cleanup: remove unused MapWidget::repopulateLabels() function 2019-09-06 11:48:47 -07:00
modeldelegates.cpp code cleanup: use explicit zero_location 2020-01-10 02:37:03 +09:00
modeldelegates.h Desktop: refactor WSInfoDelegate logic 2019-12-05 10:14:25 -08:00
notificationwidget.cpp
notificationwidget.h
plannerDetails.ui
plannerSettings.ui Planner: Add option to treat O2 as narcotic 2019-10-31 00:30:38 -07:00
printdialog.cpp Add the ability to export print template as html 2019-09-11 17:21:50 +01:00
printdialog.h Add the ability to export print template as html 2019-09-11 17:21:50 +01:00
printer.cpp Add the ability to export print template as html 2019-09-11 17:21:50 +01:00
printer.h Add the ability to export print template as html 2019-09-11 17:21:50 +01:00
printoptions.cpp replace deprecated qSort() with std::sort() 2019-04-12 12:59:17 +03:00
printoptions.h Cleanup: remove all Q_NULLPTR instances 2019-04-02 07:34:46 -07:00
printoptions.ui
qtwaitingspinner.cpp
qtwaitingspinner.h
renumber.ui
searchbar.ui
setpoint.ui
shiftimagetimes.ui UI change of "images"/"photo" to "media" or "media files" 2018-07-15 09:38:12 -07:00
shifttimes.ui
simplewidgets.cpp code cleanup: remove deprecated QString::null 2020-01-10 02:37:03 +09:00
simplewidgets.h Cleanup: remove Q_PROPERTYs from MinMaxWidget 2019-06-10 17:59:35 +03:00
starwidget.cpp code cleanup: replace deprecated member function QColor::dark() 2020-01-10 02:37:03 +09:00
starwidget.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
subsurfacewebservices.cpp code cleanup: add empty table structures 2020-01-10 02:37:03 +09:00
subsurfacewebservices.h desktop-widgets: divelogsDE: integrate shared backend 2019-12-11 12:36:43 -05:00
tableview.cpp code cleanup: QFontMetrics::width() is deprecated 2020-01-10 02:37:03 +09:00
tableview.h Desktop: don't connect to remove() slot of model from TableModel 2019-12-05 10:14:25 -08:00
tableview.ui
tagwidget.cpp Desktop: remove edit-check in tag-widget completer 2019-04-14 03:38:22 +12:00
tagwidget.h Undo: implement undo of tag editing 2019-04-12 18:19:07 +03:00
templateedit.cpp Warnings: replace memcpy by assignment 2018-11-19 13:51:03 -08:00
templateedit.h
templateedit.ui
templatelayout.cpp Selection: move selection functions from divelist.c to selection.c 2019-12-04 13:00:23 +01:00
templatelayout.h Grantlee: split out grantlee-only property from DiveObjectHelper 2019-09-14 13:20:59 +02:00
textedit.cpp Desktop: create new custom TextEdit widget for notes-field 2019-04-12 18:19:07 +03:00
textedit.h Desktop: create new custom TextEdit widget for notes-field 2019-04-12 18:19:07 +03:00
updatemanager.cpp core: move updatecheck to its own domain 2019-02-09 10:37:55 -08:00
updatemanager.h
urldialog.ui UI change of "images"/"photo" to "media" or "media files" 2018-07-15 09:38:12 -07:00
usermanual.cpp Coding style: remove Java-style function definition 2019-04-12 18:19:07 +03:00
usermanual.h Remove partial support for QWebEngine 2019-03-20 08:45:02 -07:00
usersurvey.cpp Revert "desktop-widgets: remove QSettings from desktop-widgets" 2018-08-29 03:09:10 -07:00
usersurvey.h
usersurvey.ui
webservices.ui