Commit graph

10206 commits

Author SHA1 Message Date
Dirk Hohndel
fa338a26b8 QML UI: add feature to add current position when editing dive
This isn't quite perfect yet. If it takes too long to get the GPS fix (i.e., if
you save it before you get the fix), this will simply fail and not store a
position. But in normal conditions (you check the box, you edit the data, you
save), especially when outside on a dive boat, this should work fine.

For the other cases we need to implement some kind of callback to still collect
the data.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-01 17:26:26 -08:00
Dirk Hohndel
14a09689a4 Location service: get the current position
If we have a fix that is fewer than 5 minutes old, take it, otherwise trigger
an update.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-01 17:26:18 -08:00
Dirk Hohndel
66cd83a70f Location service: support the concept of waiting for a position
There may be reasons where we want to get the position even if the criteria
aren't met.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-01 17:26:14 -08:00
Dirk Hohndel
a611bb22f7 Location service: restructure the way GpsSource is managed
It makes much more sense to have this as a private member of the class instead
of a static in one of the functions.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-01 17:26:09 -08:00
Dirk Hohndel
87fc84a5ee QML UI: allow the user to close the Log
Same context menu idea. The reason for adding this is that the context menu
always acts on the last page in the stack (so I guess the "right-most-one"). So
if you edit a dive and then open the log, you can't save the dive until the
dive edit is the last page which means you have to close the log, first. Not
ideal, but better than nothing and it works well enough. I still think we might
want to go back to a traditional "Save" button...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-01 16:34:12 -08:00
Dirk Hohndel
fd23a4891c QML UI: consistency in naming
Let's try to call it Subsurface-mobile everywhere.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-01 09:34:32 -08:00
Dirk Hohndel
37c74b5c2f QML UI: update context menu text
The automagic update gets disabled once we overwrite the text with "Save" at
some point, so instead we appear to have to do this manually.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-01 09:31:51 -08:00
Dirk Hohndel
a0aa27e864 QML UI: handle editing of depth
Getting closer to being able to really edit / add dives in the mobile UI.
This works for manually added dives - needs a bit more thought for dives
downloaded from dive computers as we don't necessarily want to change the
maxdepth in conflict with the samples.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-01 00:55:34 -08:00
Dirk Hohndel
2c28b16b26 QML UI: handle editing of duration
I don't think these regular expressions are sufficiently exhaustive - but this
is forward progress.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-01 00:55:25 -08:00
Dirk Hohndel
7f628404e6 QML UI: refresh UI after editing / adding a dive
This way the properties of the shown list element are updated based on what was
edited. This feels weird and backwards - but it appears to be the way to do
this - you literally update the elemnts in this specific instance of that QML
page.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-31 18:16:47 -08:00
Dirk Hohndel
b84308bcfb QML UI: we don't need those semicolons
The code is rather inconsistent when it comes to the use of semicolons in the
JS code. Let's try to not have them...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-31 18:16:47 -08:00
Dirk Hohndel
da5d904d34 QML UI: process air and water temp when edited
This is a little hacky as it changes the units based on user input - a little
crude but works in the typical cases.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-31 18:16:46 -08:00
Dirk Hohndel
98fb625667 Cmake: only need Marble/Grantlee/Manual for desktop version
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-30 09:55:24 -08:00
Rick Walsh
4ad090565a Subsurface-mobile: add title to splash
Add "Subsurface-mobile" to base of splash screen

Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-30 07:41:52 -08:00
Rick Walsh
7f22984d18 QML UI: scale profile in two stages
Scale the QML profile in two stages.  Firstly, scale to fit.  Secondly, scale
again to 95% to create a margin around the profile.

The previous method scales to fit a create a margin in one step.  It appears
more elegant, and the margin is calculated more rationally.  Unfortunately on
some devices, including mine, the resulting profile is cropped for no obvious
reason.

Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-30 07:26:02 -08:00
Rick Walsh
2cce4ec3a4 Mobile CloudCredentials: hide password on entry
Don't use EmailCharactersOnly input method hint for the password. This fixes
the problem of password being displayed on entry, at least on my device.

Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-30 07:25:31 -08:00
Dirk Hohndel
6051bf9f89 Android build: we should build Subsurface-mobile by default
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-29 17:38:55 -08:00
Rick Walsh
0aecb12ab1 Subsurface-mobile: capitalization of app name
We call the app Subsurface-mobile most of the time, let's do so for the app
name too

Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>

../android-mobile/res/drawable-xhdpi/subsurface_mobile_splash.9.png
../android-mobile/res/drawable-xxhdpi/subsurface_mobile_splash.9.png
../android-mobile/res/drawable-xxxhdpi/subsurface_mobile_splash.9.png
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-29 17:30:54 -08:00
Dirk Hohndel
f3065230a3 QML UI: add information about build time / run time Qt version
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-29 17:29:46 -08:00
Rick Walsh
0624e882e4 Subsurface-mobile: Add 9-patch splash images
Adds 9-patch splash images, so that will not be distorted on different sized
and oriented displays.

Created with guidance from
https://software.intel.com/en-us/xdk/articles/android-splash-screens-using-
nine-patch-png

Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-29 09:54:32 -08:00
Dirk Hohndel
7e2898dfde QML UI: scale profile to allow for some visible separation
That small margin makes things look much better.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-29 09:52:27 -08:00
Dirk Hohndel
87f1301f50 QML UI: draw the profile anti aliased
This seems to look much better.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-29 09:51:34 -08:00
Dirk Hohndel
ef653b41f5 QML UI: obtain a reasonable margin from QML
This will be used later in the positioning of the profile.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-29 09:50:47 -08:00
Dirk Hohndel
9df3835035 QML-UI: switch profile widget into print mode
We don't need any of the interactive features. Additionally this allows us to
easily ask for slightly smaller fonts.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-29 07:15:52 -08:00
Miika Turkia
bcdd5645a6 Add splash screen for android-mobile
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-28 14:03:48 -08:00
Miika Turkia
1f4d02a861 Improve group information on USB device
As the group can be something else than dialout on some systems, mention
this on user manual.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-28 08:28:15 -08:00
Dirk Hohndel
c7c9fb0bb0 Git storage: be more careful when checking if this SHA is already loaded
In commit 8c1cc4524d ("Don't reload identical data") I got a little
carried away. Before comparing SHAs we need to make sure that
a) this is a git repository at all
b) we have an actual SHA before we claim to have the data loaded

Reported-by: Paul-Erik Törrönen <poltsi@777-team.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-28 08:21:03 -08:00
Stephen Hemminger
04054c0429 update Debian version
The current code base depends on qtlocation5-dev which is not
in Debian 8 (Jessie). It requires Debian testing (Stretch).

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 21:31:13 -08:00
Stephen Hemminger
113a421228 ftdi: fix memory leak on error
Found by cppcheck. Minor memory leak if usb_reset fails

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 21:31:13 -08:00
Stephen Hemminger
7a42215067 dive: paren error in set point handling
This probably is a serious bug, found by cppcheck.
Original code had paren's in probably the wrong place!

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 21:31:13 -08:00
Dirk Hohndel
fcc615a497 QML UI: try to remove two binding loops
Let's face it. I have no idea what I'm doing here.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 12:28:08 -08:00
Dirk Hohndel
81999e4667 QML UI: add debug output for echoMode
For some users by default the password characters aren't hidden. Maybe the
debugging output will help us understand what's going on.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 12:20:36 -08:00
Dirk Hohndel
97c23d6ee5 QML UI: cloud credential input: use text input hints
We shouldn't auto-capitalize and the text should only be email address
characters.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 12:19:51 -08:00
Dirk Hohndel
bbcc6fb3c2 QML UI: if remote is same as local cache, don't load / process remote
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 10:06:33 -08:00
Dirk Hohndel
8c1cc4524d Don't reload identical data
If we already have the same SHA loaded and no changes have been made to the
dive list then there is no point in loading the dives again.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 10:06:33 -08:00
Dirk Hohndel
bc200c3089 Cloud storage: check the top commit without loading dives
This way we can check if the local cache is in sync with the remote without
always triggering a load of the dives from git.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 10:06:33 -08:00
Dirk Hohndel
739d7d74e7 QML UI: load from cache before trying to sync with the cloud server
This is a simple way to deal with a "no network" situation. But this isn't
ideal, yet, if there is a slow network as the dive list will be reset again
once the sync from the cloud finishes. So there is some more thought needed to
make this work "mostly as expected".

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 10:06:33 -08:00
Dirk Hohndel
83bd46cf79 Add option to not check the remote when loading from git storage
This way we can first load from cache and then update from the network in the
background.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 10:06:33 -08:00
Dirk Hohndel
3a670f8c3b QML UI: don't show "1 of n" for multiple dive computers
This is actually not a change in the QML - it just conditionally compiles out
the code when building Subsurface-mobile.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-27 10:06:32 -08:00
Miika Turkia
de76cb3ebb Fix UDCF import time unit in timedepthmode
The timedepthmode specifies the time in seconds when using si units,
otherwise minutes. This patch implements this support.

Fixes #981

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-26 23:11:18 -08:00
Dirk Hohndel
99a5a743c4 QML UI: change the way we extract input data from dive edit
Instead of doing the silly "onEditingFinished" we get the strings from the QML
components at the time we commit the change. Much more logical, much more
straight forward, no issues with the TextArea not having an onEditingFinished
signal.

This still has a few open todos: the temperatures aren't parsed, the edit
screen is missing depth and duration, we can't edit the dive time (and it isn't
passed in on the commit). But it's progress.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-26 22:57:47 -08:00
Dirk Hohndel
9be42fff81 QML UI: correct text for context drawer when adding dive
This needs to say "Save" to indicate that you are saving the data that was
entered.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-26 21:56:45 -08:00
Dirk Hohndel
0962b504ce QML UI: get add dive closer to being useful
Now we at least start out with the corret date, time and number. This still
isn't functional as a lot of the data aren't used and the way you save the data
is completely silly, but it's another step in the right direction.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-26 21:37:18 -08:00
Dirk Hohndel
dc0be271bd QML UI: set up time and dive number when adding dive
Most likely when you manually add a dive on a device it is just about to happen
or just ended, so starting out with the current time is likely a good guess.
Which makes it the last dive in the dive list, so give it the next sequential
number.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-26 21:34:45 -08:00
Dirk Hohndel
dce3869339 QML UI: don't crash when committing changes and unable to find the dive
This mainly happens because add dive is completely broken right now, but in
general it seems to be good policy not to blindly dereference this pointer...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-26 21:24:29 -08:00
Dirk Hohndel
ce2b910cdb Two more helper functions for the QML manager
I'm not sure this is the best way to do this - QML should be able to get to the
model data directly (I hope?). But this seems to work and I need it to make Add
Dive be semi-correct.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-26 20:02:23 -08:00
Dirk Hohndel
763986b683 QML UI: when adding a dive, start in edit mode
Obviously we don't want to "view" a new dive, we want to "edit" it.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-26 17:06:52 -08:00
Dirk Hohndel
9db615a004 QML UI: show app name in the top bar as Subsurface mobile
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-26 13:47:23 -08:00
Dirk Hohndel
6b10c45b2f QML UI: mark locations with GPS data
In the dive detail view, if a location has an associated GPS location, show the
name of the location underlined so the user knows that tapping on it will open
a browser window with a map picture.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-26 13:33:11 -08:00
Dirk Hohndel
bf239e7c42 QML-UI: add hacky, useless way to show the GPS location of a dive
This is of course stupid and NOT what we want to do, but one could argue it's
better than nothing (well, not sure, whatever). If we have a GPS location
associated with a dive and you tap on the location name when showing the dive
details, it opens a static image of a satellite map with a marker for the dive
site.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-26 13:33:11 -08:00