Age | Commit message (Collapse) | Author |
|
The ApplicationWindow component has an internal PageRow for the
management of the application's pages, use that instead of an
own StackView.
Use shared components for common things in the app
ListItem for the dive list
Page for application pages, for correct background color
and moving of the action button
Signed-off-by: Marco Martin <notmart@gmail.com>
Signed-off-by: Sebastian Kügler <sebas@kde.org>
|
|
Signed-off-by: Sebastian Kügler <sebas@kde.org>
|
|
This makes things like accent(Text)Color and our two custom point sizes
for fonts resolve correctly again.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
|
|
Move the properties we previously added to units and theme into their
own container. This encapsulates these things that belong together and
allows us to move it out later without many problems. Also, litter the
global namespace a bit less.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
|
|
This updates to the state of bf7914b67c45e
Signed-off-by: Sebastian Kügler <sebas@kde.org>
|
|
This patch is the part implementing the drawers and in-app page
navigation. In more detail:
- main.qml uses the mobilecomponents plugin and the APIs as already
changed in the other components
- The extended properties have moved into the root item (for now,
they'll get properly encapsulated later)
- A menu can be swiped in from the left
- The application makes better use when used horizontally (if there's
enough space, so depending on the display you can get divelist and
-details next to each other, one phone/portrait formfactor, the layout
stays in a single column.
- The options for GPS have been grouped into a submenu
This change follows the Plasma mobile human interface guidelines. These
changes are actually relatively small considered what they're doing,
most of the logic is encapsulated in mobilecomponents' PageRow and *Drawer
classes.
The previous navigation pattern is actually a subset of this
one, so it still works.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
|
|
This picture is used for the header part of the drawer which can be
swiped in from the left.
I'm sure Dirk has a better one, but this works quite nicely until he
gets to replace it.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
|
|
Signed-off-by: Sebastian Kügler <sebas@kde.org>
|
|
This is a dumb port of a number of properties to use the new theme and
units API.
- import the plugin
- change accessors from units and theme to MobileComponents.Unit and
MobileComponents.Theme
Signed-off-by: Sebastian Kügler <sebas@kde.org>
|
|
This adds only the bits from MobileComponent that we already use to the
qrc file, including two icons go-next and go-previous (2 simple SVG icons taken
from the breeze theme).
Signed-off-by: Sebastian Kügler <sebas@kde.org>
|
|
This commit adds the .qml and qmldir files for the MobileComponents
import. It contains low-level things like units and theme, and mid-level
things like Heading, and high-level navigation in the form of an
ApplicationWindow and Drawers that hold menues and provide swipe
interactions between the pages.
These components are a more full version of the "light" plasma
components we have been using to make the UI scale well and appear more
consistent (coloring, spacing, alignment, etc.).
An interesting change is that Units and Theme are now singleton types,
which is more efficient. It does mean a few changes to our current API
usage:
- units becomes Units
- theme becomes Theme
- 2 properties move out of each (we can't subclass singleton types)
This change also means that we're using the vanilla upstream components,
so it's very easy to get improvements to these rather young components
in, and we don't have to do this work on our own.
The mobilecomponents consist of just a bunch of qml files which we can
deploy through the qrc file.
In the next commits, we will gradually make the current UI use these new
elements.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
|
|
Testing the mobile application on Win32 desktop results
in a crash.
Using ApplicationWindow for some reason makes the executable
enter an inifinity loop on startup until it runs out of RAM.
The output is:
setGeometryDp: Unable to set geometry 160x1200+720+426 on ApplicationWindow_
QMLTYPE_12_QML_111/''. Resulting geometry: 160x885+720+426 (frame: 4, 23, 4,
4, custom margin: 0, 0, 0, 0, minimum size: 0x47, maximum size: 16777215x
16777215).
To fix the crash use "Window" instead of "ApplicationWindow".
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
ACKed-by: Sebastian Kügler <sebas@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Thanks again to Lubomir for finding this.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
While this is primarily something targeted at a mobile device, with many
of the 2 in 1 devices it is possible that the user might be running the
desktop version of Subsurface on a mobile device.
As a first step to make it possible to collect GPS fixes on such a device
we need to make the infrastructure to do so available in the desktop
application as well.
This still needs to be hooked up in the desktop UI.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Instead of directly using the status output for the QML UI, set up the
function used to display messages to the user as part of the constructor.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This allows the backend to know which version of Subsurface is
contacting it.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This should actually not be in the mobile section at all. This needs to be
available on the desktop as well.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
It's just not user friendly to have two different user IDs for two
different web services that we provide. Instead in the following commits
we'll add a way to retrieve the location service web service userid with
your cloud storage user id.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Right now this always sends the default name for GPS fixes created by the
location service. There isn't much point in making this configurable.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Right now the distance is always in meters, the mobile app doesn't deal
with units at all, anyway.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Not inside the CloudStorage group.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Forgot to hook this up.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
With this Subsurface-mobile should be able to mostly replace the companion
app. This needs some more testing and fine tuning (for example the minimum
time / distance should be configurable, there should be a location name),
but I think the hard part is done now.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This may need an "are you sure" confirmation dialog...
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Now only storing fixes after a certain time / distance actually works.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This handles the user id for the Subsurface webservice for GPS location
tracking.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This should prevent the device from draining battery like crazy.
This is not the same as the interval at which we record fixes - getting a
fix every 5 minutes gives us a better chance to notice when we moved the
minimum distance.
Also add some more comments to the code that does the actual handling of
storing the data.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Ouch that's an embarrassing bug. Oh well. Shift happens.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This is mostly for debugging, to make sure that the recording of GPS fixes
works as expected.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This is a direct conversion of the existing code in subsurfacewebservices
to the different data structures in use here. I did not try to abstract
this out to have both share a common helper because I assume that the
Subsurface web service will pretty quickly become obsolete (together with
the companion app).
Right now this is not hooked up anywhere.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This way we don't clutter the main settings and we don't have to deal with
making sure we are reading and writing from/to the right group.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
- anchor the label to the left of the date field
- elide the text instead
This fixes the bug in the dive list where the dive's location overflowed
over the date, especially visible on phones in portrait mode.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
- paint() can become a hot path, especially when we think about
repainting the item on size changes. In general, it's a really good
idea to keep this function as fast as possible, as we want to be able to
repaint the item when needed. Also, ProfileWidget is pretty heavy to
set up, so rather spend a bit of memory there.
- Rename profile to m_profileWidget, it already was member var.
- Sizing ... I have to admit I don't understand the rendering of the
ProfileWidget. I'd like it to do the following things:
- render at native resolution, we don't want to resize it
- react to item changes - we want to reset the size and
re-render the widget into the item in those cases
- perhaps be able to use a couple more of the profilewidget's
features
Signed-off-by: Sebastian Kügler <sebas@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
- Styled texts
- don't put all the properties of the text items in one long line, makes
the code more readable and is in line with coding style used
throughout.
- button and profile move into their own items, button moves to the
right (it's more of a contextual item, so it's better placed top
right, further more, a control is generally easier to reach on the
right without covering information unnecessarily. Code-wise, it's also
a more logical encapsulation.
- dpi-aware sizing of dive profile, use units.gridUnit instead of
hard-coded pixels.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Using Label instead of text gives us consistent coloring and styling of
the text labels. Also remove the boldness to make it comply to the
design language used.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
anchors.fill does essentially the same, as the item is positioned at 0,0
of the parent by default.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
- word-wrap and style the log message at the bottom, this should fix
clipping of error messages down there
- introduce units.smallPointSize, which defines a small font size to use
for toned-down display elements (e.g. the date in the dive list)
- No need to assign the default value to Text.text
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This line seems to be a left-over from a refactoring. It doesn't do
anything, just produces a warning, so just remove it.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This should be configurable in the preferences at some point.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This is rather simplistic and will clutter the settings. I'm not convinced
this is the BEST way to do this, but it's a rather straight forward way to
get persistant storage of the location fixes.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
That way we don't track the user's location until explicitly asked to do
so.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Since we want to be able to toggle it from the QML UI that seems like a
better place for it.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
qDebug is nice when testing on the desktop, but it has to go to the
message area on an Android device to make things easy.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
The log page have an extra top bar that is not needed.
Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
Use the view, rather than the model to check if the list is empty. This
allows us to use the property notifiers rather than a function call, and
hence fixes updating the visibility of the startpage when the listview
gets filled (or emptied).
Signed-off-by: Sebastian Kügler <sebas@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This makes sure we don't accept any input from the startpage when
interacting with the divelist -- they're really mutually exclusive.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
We want short labels here in order to allow more horizontal space to be
taken by the inputs.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|
|
This provides a bit more spacing around the logo and aligns the text to
the bottom of the logo, rather than to its horizontal center. Looks
cleaner.
Text in the login page is now aligned towards the inputs, giving a
closer connection between label and widget.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
|