Commit graph

508 commits

Author SHA1 Message Date
Dirk Hohndel
5aa94578f7 QML UI: small modification to About screen
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-05 17:00:14 -08:00
Dirk Hohndel
a873711cec QML UI: make sure the drawer is closed after going back to dive list
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-03 15:12:09 -08:00
Dirk Hohndel
80f29bd3f6 QML UI: brute force around Qt 5.6.0 bug
With the current release candidate of Qt 5.6.0 we get into an infinite
recursion of the grid layout engine. This had happened before (prior to the 5.6
beta) and it appeared that setting the maximum width of the columns was
sufficient to fix this. But with the RC even that isn't sufficient, so now we
give up on having QML figure out the best possible column width and hard code
both preferred and maximum width to the same, predefined values. That's a total
shame, but at least now we can build against Qt 5.6 without infinite recursions
and crashes.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-03 14:36:57 -08:00
Dirk Hohndel
0cad6d206c QML UI: remove commented out / unused code
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-03 14:35:54 -08:00
Dirk Hohndel
12f36c92e1 QML UI: try to avoid binding loop
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-03 10:51:52 -08:00
Marco Martin
d24e5b455f use the global showPassiveNotification function
don't create a local PassiveNotification copy,
use the global show/hidePassiveNotification from
ApplicationWindow, now that it works

Signed-off-by: Marco Martin <notmart@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-03 10:44:41 -08:00
Dirk Hohndel
93f9bcd041 QML UI: remove incorrect statement
Not sure what this was even supposed to do...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-03 06:35:25 -08:00
Dirk Hohndel
6ac4fe7b18 QML UI: show notification for saving dives to cloud as well
Fixes #1014

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-03 06:33:00 -08:00
Dirk Hohndel
c5153fbc10 QML UI: ensure that cloud notification is always cleared
All error cases need to reset it as well.
And it's easier to reset it right after we come back from parse_file()
instead of trying to track all the exit cases after that.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-03 06:32:12 -08:00
Dirk Hohndel
7133216653 QML UI: show notification when cloud is accessed
And hide the notification either after 5 seconds or once we are done.

This requires an extension to the Kirigami components that isn't upstream,
yet.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-02 17:14:47 -08:00
Dirk Hohndel
1f0b716021 QML UI: new property to tell the UI that we are accessing cloud storage
This can then be used to give the user visual feedback (instead of them
just thinking the app is hung).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-02 17:13:42 -08:00
Dirk Hohndel
605d085573 QML UI: resolve confusion about dive list model ordering
Oops, I forgot to take the sort model on top of the model into account.
Now everything should stay consistent - ListView order when accessed from
QML, but internal order when accessing the underlying array.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-02 09:02:00 -08:00
Dirk Hohndel
cd713d421b QML UI: update profile when editing duration of manually added dive
We need to make sure that a new fake DC is created after the duration was
changed.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-02 06:28:00 -08:00
Dirk Hohndel
880f1c5644 QML UI: update the correct dive in the model when committing a change
When manually adding a dive and moving it in the dive list (by editing
it's start time) we could create a situation where the dive list
internally was correct, but the dive list model on screen showed an
incorrect dive list with the new dive in two different spots.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-02 04:52:44 -08:00
Dirk Hohndel
ce83357889 QML UI: after adding a dive, jump to it in the list
Don't do the slow motion scrolling through the list if we previously
showed a different dive in the list.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-02 04:47:51 -08:00
Dirk Hohndel
3b37844708 Add helper functions to identify the position of a dive in the dive list
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-02 04:46:26 -08:00
Dirk Hohndel
abab031ed2 QML UI: implement undelete
This code is very similar to the undo code in the desktop UI, but
untangling that from the desktop seemed massive overkill; we don't have
lists of dives to delete and undelete here - so this is actually much
simpler and easier to maintain (I hope).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-29 15:42:33 -08:00
Dirk Hohndel
e39e9eee3b QML UI: present an undo dialog after delete
The dialog gives the user 3 seconds to undo the delete and then disappears
without any user interaction.

This isn't hooked up, yet.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-29 15:41:58 -08:00
Dirk Hohndel
0b7be8ec5e QML UI: small adjustment to DiveDetailsView
This reduces the margin to use more of the available space and also makes
the first column slightly wider so the word "Cylinder" isn't broken on a
Nexus 6p.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-28 17:18:56 +01:00
Dirk Hohndel
2bf6f4e45d QML UI: ensure that after a dive edit the profile is redrawn
Normally this is triggered when the DiveDetailsView component is
completed, but since QML isn't recreating this component unless we switch
to a dive a couple of spots in the dive list away from this one, we
wouldn't get any changes in the data reflected in the profile.

But since this now redraws the same dive that potentially was drawn last,
we need to make sure we call plotDive() with force=true.

I also suspect that this could help with the strange bug that sometimes we
show a blank profile after certain edits.

See #1013

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-28 16:46:50 +01:00
Dirk Hohndel
10af45d6dc QML UI: we no longer use the return value of commitChanges()
So make it a void function.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-28 15:45:26 +01:00
Dirk Hohndel
6d52d0f761 QML UI: add context menu to delete dive
This allows the user to delete the currently shown dive. This action takes
effect right away, no confirmation, it gets right away written to the
local git cache.

One idea for an undo operation here could be to simply reset the git tree
to HEAD^ and reload. Not elegant, but would work.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-23 14:07:49 +01:00
Dirk Hohndel
2772ab8764 Add helper to delete dive from QML
Once again we make this save the changes to the local cache without being
prompted.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-23 14:07:49 +01:00
Dirk Hohndel
5da9486533 QML UI: further validation in the C++ code
Don't allow negative depth or depth beyond 500m.

Additional checks that the gas mix is possible (even thought QML code
SHOULD only allow valid combinations).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-20 22:11:03 -08:00
Dirk Hohndel
8b39352d4e QML UI: only allow valid gas mixes
The input is restricted to

EAN100
EANxx  (with 'x' one of 0..9)
AIR
xx/xx  (with 'x' one of 0..9)
xxx    (with 'x' one of 0..9 and the number <= 100)

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-20 21:57:53 -08:00
Dirk Hohndel
e22a452cf5 QML UI: don't allow negative duration or depth
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-20 21:50:11 -08:00
Dirk Hohndel
38ab11a6c0 Add option to allocate the samples in fake_dc()
We (ab)use fake_dc() to create a pleasing profile for a manually added
dive. Based on it's intended use, fake_dc() simply handed back a dc
structure that pointed at staticly allocated samples - that's obviously
(now that I think about it) going to blow up in my face if I edit a
manually added dive more than once.

So now we have an option for fake_dc() to actually allocate the samples -
this way the rest of the code can treat these samples as we would treat
samples created any other way. We can free them and replace them with a
new set.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-20 09:36:14 -08:00
Dirk Hohndel
0b0e56edeb After freeing the samples, clear the pointer
Otherwise we might end up trying to free them a second time.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-20 07:39:25 -08:00
Dirk Hohndel
5fc16910c2 QML UI: fix recreation of profile after dive edit
We only need to deal with this if the dive changed. And in that case, if
we calculate a new fake DC, we need to clear out the meandepth as
otherwise the algorithm will try to match both max and mean depth. Since
the user potentially changed the max depth that could have very odd
consequences.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-20 07:33:05 -08:00
Dirk Hohndel
97d6a1e779 QML UI: no longer change unit preferences when parsing edits
When the user explicitly sets the units when editing or adding dives, we
used to change the display preferences. This was changed for some but not
all fields in commit 6252d0cd3b ("While parsing weight and pressure we
should not change the users settings")

Now we do this consistently for all inputs.

Also, when editing the depth of a manually added dive, we now throw away
the samples (as those are certain to be inconsistent).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-15 07:54:35 -08:00
Dirk Hohndel
bbbd479914 QML UI: better text when no profile is shown for a dive
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-15 07:27:00 -08:00
Dirk Hohndel
a3189a9b3e QML UI: don't show an odd profile for zero duration dive
A dive with zero duration creates an odd profile that is 2min 30seconds
long and looks just weird. Instead, simply show a text that there is on
profile shown for such a dive.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-14 16:27:41 -08:00
Dirk Hohndel
58f014728c Remove debug output
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-14 16:08:50 -08:00
Dirk Hohndel
c97ed010c7 QML UI: back key on dive list exits the app
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-14 12:17:24 -08:00
Dirk Hohndel
f2c8aed07b QML UI: when canceling a dive add, go back to dive list
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-13 23:54:40 -08:00
Dirk Hohndel
3413dfc3aa QML UI: simplify and correct top bar layout
Now things are centered and reasonably well spaced

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-13 23:44:59 -08:00
Dirk Hohndel
e4d27f27f0 QML UI: remove disabled parts of the top bar
I guess we are going with the Plasma Mobile influenced design after all

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-13 23:29:42 -08:00
Dirk Hohndel
464d468b75 QML UI: better margins for start page
This way it doesn't look like it's stuck in the corner.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-13 23:28:06 -08:00
Dirk Hohndel
55eb4160da Fix incorrect reference to endEditMode()
Not sure how that slipped through the cracks.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-13 21:53:01 -08:00
Dirk Hohndel
da5be2249d QML UI: use action button for save in GPS preferences
For consistency

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-13 21:50:31 -08:00
Dirk Hohndel
23b877a869 QML UI: don't change dive while editing
If the user taps on a dive in the dive list while a dive is being edited
or added, ignore that tap.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-13 21:28:32 -08:00
Dirk Hohndel
0ce1dd80cc QML UI: change the dive add/edit action button to be save
Remove the button on the page and instead use the action button to save
and the back key to cancel.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-13 21:25:10 -08:00
Dirk Hohndel
5952b09b51 QML UI: use action button and Android back button to save / go back
This is more consistent with the rest of our UI

To make this work you once again need changes to the mobile components
that aren't upstream, yet.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-13 21:10:51 -08:00
Joakim Bygdell
ae116c5bc8 QML UI: enable edit of gasmix
First cylinder only, show warning if there are more than one cylinder defined.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-13 10:04:05 -08:00
Joakim Bygdell
6252d0cd3b While parsing weight and pressure we should not change the users settings.
Now it is possible to enter a specific unit that is different from the
unit stored in the preferences. If only numbers are inputed the unit will
be the same as specified by the users preferences.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-13 10:03:50 -08:00
Dirk Hohndel
a91d4164b4 QML UI: remove the redundant context menus that just close the page
Android users are well used to using the back key for this. I kept the
code in place as things may end up completely different on IOS or other
mobile platforms.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-12 22:26:47 -08:00
Dirk Hohndel
692719f230 QML UI: when saving edits, really only save them locally
This should have been obvious. Without explicitly asking for only local
git activity, it will connect to the remote.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-12 22:14:17 -08:00
Dirk Hohndel
e5e5ab7480 QML UI: don't even try to connect if email or password are empty
This way the user gets better messages on the screen.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-12 22:06:38 -08:00
Dirk Hohndel
afb57bf741 Add missing import
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-12 17:26:26 -08:00
Dirk Hohndel
1f5cf4b42d QML UI: more progress update on start page
Again, to help track down where things hang.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-12 12:17:47 -08:00
Dirk Hohndel
45b0554a67 QML UI: add context menu to Theme Test
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-12 12:17:43 -08:00
Dirk Hohndel
d9d1b58e6a QML UI: experimentally enable context menu on each page
This is necessary to allow all user interaction when removing action
buttons from the top bar.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-12 09:56:27 -08:00
Dirk Hohndel
a738174a45 QML UI: experimentally turn off all the top bar buttons
This allows us to shrink the top bar quite a bit and have a little more
screen real estate. In order to maintain functionality we need to reenable
the context menu on some screens.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-12 09:56:20 -08:00
Dirk Hohndel
093c5fa5ff QML UI: more progress information on the start page
Since some users report hangs when changing credentials it would be useful
to see how far the application got.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-12 06:54:52 -08:00
Dirk Hohndel
f925711185 QML UI: clear up more data when changing credentials
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-11 22:46:35 -08:00
Dirk Hohndel
d877e13e0a QML UI: even with valid credentials, don't show empty dive list
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-11 22:46:00 -08:00
Dirk Hohndel
dbc96b1db3 QML-UI: allow dive list to be pulled up above Action Button
This way you can fully interact with it.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-11 12:43:32 -08:00
Dirk Hohndel
e189433a5d QML UI: calculate correct height for the cloud credentials
It still complains about a binding loop but I don't quite understand why
and how...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-11 10:04:44 -08:00
Dirk Hohndel
9bebef59d8 QML UI: remove unnecessary outer item from start page
This changes nothing except for removing the item and reindenting the
code.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-11 10:04:44 -08:00
Dirk Hohndel
5f8591e845 QML UI: try to get correct height for start page
Still not quite correct.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-11 10:04:44 -08:00
Dirk Hohndel
d719ef3a70 QML UI: make the start page scrollable
This doesn't quite work yet as the start page appears to miscalculate its
height (the cloud credentials page appears to be missing).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-11 10:04:44 -08:00
Dirk Hohndel
672b11d804 QML UI: redesign the About page
Make things centered, lay them out correctly, make sure the image fits.

This includes the re-indentation of the previous commit - but the changes
are so massive that it seemed pointless to do this as its own commit.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-11 10:04:44 -08:00
Dirk Hohndel
839cda7e4c QML UI: close About page on back key
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-11 10:04:44 -08:00
Dirk Hohndel
f0a24240f1 QML UI: cloud credentials: put the two buttons side by side
That looks better.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-11 10:04:44 -08:00
Dirk Hohndel
36b089dc8c QML UI: close all other pages when switching cloud credentials
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 21:47:09 -08:00
Dirk Hohndel
5e3b2741ac Invalidate the remembered git SHA when changing credentials
Otherwise, when switching back and forth between two logins, during the
second switch the dive list is not loaded as the code checks against the
remembered git SHA before rewriting the dive list.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 21:24:10 -08:00
Dirk Hohndel
06628e03c5 QML UI: disable some menu entries without valid credentials
This requires a patch to the mobile components that isn't upstream, yet.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 21:08:44 -08:00
Dirk Hohndel
9d131807d7 Reset the authentication cache when trying new credentials
Otherwise Qt attempts to be smart and re-uses previously successful
username (email) and password. This is an odd corner case, but it seems
the right thing to do.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 21:08:20 -08:00
Dirk Hohndel
38f7fd6fbe QML UI: allow changing credentials
With the integration of the credentials into the start page the logic for
this has changed.
Since the code for start page and dive list is actually on the same page,
using opacity to switch between the two sub pages (depending on whether we
have valid credentials and dives to show), the old way of changing
credentials no longer worked.
With theis patch the user once again can change their credentials (and
change their mind and go back to the dive list).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 21:05:23 -08:00
Dirk Hohndel
e26e50f2e4 Better tracking of the status of the credentials
There are several parts of the UI that will do better if they know if the
credentials that we have are incomplete (e.g., no password), invalid
(server rejected them), valid (server accepted them) or potentially valid
(we found a local cache for the email address, so that's likely correct,
but because we are offline we cannot (or have not yet) verify the
passord).

So far this is specific for the mobile UI - it might make sense to try and
use the same backend code and status tracking for desktop and mobile.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 21:00:43 -08:00
Dirk Hohndel
b7e353b7f6 QML UI: more accurate messages on the start page
Now the text shown better reflects what's going on, especially when the
credentials are invalid.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 21:00:21 -08:00
Dirk Hohndel
6829d10086 Indentation fix after the last commit
For the ThemeTest we could simply drop the item, for the GPS preferences
and the DowbloadFromDiveComputer page everything got indented by one
level.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 20:59:34 -08:00
Dirk Hohndel
ab36a3dad1 QML UI: make back key work for all pages
Reported by a beta tester for the GPS preferences, but affects a couple
more. We need to make sure that any page on the page stack is actually a
MobileComponents.Page, other wise the Android back key doesn't close the
page.

This commit changes GPS preferences, the theme test, and the currently
disabled download from divecomputer. it contains only the actual change
(wrap the current content in a page). The reindentation is a separate
commit for readability.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 20:58:11 -08:00
Dirk Hohndel
82a982b903 QML UI: redo the start page
It now explains the relationship between Subsurface-mobile and the desktop
application and allows the user to enter the cloud credentials right
there.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 20:57:11 -08:00
Dirk Hohndel
ffd449cf21 QML UI: make cloud credentials usable as a component on a page
Instead of using this on its own page, it makes more sense to use it as
part of the start page directly.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 20:56:38 -08:00
Rick Walsh
70a122a63e QML UI: make flicking between dives faster
Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 15:16:18 -08:00
Miika Turkia
c41bdcfbe3 Adding about page to Subsurface-mobile
This isn't pretty, but having the version string available on a place
that people are likely to find does make sense when going public with
the Subsurface-mobile. Especially when we do a public release, I assume
the developer menu with App log might not be readily available for
people to identify their installed version.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 15:16:12 -08:00
Miika Turkia
3bdaf00546 Support function to print version string
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-10 15:16:09 -08:00
Joakim Bygdell
8566523b43 QML UI: dive edit, treat numeric input of duration as full minutes
When editing the duration of a dive, if only numbers are entered they are
treated as full miuntes.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-09 13:05:21 -08:00
Henrik Brautaset Aronsen
0eebfb284e QML UI: Fix lingering edit mode
A dive would linger in edit mode when following these steps:

start mobile. show theme info. click on dive in dive list.
click edit. click back in topbar, again click back in the topbar.
click on dive in dive list, still in edit mode.

Not anymore. Also enable back button when viewing a dive.

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-09 13:05:05 -08:00
Henrik Brautaset Aronsen
37438e28d2 QML UI: Remove unused onClicked event for back button
I don't know how this got here.  Probably having fun
with copy and paste.

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-09 12:31:41 -08:00
Henrik Brautaset Aronsen
98dfc5c770 QML UI: Back buttons for app log and theme info
The app log and theme info had context menus
with a single close item. No need for that.

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-09 12:11:38 -08:00
Joakim Bygdell
8c9883cfcf QML UI: enable edit of cylinder pressures
First cylinder only, show warning if there are more than one cylinder defined.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-09 12:11:09 -08:00
Dirk Hohndel
87f62dfaa8 QML UI: load from cache first when changing cloud credentials
We need to execute the same sequence of steps both when starting the app
and when switching cloud credentials. This way things will work correctly
when the device is offline and the user wants to switch accounts.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-09 07:53:22 -08:00
Dirk Hohndel
0cc9ad0619 QML UI: draw edit/back button next to context menu button if it's shown
Without this they were all anchored to parent.right and would be rendered
on top of each other.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-09 06:34:14 -08:00
Dirk Hohndel
0f6b8a8f6f QML UI: DiveDetailsView - calculate better width and set everywhere
Even setting things up in the first row isn't enough. Every field in the
grid needs an explicit width. How dumb is that.

To make this more manageable calculate the correct widths at the beginning
and then just reference those properties.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-08 13:25:29 -08:00
Dirk Hohndel
3e46361518 QML UI: DiveDetailsView - set fixed column widths
In order for wrapping to work, the Text and TextEdit elements need to have
a defined width. Normally the GridLayout is supposed to be able to figure
out optimal widths for the different colums if you tell it which ones
should stretch, but that has repeatedly caused infinite loops and crashes
in the layout engine.

For now, in order to get both wrapping (and therefore no clipping of the
content) and avoid crashes, we hard code the width of the four columns by
setting Layout.maxWidth for each element in the first row of the grid.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-08 12:44:01 -08:00
Dirk Hohndel
c6a844fbad QML UI: DiveDetailsView - reorder the grid
Let's put the three likely rather narrow items above each other in the
right column and the others (especially the three that could run long:
suit, buddy, dive master) in the left one.

Also, make the individual entries more consistent in which attributes are
set in which order - easier to read.

Finally, make sure that all grid elements enable wrapping.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-08 12:43:28 -08:00
Dirk Hohndel
10ca667403 Sync load from cloud status when changing cloud storage accounts
Since this variable is specific to the cloud credentials in use, we need
to reset it when we change credentials.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-08 11:14:11 -08:00
Dirk Hohndel
801ce01585 Always sync with cloud server when updating backend data
It makes no sense to only do this the very first time we connect to a
cloud storage account. The existing code only happened to work because we
incorrectly tried to maintain the loadFromCloud status across restarts of
the application. So one bug hid another bug.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-08 11:12:43 -08:00
Dirk Hohndel
c1b3de6190 Remember status of specific cloud account in settings
What matters is that the cloud storage for a specific email address has
successfully been synced - and we need to remember this across restarts of
the app. This way Subsurface-mobile can work with different accounts, even
if offline.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-08 11:10:21 -08:00
Dirk Hohndel
d43a2c032b QML UI: correctly handle back key on edits
This requires mobile components that include commit 03c868fc57e5 from
earlier today. With this a single press on the back key cancels the edit
and a second press on the back key brings you up one level in the page
stack (usually back to the dive list).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-08 08:41:42 -08:00
Miika Turkia
d97ae62c75 Move preferences under GPS menu
Since we currently only have preferences that affect the GPS
functionality, it might be more logical to have the preferences under
GPS menu.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-08 08:00:27 -08:00
Henrik Brautaset Aronsen
8eb019456d Avoid QtCreator warning about ==
Warning M126: == and != may perform type coercion, use === or !== to avoid it

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-07 13:57:02 -08:00
Henrik Brautaset Aronsen
47403588e5 Move endEditMode() to DiveDetails.qml
Having endEditMode() in main.qml seemed wrong somehow.

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-07 13:56:46 -08:00
Henrik Brautaset Aronsen
d976310094 Add top-right edit and back buttons for mobile
Adds a back button in edit mode, and an edit button for view mode.

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-07 13:56:07 -08:00
Dirk Hohndel
e174389618 QML UI: another attempt to fix the random crashes
I finally was able to reproduce the crashes with the infinite recursion when
computing a GridLayout.

This seems to be triggered by competing Layout.fillWidth settings that the
layout engine couldn't figure out how to accomodate.

I did three things to make this work better:

- explicitly grab the columnWidth for the width of the DiveDetailsView.
- split the GridLayout in two so the area above and below the profile are no
  longer forced to fit in the same column widths.
- remove most of the Layout.fillWidth settings and only leave a couple that
  seem sufficient to get reasonable on screen layout in my experiments.

Here's hoping that this one is finally resolved.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-07 12:45:36 -08:00
Dirk Hohndel
d8d9301e8e QML UI: disable download from divecomputer button on start page
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-07 10:09:06 -08:00
Dirk Hohndel
ad72d437a3 Revert "QML UI: end edit mode when leaving the edit page"
This reverts commit d2928a137c.

The presence of this Action causes crashes for one of the testers. Which
is utterly ridiculous.
2016-02-07 07:32:08 -08:00
Dirk Hohndel
d2928a137c QML UI: end edit mode when leaving the edit page
This should fix the problem when using the back key to exit the edit page.
Requires a patch to the mobile components that isn't upstream, yet.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-06 12:08:16 -08:00