aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-03-30Be smarter about dive renumbering when merging divesGravatar Linus Torvalds
We really have two different cases for merging dives: (a) downloading a new dive from a dive computer, and merging it with an existing dive that we had already created using a different dive computer. This is the "try_to_merge()" case, called from "process_dives() (b) merging two different dives into one longer dive. This is the "merge_two_dives()" case when you explicitly merge dives using the divelist. While a lot of the issues are the same, many details differ, and one of the details is how dive numbering should be handled. In particular, when you download from a dive computer and merge with an existing dive, you want too take the *maximum* dive number, because the dive computer notion of which dive it is may well not match what the user dive number is. On the other hand, when you explicitly merge in the dive list, you end up renumbering not just the dive you are merging, but also all subsequent dives, since you now have one fewer dives overall. So that case already has to be handled by the caller. Now, the simpler "download from dive computer" case was broken by commit ce3a78efcac2 ("Assign lower number to a merged dive instead of higher one"). It fixed the numbering for the divelist case, but broke the download case. So this commit reverts commit ce3a78efcac2, and instead extends and clarifies the dive renumbering that "merge_two_dives()" already did. It now explicitly renumbers not just the following dives, but also renumbers the merged dive itself, so now we can go back to the old "take the bigger dive number" for the core merging, which fixes the download case. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-29QML UI: brute force password savingGravatar Dirk Hohndel
This is embarrassing. I should have done this in the first place instead of trying to hack around it. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-29QML UI: really force passwords to be savedGravatar Dirk Hohndel
The logic looked so easy, but the preference needs to be hard coded twice because there are two scenarios: - new install, make sure we load the password from settings (so it needs to be hard coded BEFORE we load preferences) - update where previously for some reason the user stored that they didn't want to store the password, so we need to also hard code it after the settings were loaded Looks odd, but that should do the trick. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-29If the cache was valid, we don't want to reload just because of changesGravatar Dirk Hohndel
This was exactly backwards. If there already are changes we do NOT want to reload - that would overwrite those changes for no good reason; after all, the starting point was correct, so why throw the changes away? Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-29QML UI: remove a few obsolete properties and referencesGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-29QML UI: add SAC rate to dive detail viewGravatar Dirk Hohndel
Not sure why this wasn't there before, it's certainly one of the more interesting values for me. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-29QML UI: make dives outside of dive trips always visibleGravatar Dirk Hohndel
Create small visible separation from the dive trip before. And make the dive trip header a slightly different color so they stand out between dives. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-29QML UI: make dive list fold dive tripsGravatar Dirk Hohndel
This makes it MUCH easier to deal with a lot of dives. Instead of needing a more complicated model we simply use the meta data that allows us to create the dive trip sections to hide (make invisible + height 0) all dives that aren't in the selected trip. I'll admit that this was much easier than I expected it to be. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-28Update mobile versionGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-28QML UI: take device pixel ratio into account when scaling pixmaps on iOSGravatar Dirk Hohndel
This way warning icons and tank change icons and other event markers are no longer ridiculously tiny on retina screens. Oddly this doesn't appear to be needed on Android, only on iOS. Fixes #1033 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-27QML UI: force local saving of passwordGravatar Dirk Hohndel
commit d99c9312195c ("QML UI: remove the checkbox for remembering the password") made the incorrect assumption that this would always be true by default when it actually was false by default. Oops. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-27QML UI: tighten credential input screenGravatar Dirk Hohndel
This way even on smaller screens both email and password should fit above the keyboard which makes data entry so much easier. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-26QML UI: add some diagnostics to App logGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-26QML UI: allow writing to App log from QMLGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-26QML UI: show keyboard when entering credential screenGravatar Dirk Hohndel
If the user goes to the credentials screen, they likely want to edit something. So put the focus on the first entry field and show the keyboard. We also need to hide the keyboard when the credential screen becomes invisble so that the keyboard doesn't stay around when the dive list is shown. Suggested-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-26Prevent unintentionally running as rootGravatar Robert C. Helling
Some users try to run Subsurface as root for example to get around permission problems with dive computer devices. This is a bad idea since config files get touched as root and then cannot be read as normal user anymore. This patch allows running as root only with verbose option on. We can assume if somebody manages to start subsurface as root this happens from the command line. For some reason, I couldn't get translation working at this stage. Windows version is a stub. Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-24QML UI: remove the checkbox for remembering the passwordGravatar Dirk Hohndel
In the context of the mobile app this simply makes no sense. If the user doesn't select this option, the app doesn't really work. So why have the option in the first place? Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-24iOS build: fix typosGravatar Dirk Hohndel
Can't believe I didn't notice them earlier... I must have stared at these strings countless times. Reported-by: Scott Ireland <scott@sdj.ca> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-24QML UI: add the position source reported to the logGravatar Dirk Hohndel
I've seen iPads without GPS report that they support satellite positioning. Seems like a Qt bug to me. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-24Revert "iOS build: enable access to GPS location"Gravatar Dirk Hohndel
This reverts commit 78a8137963c848dc6ec6c8ff1b593902c5f8be64. These keys don't enable access, they require the device to have GPS support. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-24QML UI: remove verbose option from Developer menuGravatar Dirk Hohndel
We now log everything that's relevant to the application log that is shown in the UI. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-24Fix tests linkageGravatar Tomaz Canabrava
I wasn't linking the tests against the qrc library, which made trying to load the xslt transformation files for the parse test fail. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-24QML UI: GPS location service - correctly calculate the deltaGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-24QML UI: GPS location service - only show the fixes we storeGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-24Read GPS location service thresholds from settingsGravatar Dirk Hohndel
We used to faithfully save them, but not restore them at start. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-24QML UI: improve About screenGravatar Dirk Hohndel
This should actually give a correctly positioned logo. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-24Give more information about the GPS location serviceGravatar Dirk Hohndel
On iOS it seems that I get a fix every second. Even though the QGeoPositionInfoSource is set up with an update interval of 5 minutes... Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-24iOS build: add another Info.plist key to enable positioningGravatar Dirk Hohndel
This key is needed so that the iOS app asks the user for permission to use the GPS position information. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-24iOS build: enable access to GPS locationGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23iOS build: add missing iconGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23QML UI: always convert the cloud user name to lower caseGravatar Dirk Hohndel
Mixed case user names cause the connection to the cloud storage to fail. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23QML UI: reduce application log clutterGravatar Dirk Hohndel
We don't need to flood this with the profile scaling data anymore; that's hopefully fixed for good. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23QML UI: work around missing back button on iOSGravatar Dirk Hohndel
Especially when showing the dive details and editing dive details, having the option to go back in the context menu is nicer on iOS. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23iOS build: fix executable nameGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23Another small signed / unsigned warning fixGravatar Dirk Hohndel
This is in the Mac support file that wasn't compiled on Linux when I tried to finish the cleanup. Now this compiles without warnings on Mac and iOS as well. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23Make code easier to read (and avoid warning)Gravatar Dirk Hohndel
The old expression wass correct because if dive_table.dives[j]->number is != 0, then !dive_table.dives[j]->number is 0 and vice versa. But come on... The new code seems much more natural and easier to read. And of course the Apple compilers by default gave a warning because they suspected a precedence bug with the old code. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23iOS build: update the READMEGravatar Dirk Hohndel
A lot of this is still black magic, but at least this now documents what I understand about the process. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23iOS build: create Info.plist with correct version informationGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23Change names of iOS build filesGravatar Dirk Hohndel
The name subsurface-ios was used in many places and that was just not helpful to fight against. This should work much better. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23Compare with the right git sha when deciding nothing has changedGravatar Dirk Hohndel
The saved_git_id could be updated in is_git_repository() under certain circumstances, so we need to make sure we compare to the sha that was current as we entered this function. Since the pointer is just to a static buffer we need to actually copy it (and then free it later). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23typo fixGravatar Werner Macho
small typo fix for GUI Signed-off-by: Werner Macho <werner.macho@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23Prevent possible SIGSEGV in testGravatar Dirk Hohndel
If the load fails the get_dive(1) could return NULL. Let's catch that as an error instead of having the test crash. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23When clearing dive file data, forget the saved git shaGravatar Dirk Hohndel
Otherwise parse_file() thinks that this data has already been loaded and doesn't re-read it, even though our internal data structures have been erased - so a subsequent parse_file after clear_dive_file_data() that opens the same git repository finishes successfully, but leaves the dive_table empty which is of course incorrect. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23Undo two more unsigned changes that are no longer neededGravatar Dirk Hohndel
With this master should compile without signed / unsigned warning, hopefully without any more breakage. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23Another attempt to clean up signed / unsigned in profile.cGravatar Dirk Hohndel
This time we err on the side of signed variables most of the time. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23Don't try to force depth to be unsignedGravatar Dirk Hohndel
Trying to clean up the signed vs. unsigned issues it becomes clear that forcing depth to be unsigned causes way too many problems in the code. So this commit goes the opposite direction; since we clearly aren't limited INT_MAX vs UINT_MAX, simply make more of the depth related variables signed. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23When changing units from psi to bar first change value, then maxGravatar Robert C. Helling
otherwise the max interferes with the value. Furthermore this increases the max values a bit. Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-23Revert "Clean up signedness confusion in planner.c"Gravatar Dirk Hohndel
This reverts commit 59299f0ab34ca4d75e0b02d9a83f23ec6348e1df. Doing this oversimplified "fix" actually breaks the planner. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-22Don't start Add or Plan while accessing cloud storageGravatar Dirk Hohndel
This avoids a race condition where we get confused about our internal state. Fixes #1031 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-22Make the reserve gas units awareGravatar Robert C. Helling
In the planner, for recreational mode, there is a setting indicating the pressure at which the diver should be back at the surface. This pressure was hardcoded to bar. Fixes #1027 [Dirk Hohndel: small modifications, more reasonable step for psi, more reasonable maxima] Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>