summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-05-02Move the qtTranslator and ssrfTranslator pointers to qt-init.cppGravatar Thiago Macieira
No point in having it defined in each main program's .cpp. Especially since the unit tests don't define them. Signed-off-by: Thiago Macieira <thiago@macieira.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-05-01QML UI: break grid layout into smaller layoutsGravatar Dirk Hohndel
Since the big layout causes an infinite recursion in the Qt/QML layout engine. Also remove a no longer accurate comment. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-05-01QML UI: Left align all labels in DiveDetailsViewGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-30Only attempt to download each picture onceGravatar Robert C. Helling
Otherwise we keep downloading the same image multiple times instead of new images. Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-30Remove duplicate resource mentionGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-30Fix typoGravatar Dirk Hohndel
Otherwise this code makes no sense (and has no effect). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-30Merge branch 'offlineDefault'Gravatar Dirk Hohndel
2016-04-30QML UI: when first entering cloud credentials, force cloud connectionGravatar Dirk Hohndel
With offline the default now, we need to force a connection at least once so that the repos are in sync. And then of course we need to return to the correct state, regardless on whether this connection succeeded or failed. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-30Remove pointless codeGravatar Dirk Hohndel
This isn't how you remove the default filename Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-30QML UI: make offline the defaultGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-30Don't pretend that opening git repo succeededGravatar Dirk Hohndel
Not sure why we claimed that this was successful when clearly it wasn't. There's a risk that this could break something on the desktop, but it makes no sense to me why that would be the right thing to do. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-30Connect to the reply, not the managerGravatar Dirk Hohndel
This way if there are other pending connections we don't get triggered by the wrong completion. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-30QML UI: forceRemoteSync means connect even without unsaved changesGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-30QML UI: better diagnostics when cloud connection failsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-30Only create the path to no cloud local storage onceGravatar Dirk Hohndel
This required a small change to the helper function, but this seemed totally worth it. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-30QML UI: make text match the implementationGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-30Fix logic for when to mark dive list as changedGravatar Dirk Hohndel
Since saving checks if there are changes, we have to always mark the dive list as changed before asking for the changes to be saved. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-29QML UI: when switching from no cloud to cloud usage, don't drop local dataGravatar Dirk Hohndel
This is rather simplistic, it just imports the local data into the remote repository and therefore loses the git history of the local data - but I wasn't able to make the git merge without shared base commit work, so I went this much easier to implement route instead. One thing we need to be careful about is that contacting the remote server could fail. If we don't manage to merge the dives from cloud server and local storage, we need to revery to no cloud status in order not to lose the local data. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-29QML UI: fix order of tests when saving changesGravatar Dirk Hohndel
Only check for previous cloud connection when actually trying to save to cloud Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-29Clean up comparison syntax in qmlGravatar Dirk Hohndel
For consistency. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-29Allow switching the user from the command lineGravatar Dirk Hohndel
This is a feature that many people have asked for. This implementation is somewhat simplistic because we simply use a different name for the program settings - but interestingly enough this appears to be enough to capture a lot of the core functionality that people are looking for in multi-user support. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-29QML UI: make sure nothing is lost when changing cloud credentialsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-29Protect access to image hash dictionaries with lockGravatar Robert C. Helling
Otherwise we step on our own feet when downloading several images, like after import from divelogs.de with many linked images. Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-29CylindersModel: clamp the "cylinderuse" valuesGravatar Lubomir I. Ivanov
If the value for "use" is negative or larger than the number of elements in "enum cylinderuse", later CylindersModel::data() can request a string in the lines of cylinderuse_text[cyl->cylinder_use], which can SIGSEGV. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-29Fix Qt date interfaces for times before 1970Gravatar Linus Torvalds
This seems to work around the crazy QDateTime::fromTime_t() problem in Qt. It is *very* lightly tested. In fact, the only test is that "test0.xml" change that is part of this patch. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-29Extend time parsing to before 1970Gravatar Linus Torvalds
It turns out that we are starting to have users that have logs that go back that far. It won't be common, but let's get it right anyway. NOTE! With us now supporting dates earlier in 1900, this also makes "utc_mktime()" always add the "1900" to the year field. That way we avoid ever using the fairly ambiguous two-digit shorthand. It didn't use to be all that ambiguous when we knew that any two-digit number less than 70 had to be 2000+. Now that we support going back to earlier in the last centiry, that certainty is eroding. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-27QML UI: handle failure to read local dive dataGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-27correctly load default filenameGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-27only set index if we have specific targetGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-27QML UI: use anchor to fill parentGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-27Remove hack that's no longer neededGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-27QML UI: with a local default file setup, open that at startGravatar Dirk Hohndel
And set no cloud mode. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-27QML UI: set the default local repo to loadGravatar Dirk Hohndel
This will allow the user to open a repo that was stored in no cloud mode. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-27Add helper function for the consumption of loaded dive dataGravatar Dirk Hohndel
This allows us to call that part of the process from multiple places in the future. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-27QML UI: in no cloud mode, save to a default local repoGravatar Dirk Hohndel
And set that up as the default file to load at start. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-27git storage: init local repositoryGravatar Dirk Hohndel
So far we didn't do that at all, we either relied on the user manually creating a local repo, or we cloned a remote repo. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-26QML UI: start out with save button visibleGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-26Adapt to Kirigami api changesGravatar Marco Martin
* add new file AbstractApplicationHeader.qml to the qrc * add new file AbstractApplicationWindow.qml to the qrc * use new api for custom ApplicationHeader header: Kirigami.ApplicationHeader { minimumHeight: 0 preferredHeight: Kirigami.Units.gridUnit * (Qt.platform.os == "ios" ? 2 : 1) maximumHeight: Kirigami.Units.gridUnit * 2 } Signed-off-by: Marco Martin <notmart@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-26Add Ubuntu Xenial to be built (16.04)Gravatar Miika Turkia
Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-25Fix time parsing for Divesoft FreedomGravatar Miika Turkia
Divesoft uses 17 bits for time so parse accordingly. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-25Abort git authentication attemptGravatar Miika Turkia
If we have incorrect cloud credentials, we need to return an error on git authentication call back in order to avoid endless authentication loop. This might well happen e.g. when changing the password on desktop and then on laptop Subsurface still thinks the credentials are validated and ends up in the authentication loop. The authentication call back on libgit is intended to be used to ask for user credentials, and as we handle credentials elsewhere, we just need to fail the authentication attempts. (The threshold for bail out could have been 1 attempt...) Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-25DL7: parse temperature and cylinder pressureGravatar Miika Turkia
Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-25Parse date and time in DL7 importGravatar Miika Turkia
Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-25Grab the payload of DL7 fileGravatar Miika Turkia
This allows us to parse the DL7 profile data (skipping the header and footer) Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-25CSV import: support min.sec formatGravatar Miika Turkia
Assume a format containing a dot to be min.sec as defined in DL7 specification. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-25Special handling for DL7Gravatar Miika Turkia
Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-25Detect DL7 depth unitsGravatar Miika Turkia
Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-25Basic GUI part for DL7 importGravatar Miika Turkia
This sets the basic properties properly but is still missing the parsing of meta-data, especially used units. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-25Fix file extension regespGravatar Miika Turkia
The original negative lookahead failed in case the file name contains more than 1 dot as it looks for dot that is not followed by the given extensions. And such a match exists in the file name. The new version should look properly if the file ends with any of the given extensions. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-04-25Add CSV parsing trigger for zxu and zxl filesGravatar Miika Turkia
Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>