summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-04-24Only offer dive computers with supported transportsGravatar Dirk Hohndel
On Android we still need to do more filtering as only some of the USB divecomputers are supported. But on iOS this takes care of it without the hard coded list. Additionally, if built without BT or BLE support, the corresponding dive computers are no longer shown (e.g. Perdix AI on Windows). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24Update libdivecomputer submoduleGravatar Dirk Hohndel
This is the flag-day update that goes along with the last three patches. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24use libdivecomputer 'fingerprint' to avoid downloading extra dataGravatar Linus Torvalds
This opportunistically uses a cache of 'fingerprints' for already downloaded dives. As we download data from a dive computer, we save the fingerprint and dive ID of the most recent dive in a per-divecopmputer fingerprint cache file. The next time we download from that dive computer, we will load the cache file for that dive computer if it exists, verify that we still have the dive that is referenced in that cachefile, and if so use the fingerprint to let libdivecomputer potentially stop downloading dives early. This doesn't much matter for most dive computers, but some (like the Scubapro G2) are not able to download one dive at a time, and need the fingerprint to avoid doing a full dump. That is particularly noticeable over bluetooth, where a full dump can be very slow. NOTE! The fingerprint cache is a separate entity from the dive log itself. Unlike the dive log, it doesn't synchronize over the cloud, so if you download using different clients (say, your phone and your laptop), the fingerprint cache entries are per device. So you may still end up downloading dives you already have, because the fingerprint code basically only works to avoid duplicate downloads on the same installation. Also, note that we only have a cache of one single entry per dive computer and downloader, so if you download dives and then don't save the end result, the fingerprint will now point to a dive that you don't actually have in your dive list. As a result, next time you download, the fingerprint won't match any existing dive, and we'll resort to the old non-optimized behavior. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-04-24Actually tie in the new libdivecomputer IO model to open the dive computer ↵Gravatar Linus Torvalds
device This creates a new libdivecomputer_device_open() helper, and makes downloading and configuration use it to open the dive computer device using the proper protocol. The IRDA case was tested by Sébastien Dugué - I had initially left it undone believing that "nobody uses IRDA". Reported-and-tested-by: Sébastien Dugué <sebastien.dugue.subsurface@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-04-24Convert our custom IO model to new libdivecomputer IO modelGravatar Linus Torvalds
This converts our old custom IO model to the new model that libdivecomputer introduced. This is partly based on Jef's rough patch to make things build, with further work by me. The FTDI code is temporarily disabled here, because it will need to be integrated with the new way of opening devices. The ble_serial code goes away entirely, since now libdivecomputer knows about BLE transport natively, and doesn't need to have any serial wrapper around it. Signed-off-by: Jef Driesen <jef@libdivecomputer.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-04-24Travis: add building for iOSGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24iOS: allow building for the simulator & switch debug/release buildsGravatar Dirk Hohndel
It makes sense to be able to control this with command line options. On Travis this avoids the signing problem and makes the build much faster. Still should be enough to catch iOS breakage. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24Travis: add iOS buildGravatar Dirk Hohndel
Disable most warnings for iOS test build as otherwise the Travis log file will exceed 4MB and the build will fail. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24iOS: don't show all the libgit2 warningsGravatar Dirk Hohndel
We aren't concerned about the code quality of libgit2 and with these warnings the build log overflows. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24Updated with new round of comments.Gravatar jan Iversen
Signed-off-by: Jan Iversen <jani@apache.org>
2018-04-24updated with review comments.Gravatar jan Iversen
Signed-off-by: Jan Iversen <jani@apache.org>
2018-04-24Incorporated review comments in INSTALLGravatar jan iversen
updated INSTALL to reflect the review comments Among others made homebrew / manual install equal choices as well as Xcode / QtCreator. Signed-off-by: Jan Iversen <jani@apache.org>
2018-04-24Updated INSTALL, based on first time building experience.Gravatar jan Iversen
INSTALL is updated to reflect how to install/build subusurface on Mac. It has also been updated with several generic parts. 3 parts are still outstanding (to come soon): QtWebKit, need to document how to download/build Mac, final touches iOS, need to document the build process Signed-off-by: Jan Iversen <jani@apache.org>
2018-04-23Add -libpath argument for qtmacdeployGravatar Allen Hall
Resolves ERROR: no file at "/usr/lib/libgit2.dylib" when building on MacOS. [Dirk Hohndel: SOB in PR #1201 - copying it into the commit for consistenty] Signed-off-by: Allen Hall <revenant83@hotmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-23iOS: build Release by defaultGravatar Dirk Hohndel
And add -debug option to build.sh for debug builds. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-22Updated doc. for handling of libdcGravatar jan Iversen
git.subsurface-divelog.org no longer exist. Signed-off-by: Jan Iversen <jani@apache.org>
2018-04-19CSV import: fix setpoint (typo)Gravatar Miika Turkia
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-04-19Cleanup: Make local function waitFor() of static linkageGravatar Berthold Stoeger
Moreover, remove it from the `extern "C"` block, since extern/static is oxymoronic. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-04-19Coding style: remove superfluous semicolonsGravatar Berthold Stoeger
Remove a semicolon after Q_OBJECT and a few others after the closing braces of while loops. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-04-16QML UI: fix incorrect icon referencesGravatar Dirk Hohndel
Not sure why this has worked in the past - it was simply wrong. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-16QML UI: ensure delegate height is not a fractionGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-16QML UI: dive list performance: enable cachingGravatar Dirk Hohndel
We had turned this off since it caused rendering issues, but that appears to be fixed now - and it should help to get us smoother rendering of the dive list. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-16QML UI: dive list performance: no background rectangleGravatar Dirk Hohndel
This is one of the suggested performance enhancement to reduce redundant painting. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-16QML UI: make the code easier to readGravatar Dirk Hohndel
And maybe this will make it faster as well? Depends on how the binding is implemented, I guess. But at least it's less confusing to read now. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-16QML UI: show offline notice when going offlineGravatar Dirk Hohndel
The logic was backwards and showed the notice when the user switched to auto sync mode. Fixes #1204 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-16QML UI: change auto cloud sync menu textsGravatar Dirk Hohndel
This way the menu items describe what happens when you tap on that menu item. That seems more consistent and intuitive. See #1204 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-15QML UI: suppress warnings when showing GPS fixesGravatar Dirk Hohndel
Kirigami gets unhappy if a SwipeListItem isn't named listItem. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-15Travis: make qt55 build report build failures correctlyGravatar Dirk Hohndel
The proxy for this is a check to see if the Subsurface binary was created (in which case we assume that the build succeeded). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-15Qt: don't use member function that requires Qt 5.8Gravatar Dirk Hohndel
This should have been caught by our build check, but it turns out that that one isn't correctly reflected in its Travis status. Oops. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-15Update CHANGELOGGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-15QML UI: recalculate derived information after editing diveGravatar Dirk Hohndel
For example, when changing the cylinder, the SAC rate wasn't updated. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-15QML UI: update to latest KirigamiGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-15QML UI: don't show a vertical scrollbar in dive listGravatar Dirk Hohndel
With the folding trips it just looks confusing as it changes size. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-15QML: remove unused propertyGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-14iOS: fix info.plistGravatar Dirk Hohndel
Xcode happily accepted the incorrect plist syntax for a boolean and the app did the right thing when installed locally - but once you upload to the iTunes store the error causes that to fail. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-14QML UI: always show dives that aren't in a tripGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-14QML UI: allow collapsing the open tripGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-14QML UI: animate trip foldingGravatar Dirk Hohndel
This looks much nicer. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-14DiveObjectHelper: expose number of dives in a tripGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-14QML UI: bring back folding tripsGravatar Dirk Hohndel
In older versions of Kirigami this caused all kinds of problems so we eventually gave up on it in commit 13c49276d1d4 (Revert "QML UI: make dive list fold dive trips"). Now this seems to work much better, so let's bring back trip folding! Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-14Convert CodingStyle file to Markdown notationsGravatar Jeremie Guichard
Rename CodingStyle into CodingStyle.md Update markups to use the ones used in other md files Move external link reference to the bottom of the file Signed-off-by: Jeremie Guichard <djebrest@gmail.com>
2018-04-14Debug location savingGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-14GPS: untangle the timestamp comparisonGravatar Dirk Hohndel
And calculate the correct time since last fix. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-14QML UI: if we don't have a current position, update it laterGravatar Dirk Hohndel
Once we get a new fix we asynchronously update the text. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-14GPS: add signal to show that a new fix has been acquiredGravatar Dirk Hohndel
This way if we don't have a current enough position we can wait for a current fix to be acquired. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-14QML UI: better debug messages for getting current locationGravatar Dirk Hohndel
Also, show GPS refresh interval in seconds; it's confusing if this is reported in ms. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-13iOS: log messagesGravatar Dirk Hohndel
So far we only wrote messages to subsurface.log on Android (since we couldn't figure out how to make that file user accessible on iOS). Now that that's fixed, we also need to actually write to the file in the first place. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-13iOS: make logfile accessible to userGravatar Dirk Hohndel
By creating it in the Documents path and setting the two magic keys, iOS will make the log file available to the user. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-13iOS: always create subsurface.log fileGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-13iOS: create our own OS support fileGravatar Dirk Hohndel
Up until now we just reused the macos.c file for convenience, hard coding a specific file path that may or may not work on iOS. Instead get the preferred path from Qt and for this we need to be able to call into Qt, so this needs to be a C++ file. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>