aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui
AgeCommit message (Collapse)Author
2015-09-23Re-add the 'plus' button on the delegateGravatar Tomaz Canabrava
This was missing in the delegate - now it's prettier. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-23Stabilize the location model/proxy modelGravatar Tomaz Canabrava
Since I removed the old location edit from the UI, I also need to remove a bit of code from the UI that was calling it. fix a few crashes regarding the old location edit. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-23Skeleton of the new LocationComboboxGravatar Tomaz Canabrava
This is the bare minimum skeleton of the new completer for the dive site management. Nothing works, yet, nothing is hoocked up, yet. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-23Hide a couple of debugging messagesGravatar Dirk Hohndel
They are useful to show when trying to figure out what's going on, so just move them behind a check for verbose. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-23Show progress bar when loading from cloud storage by defaultGravatar Dirk Hohndel
It turns out that I forgot to make sure that the progress bar is shown if the user has things set up so that the cloud storage is the default dive file that they open. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-23Windows XP doesn't contain a valid CA for our cloud certificateGravatar Dirk Hohndel
This is the authentication check and cloud server availability check which are different from the one git does. The mechanism for overriding things is different from there, but this should work just as well. We intercept the SslErrors signal and if we get the known good hash for our certificate, we simply call it good. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-22Dive merging: make sure that the profile is redrawnGravatar Dirk Hohndel
This uses the just introduced refreshProfile() function. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-22Add refreshProfile member function to MainWindow classGravatar Dirk Hohndel
While the whole idea of calling these functions through the MainWindow instance is atrocious, until we change the architecture of all this refreshProfile() is a useful function to have. In order to make this cleaner to implement I allowed an argument to ProfileWidget's replot() which allows picking a specific dive. By defaulting this to 0 we get the previous behavior when calling replot() without an argument. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-22Be much more careful about merging divesGravatar Linus Torvalds
This patch changes the dive merging to be much more careful about things, because it turns out that we had several small oddities that caused big merge issues. The oddities are: - the dive "duration" is actually how long we spend under water. But that means that when we do "dive->when + dive.duration.seconds" to calculate the end of the dive, that is nonsensical if you came up to the surface in the middle of a dive. Now, normally you don't see profiles like that, but once you start merging dives together, it can go from "small detail" to "dominant factor". - We have two different cases of merging: the automatic "merge new dive computer download if it looks like the same dive" (which always has a merge offset of 0, since we merge it as a new dive computer) and the "merge two different dives into one longer dive. The code assumed that it could look at the "downloaded" flag for the dive to check one or the other, but that doesn't really work. Reading a dive from an XML file isn't any different from downloading it. So we need to change the logic to determine what kind of merge it is to actually check the passed-in time offset. With this, Stuart Vernon's test-case of eight dives with short surface intervals in between end up merging correctly into one dive. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Reported-by: Stuart Vernon <stuartv@force2.net> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-21Fix image offset calculationGravatar Robert C. Helling
It seems this has never worked and nobody ever tested it. There was some confusion with time zones since Qt takes by default local time when converting from/to epoch while the exif library used UTC. For my single test dive, this works now. But this needs more testing!!! Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-20Fix build error on Windows with Qt5.5Gravatar Dirk Hohndel
I'm not quite sure why this works, but it appears to do the trick. Apparently you are supposed not to have the meta type declaration in a shared header file. Also, with Qt5.5 you can't have the declaration for QBluetoothDeviceInfo, not even on Windows. This may need more tweaking to make sure it works on all combinations of OS and Qt version. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-20When calling save-as with cloud storage as default, pick sane filenameGravatar Dirk Hohndel
Passing the cloud URL to the file select box leaves "git syntax" in the filename which makes us look for a directory with a git repository in it and give non-sensical error messages to the user. With this we simply use the users email address as local filename with a .ssrf suffix. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-19Uemis downloader: start downloading using the correct dive IDGravatar Linus Torvalds
The logic to pick the initial dive ID for the uemis downloader was very confused, and did not work at all when restarting a download when the Uemis filled up, and the "Force download all dives" flag was set. It also required a rather odd Uemis-specific callback from the download UI because of how it picked the initial ID. This changes the logic to just look at the list of downloaded dives when restarting, which simplifies the logic a lot, gets rid of the odd special callback, and also means that the whole "Force download" issue just goes away. It seems to work now. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-19Rename BTH_ADDR_STR_LEN macroGravatar Claudiu Olteanu
Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-19Fix Bluetooth address truncation issues on WindowsGravatar Claudiu Olteanu
On some Windows platforms when we convert a Bth address to a String it is formatted as "(XX:XX:XX:XX:XX:XX)". Therefore we first try to remove the round parentheses and finally we truncate the string to 17 because there are 6 two-digit hex values and 5 colons. Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-18Spelling correctionsGravatar Robert C. Helling
Spell Setpoint without space in user visable strings. Explain authorized_paired. Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-16Capitalize BluetoothGravatar Miika Turkia
Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-16Printing: minor fixes as suggested by LubomirGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-16Printing: Remove braces around single lines in if/thenGravatar Gehad elrobey
Remove useless braces around single line if/then. Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-16Printing: make statistics template editableGravatar Gehad elrobey
Now inplace edit is supported, so enable editing the "Default" statistics template, Also show warning when editing this template. Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-16Printing: show warning message when editing bundled templatesGravatar Gehad elrobey
When editing a bundled template show warning message. Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-16Printing: support in-place editing for templatesGravatar Gehad elrobey
Edit the templates into the same file, which is more intuitive as Custom.html is a bit confusing. Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-16Remove the fb preferences page if build without fbGravatar Tomaz Canabrava
Somehow I broke this. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-16Make Facebook more user friendlyGravatar Tomaz Canabrava
The current way that facebook works is terrible: it's scattered around tons of files ( at least 4 different files and classes ) this moves things around a bit, add a disconnect button that was missing, cleans tons of code and fix inconsistencies. I will also redo this part for 5.0, but it's too late for 4.5 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-16Use Bühlmann in all strings shown to the userGravatar Salvador Cuñat
Unify spelling of this name in strings shown to the user, as commented in mailing list. Internal coding use untouched. Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-12Change OSTC 3 config option to current modelsGravatar Anton Lundin
Our OSTC 3 config code works for all hwOS devices, so be more clear when saying that as the chooser option. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-12Connect up custom serial in dc configurationGravatar Anton Lundin
This connects up the custom serial code in the configure dive computer dialogs. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-12Lift dis- and connect out from config operationsGravatar Anton Lundin
When working with ostc's via bluetooth, they will reboot and exit bluetooth mode when you send the disconnect command. Thats kinda inconvenient when you would like to read your settings, change something and write it back, you need to start bluetooth mode on your device twice. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-12Hide current dive site from dive sites with same coordinates.Gravatar Sander Kleijwegt
Signed-off-by: Sander Kleijwegt <sander@myowndomain.nl> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-11CSV import: strip whitespace from column names before matchingGravatar Dirk Hohndel
In a user provided sample the last column name included "\r\n" which prevented us from automatically matching that column. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-11When editing a manually added dive, correctly update max depthGravatar Dirk Hohndel
The fixup_dive() function assumes that values that are set already in the divecomputer and dive structures come from a reliable source - sometimes dive computers are able to track a maximum depth continuously, so that value can be larger than the deepest sample and we need to honor that. But in the case of a manually added dive, the samples define the dive. So in this case we need to reset the values that were calculated when the dive was first added so that the user can then edit the dive and reduce the maximum depth reached in the profile and have that reflected in the dive list. Fixes #926 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-11Add checkbox to force images to match divesGravatar Robert C. Helling
Give the user the possibility to attach images to a dive even when the times do not match Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-11Don't offer gas selection for the last waypoint in plannerGravatar Robert C. Helling
Since the gas selection list on a waypoint refers to a gaschange there influencing the following segments, there must not be a gas selection on the last manually entered waypoint since from there the planner handles the gas selection. Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-10Configure divecomputers: add delegates for setpoint configurationGravatar Anton Lundin
This adds delegates to simplify configuration of setpoint values in the OSTC's. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-10Configure divecomputers: access table data the same way as its setGravatar Anton Lundin
The table data is set via role, so retrieve the data via role too. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-10Configure divecomputers: fix spelling of FirstGravatar Anton Lundin
Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-10Save settings in closeEvent, not destructorGravatar Anton Lundin
This switches to use the closeEvent to save settings and cleanup instead of the destructor. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-09Replace the spinner with a progress dialog for cloud storage accessGravatar Dirk Hohndel
Since the spinner caused all kinds of problems inside VMs, wasn't shown at all for some people on Win10 and appeared to get stuck a lot and still left people with the perception that Subsurface was hung, this patch takes a more traditional approach and gives the user a progress dialog. An additional benefit of this is that the user now can cancel a hung transfer. The slightly weird passing in of the callback allows for the separation of UI and core logic code... Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-09Fix a crash on divelogs.de exportGravatar Miika Turkia
Subsurface crashes when multiple dives are selected on divelogs.de export. The crash occurs on malloc that is called indirectly from xmlReadMemory(). Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-09Two small string changesGravatar Dirk Hohndel
Reported by Ettore Atalan on Trnasifex. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-08Only use DC_TRANSPORT_* with SSRF_CUSTOM_SERIALGravatar Anton Lundin
This if'defs DC_TRANSPORT_* use with SSRF_CUSTOM_SERIAL, because the enum doesn't exist when building against stock libdivecomputer. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-08Disable Bluetooth option from GUI if SSRF_CUSTOM_SERIAL is undefinedGravatar Claudiu Olteanu
The Bluetooth implementation doesn't work if SSRF_CUSTOM_SERIAL is undefined. Therefore it is a good idea to remove it from the UI if the libdivecomputer version is wrong. Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-07Reset the index of the device if the Bth mode is disabledGravatar Claudiu Olteanu
If the Bluetooth download mode was disabled then remove the Bth address from the device or mount point section and reset the index. Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-07Save Bluetooth download mode settingsGravatar Claudiu Olteanu
Save the dive computer download mode flag. In this way, if the user used Bluetooth mode to download its dives on his last session he doesn't need to open the Bth selection dialog if he wants to use the same device. Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-07Include dive site on divelogs exportGravatar Miika Turkia
Due to the new dive site management, we need to include this information before transforming the XML to divelogs.de format. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-07CSV import: validate column countGravatar Miika Turkia
We need at least 23 columns when reading in Subsurface CSV. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-06CSV import: default formats for Subsurface importGravatar Miika Turkia
Let's set the configs properly for Subsurface CSV import for better usability. (Actually the only meaningful configuration is units as others are discarded, but I could not figure out how to set that to imperial when needed - what is the variable holding this information?) Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-06CSV import: show headers for Subsurface CSV importGravatar Miika Turkia
Showing the header line improves user experience quite a bit, even though this configuration is actually discarded in the XSLT transform. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-06CSV import: fix import of Sensus and SubsurfaceGravatar Miika Turkia
When adding APD2 import, the Sensus and Subsurface indexes should have been increased by 1. While fixing this, switch to using enum names for clarity. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-06CSV import: improve header parsingGravatar Miika Turkia
The skipping of header field manipulation for APD was a bit too aggressive, skipping the header fix up for all logs when on initial state. Also, addition of APD2 was not taken into account. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>