Commit graph

331 commits

Author SHA1 Message Date
Dirk Hohndel
140624918c QML UI: revert dive detail view layout changes
Now the layout flows again and shouldn't cause clipping on the right
(unless the user has excessively long, unbreakable words it seems.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-27 10:16:25 -08:00
Dirk Hohndel
35e60a7355 QML UI: don't combine multiple trips to the same location into one
The way sectioning of the dive list works is by watching for different strings
in the section.property. In order to be able to tell different trips apart we
combine the address of the dive trip variable with the location (which will
create a new section for a new trip, even if the location text is the same) and
then strip that information out before showing the trip header.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-26 20:06:30 -08:00
Tomaz Canabrava
7a682770ef Round placement sizes of TopBar.qml
I was having really ugly fonts here and I actually blamed
QML for that (while I still think it is it's fault), but we
where using pixel fractions. So every time we may hit a pixel
fraction, round that.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-26 09:51:50 -08:00
Tomaz Canabrava
1773f5e447 Correct usage of QString on qmlmanager
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-26 09:51:45 -08:00
Tomaz Canabrava
6575a0b4b8 We already have a QNetworkAcessManager global, use it
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-26 09:51:38 -08:00
Joakim Bygdell
5afda93b71 QML UI: If a dive has multiple cylinders show "Multiple" in the details page
Since we are short on space on the mobile version, lets just show "Multiple" if
a dive has multiple cylinders.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-25 12:55:04 -08:00
Joakim Bygdell
e0725966b1 QML UI: Add helper function to get weights
Helper function that retrieved the total weight for a dive to be displayed
on the DiveDetials page.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-25 11:14:33 -08:00
Joakim Bygdell
19588ce139 QML UI: Add helper function to get cylinder info
Helper function that retrieves the cylinder description to be displayed in the
DiveDetails. Only the first cylinder for a dive is retrieved.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-25 11:14:30 -08:00
Joakim Bygdell
1c3a1433e4 QML-UI: Rearrange the DiveDetails page
After adding "Cylinder" to the DiveDetails page the objects had to be rearranged
in order to better utilise the space.
To get a cleaner look on smaller screens the left side is left aligned and the
right side is right aligend.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-25 11:14:28 -08:00
Willem Ferguson
37d841966f MOBILE: update downloadFromDiveComputer table
Patch #2 that formats the table to be used for downloaded dives.

Signed-off-by: Willem Ferguson <willem@localhost.localdomain>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-25 07:10:37 -08:00
Willem Ferguson
9bc7ef7567 Layout proposal for download from dove computer screen
This is a proposal for the layout of this page and which may be
useful during further development of the download code.

Signed-off-by: Willem Ferguson <willem@localhost.localdomain>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-25 07:10:08 -08:00
Henrik Brautaset Aronsen
bf2db7f673 Move dive list menu entry to top
I guess the Dive list item will be accessed more often
than the preferences item, so put it to to.  Also remove
the "back to" prefix.

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-25 07:08:55 -08:00
Jan Mulder
3a33deeace QML-UI: Do not show strange double dashes for trips in Divelist
This is a multi-part message in MIME format.
After fixing the regression (commit 9e9d220c98) strange double dashes
appeared in the Divelist headers for trips. Just suppress it.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-24 21:32:17 -08:00
Miika Turkia
be303c0b5b Return to divelist even from "further away"
If one browses the application more than one step (e.g. details, gps fix
list and preferences), we need to pop the stack a bit more to get back
to the dive list. This will clear the whole stackView as I saw no harm
in discarding the history when one jumps back to the dive list.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-24 21:28:58 -08:00
Miika Turkia
9eea5a4294 Show map from the list of GPS fixes
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-24 21:27:24 -08:00
Dirk Hohndel
6a4fbecea5 QML UI: remove no longer needed debug output
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-22 10:19:46 -08:00
Jan Mulder
040ef3a8f2 QML-UI. Improved button style
Pressing of buttons were difficult to see mainly due to small buttons
and small color distance between pressed and un-pressed state. This fix
enlarges the buttons a little, and choses a different color for
the pressed state.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-22 06:47:06 -08:00
Jan Mulder
996367ac97 QML-UI. Add Back to Divelist menu item
As asked for on the mailinglisrt, a menu item is added to return
to the Divelist the easy way. In addition to the standard Android
back button.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-22 06:44:07 -08:00
Dirk Hohndel
260cd14a2b QML UI: maximize horizontal size of notes when editing
This seems a bit brute force but I couldn't get the width to propagate
correctly any other way.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-21 13:09:10 -08:00
Dirk Hohndel
9e9d220c98 QML UI: show dive trip again
This once again displays trips in the dive list and makes the visual a bit more
spaceous.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-21 12:42:16 -08:00
Dirk Hohndel
eef5bf75c3 QML UI: fix map display regression
In commit 6540e95425 ("dive details navigation") the change to access the gps
variable was only partially implemented.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-21 12:23:07 -08:00
Dirk Hohndel
f84e823879 QML UI: switch edit back to not being a drawer
With this edit seems to work again. The edit page can be scrolled around on
smaller screens to allow editing every part of it and to allow the user to
press the "save" button.

This is mainly intended to make sure testing can continue - it's unclear if
this will be the final design.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-20 14:07:06 -08:00
Dirk Hohndel
3116bc06fb QML UI: show date and time for dive
We keep losing the time when people move code around. date really is just the
date and doesn't include the time component.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-20 14:06:05 -08:00
Dirk Hohndel
60e0a6e833 QML UI: fix bugs in change detection on dive edit
We were comparing apples to oranges on a few items and therefore more or less
always assumed that a dive had been modified.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-20 13:56:28 -08:00
Miika Turkia
a329d44de0 If set imperial units explicitly on mobile app
If unit_system is set to imperial, we need to set the units explicitly
on mobile application.

Fixes #993

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-20 08:48:23 -08:00
Rick Walsh
85c57c005f QML preferences: use Layout.preferredHeight within GridLayout
It's not recommended to set the height explicitly of an item in a layout. Use
Layout.preferredHeight instead

Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-20 07:54:24 -08:00
Rick Walsh
471270437b QML UI: make all buttons more attractive
Commit f3f7930 introduced a more attractive button style to the start page.
This patch turns it into its own type so it can easily be used everywhere.

Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-20 07:53:49 -08:00
Dirk Hohndel
f3f79309d3 QML UI: make the buttons on the start page more attractive
Those plain rectangular buttons were just too ugly.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-19 22:32:37 -08:00
Rick Walsh
15a014105b QML UI: Don't explicitly set width of GridLayout items
It is not recommended to set the width explicitly of items in a layout. This
caused some issues in DiveDetailsView, which were fixed by commit 1030cb2.
See http://doc.qt.io/qt-5/qml-qtquick-layouts-layout.html#details

Set 'Layout.preferredWidth' instead of 'width' for GpsList and Preferences

Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-19 13:06:31 -08:00
Dirk Hohndel
88101e4dd3 QML UI: don't shorten the buttons
I want a prettier visual for those, anyway, but artificially making them
shorter than that text they display seems silly - and causes the text to be
trunkated for no good reason on some devices.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-19 12:53:32 -08:00
Dirk Hohndel
04e994b575 Subsurface-mobile on Android: change the splash screen methodology
This is based on post by Ben Laud
https://medium.com/@benlaud/complete-guide-to-make-a-splash-screen-for-your-qml-android-application-567ca3bc70af

It creates a theme that uses a splash drawable that Android will show
immediately when the application is launched. And then starts the QML
application with visibility set to false adn only makes it visible (and replace
the splash screen) once initialization is finished.

We still get a little flicker with the switch from splash to start page to dive
list, but over all the experience is hugely improved. And the bug that the
splash screen stays around when starting Subsurface-mobile in landscape also
appears to be fixed.

Fixes #994

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-19 12:42:58 -08:00
Sebastian Kügler
e9e843dc3c Close edit drawer when current dive changes
This prevents having the edit drawer opened at a different than the
current dive.

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2016-01-19 18:41:51 +01:00
Rick Walsh
1030cb265a QML UI DiveDetailsView: shift dive number to right of top row
In dive details view, shifting the dive number to the right of the top row
means it won't be cut short if the dive duration is 1 hr or longer

Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-19 07:16:49 -08:00
Dirk Hohndel
464b88f01f QML UI: yet another attempt to fix the profile scaling
This one appears to work in my testing so far. And reading the code it
seems to make sense. We look at the size that the widget thinks it is. And
we scale the scene to fill that size (including a margin). And then let Qt
and QML deal with the rest of it. Assuming this works it shows that we
have been trying too hard all this time.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-18 12:32:47 -08:00
Dirk Hohndel
df9062bd2e QML UI: next attempt to address the profile scaling
It seems to be much more logical to address the size and scale right
before rendering.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-15 13:55:42 -08:00
Sebastian Kügler
53024ca76d try to fix profile scaling
Different approach here:

- profile gets a bit higher, this was requested on the mailinglist, and
  seems to behave much better with the painted profile, we'd otherwise
  get it magically clipped on the right hand side.
- Make the scaling dpi aware, this fixes scaling for me on the Nexus7, I
  haven't been able to test it properly on other devices, so this needs
  some more testing. The result is visually quite close to what we can
  do, although I'm still getting a somewhat larger margin on the right.
  To get at the devicePixelRatio without too much custom code, I've
  added a property to the QMLProfile to retrieve it from the theme engine.

Signed-off-by: Sebastian Kügler <sebas@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-13 16:27:41 -08:00
Sebastian Kügler
8199c13f42 fix misrendered profiles when fast-flicking
- Apparently, QMLProfile doesn't like being painted without being
  visible, when flicking quickly through the dives I would get empty
  rendered profiles. Setting the cachebuffer to zero fixes it, and saves
  some memory.
  It still has some unfortunate timing, the profile gets rendered
  mid-flick, which leads to a delay in the flicking motion, quite
  annoying. We will have to somehow make sure that new profiles are
  rendered after flicking, not during
- Smallish cleanups

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2016-01-13 03:08:34 +01:00
Sebastian Kügler
9fc19039df Better behavior for dive details flicking
- stop at bounds, this is in line with other flickables. I really
  don't like Flickables floppy default behavior to allow dragging and
  scrolling over the bounds.

Signed-off-by: Sebastian Kügler <sebas@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-12 07:10:52 -08:00
Sebastian Kügler
142c8b218b Fix bugs in edit drawer
- As the list may get reset on save, the dive_id effectively changes
  since currentItem isn't updated. So after editing, we end up with a
  different currentItem than visible. This is very unintuitive, but
  has to do with the model resetting. It would result in the edit view not
  showing the current dive when opened the second time. Let's make sure
  that out currentItem is always the visible one before we're filling
  the data into the edit page.
- Close the drawer when we're navigating away from the dive item, for
  example when hitting the back button.

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2016-01-12 03:06:09 +01:00
Sebastian Kügler
ae0f680c6e Kill warning
Apparently parent.height is negative sometimes.

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2016-01-12 03:06:09 +01:00
Sebastian Kügler
6540e95425 dive details navigation
This patch reworks the navigation of the dive details.

- The detailsview is now a list view with page-sized delegates. This
  allows horizontal swiping to the next and previous dive.
- The central button now allows to open the edit mode for the dive.

Original patch was done by Marco Martin, but needed to be reapplied by
hand.

Signed-off-by: Sebastian Kügler <sebas@kde.org>
2016-01-12 03:06:09 +01:00
Dirk Hohndel
19e95efd6f Random whitespace cleanup
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-11 06:14:45 -08:00
Dirk Hohndel
82b2b709bc QML UI: Store the dive duration in dive and (fake) divecomputer
This is needed so that our heuristics for fixing up dives don't mess up the
data.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 22:08:42 -08:00
Dirk Hohndel
0d9892645c QML UI: only store the new date/time if they are valid
Otherwise we are overwriting valid data with midnight, Jan 1, 1970.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 22:07:58 -08:00
Dirk Hohndel
56b3ecb3f6 QML UI: show dive time again
In commit 25aa80846b ("Move Dive class from qthelper.h/cpp to it's own file")
the meaning of getting the "date" of a dive was changed to just be the date and
not the date and time. That's not what the QML code expected.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 22:07:31 -08:00
Dirk Hohndel
a27d78af03 Save a dive has to mean "save to local storage" on mobile
While it makes sense to have the concept of "what's in memory" and "what's on
disk" in a desktop application, on a mobile device that seems like the wrong
approach. If the user edits a dive and taps on "save", they reasonably expect
this to be saved to storage (so our local cache of the remote git repository).
And "Upload to cloud" then pushes the data to the cloud server. It may even be
reasonable to do that automagically, but that I'm not so sure about.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 21:40:03 -08:00
Dirk Hohndel
60d5463311 Remember in settings if we ever synced with the cloud
Otherwise, if the device is offline we would not be able to store changes in
the local cache, completely defeating the purpose.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 21:38:44 -08:00
Dirk Hohndel
4f10f7f7ae QML UI: refresh divelist after GPS data was successfully applied
And create a helper to do so to make the code simpler.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 20:44:22 -08:00
Jan Mulder
aa6aa416bf show dive.number instead of double location
Small error was introduced in commit 25aa80846b. The dive.location was
shown in the DiveList instead of the intended dive.number

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-10 14:09:31 -08:00
Dirk Hohndel
b1f90b6aa0 QML UI: partial, slow and incomplete implementation of delete GPS fix
This only deletes the fix on the mobile device, not on the server.
And it is really really slow. Re-reading the data from the settings just isn't
a smart way to do this.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-08 23:18:41 -08:00