aboutsummaryrefslogtreecommitdiffstats
path: root/mobile-widgets
AgeCommit message (Collapse)Author
2021-09-02mobile: fix broken cylinder name tracking in dive editGravatar Dirk Hohndel
Prior to this change, we had two different cylinder lists as models for drop down boxes - one that prepends the "no default cylinder" entry (which we need for setting up no default cylinder to be used in the app), and another one that only includes actual cylinders. The problem occured if a dive is created before the first time we edit an existing dive: in this case we are applying indices across the two models, but the indices are of course off by one; this results in actually picking the wrong cylinder. So each time we try to edit a dive, we end up with the previous cylinder in the list. This commit simplifies the code by having only one place where we create list of cylinder names (which is then used as the model for the combo box). It also uses more logical names for the two 'flavors' of this list to make it clear which one is supposed to be used (the regular list when editing or adding dives, the one with the "no default cylinder" entry prependet for the Settings page). Reported-by: Brian Fransen Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-08-18mobile: don't quit on back button in Statistics modeGravatar Dirk Hohndel
Fixes #3192 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-08-18mobile: tweak line spacingGravatar Dirk Hohndel
When strings in dive details wrap, the line spacing is too tight in some circumstances. While not perfect, this change improves the situation somewhat. See #3263 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-08-18mobile: add ability to edit tagsGravatar Dirk Hohndel
We already showed the tags, but we didn't allow the user to edit them. This tries hard not to create inconsistent or illogical tags by trimming white space and being careful with how the tags are added. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-08-18mobile: make cloud timeouts more consistentGravatar Dirk Hohndel
In the mobile version we should always allow a little more wait time for the cloud server - there just seem to be more issues with response times on mobile devices, especially when in places with poor data reception (which isn't uncommon for dive sites). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-07-23cleanup: replace membuffer by membufferpp in C-codeGravatar Berthold Stoeger
Thus, the membuffer data is automatically freed when going out of scope - one thing less to worry about. This fixes one use-after-free bug in uploadDiveLogsDE.cpp and one extremely questionable practice in divetooltipitem.cpp: The membuffer was a shared instance across all instances of the DiveToolTipItem. Remves unnecessary #include directives in files that didn't even use membuffer. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2021-07-03cleanup: update copyrightsGravatar Dirk Hohndel
That should have been done six months ago. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-23mobile/UI: show result of manual syncGravatar Dirk Hohndel
Since we no longer show the noisy git updates to the user, it has become harder for them to know whether a sync to the cloud was successful. Since a manual sync will never show the new 'what did you change and here's how you undo it' notification, it seems easy enough to simply show a status update. This adds a passive notification with no action button after the user either uses the main menu or pulling down on the dive list in order to trigger a manual sync. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-23mobile/debugging: copy GPS fixes to clipboardGravatar Dirk Hohndel
The goal is to enable a user experiencing crashes when applying GPS data to their dive log to make all necessary data available to the developers. Hopefully the clipboard is large enough to hold all the data. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/UI: correctly update title bar font sizeGravatar Dirk Hohndel
Simply force it to use the default font, which is bound to the application font, which we SHOULD be updating when changing the regular font size for the app, anyway. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/cleanup: make theme test page work in dark modeGravatar Dirk Hohndel
Not really user visible, but still, that looked ridiculous. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/statistics: force redraw after rotationGravatar Dirk Hohndel
Sometimes (and it's unclear why that happens) after rotation the stats widget is blank. Setting the first variable back to itself appears enough to ensure that the statistics view is redrawn. Try to do that programatically after a short delay. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/statistics: bare minimum dark theme supportGravatar Dirk Hohndel
The statistics themselves still are in a light theme, but at least the rest of the UI now works in both regular and dark themes. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/kirigami: fix width of passive notificationGravatar Dirk Hohndel
If we have a button on the notification to trigger an action, we need to make sure there's space for that button. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/UI: add button to change notificationGravatar Dirk Hohndel
This is fun... with just a tiny bit of 'magic text parsing' we can allow the backend code to add a button to the notification that will open the context menu that will make it super obvious to the user how they can undo an operation. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/UI: show notification with changes made after saveGravatar Dirk Hohndel
Since we save after every operation in the mobile app, this allows us to tell the user what we actually saved - and we can remind the user that they can undo/redo the last operation. The code gets more complicated because in the case that the operation that triggered this change was an undo, we need to show the redo text to describe what we are saving, and must point the user to the redo operation. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/UI: normally don't show git progress info to userGravatar Dirk Hohndel
This isn't really useful for normal users and with the new 'multiple notifications stay visible' feature in Kirigami it creates a really weird and distracting user experience. We should show the user a summart of what we did instead. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/cleanup: remove outdated commentGravatar Dirk Hohndel
In commit 24eac8df87 ("mobile: remove overwriting of line special case in ui-notification") the code doing the line replacement was removed, but the comment above that code wasn't updated. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/git-storage: ensure correct commit messages get savedGravatar Dirk Hohndel
In order to get the undo stack information into the commit message, we need to actually call Command::init() to set up the callback. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/UI: move dive delete to context menuGravatar Dirk Hohndel
Having this as the right action button (same one used for 'cancel' in the edit screen) made it too likely to inadvertantly delete a dive. And outside of testing, wanting to delete a dive really shouldn't be all that common an operation. So remove the function from the action button and place it into the context menu instead, right next to the undo action so the user also is aware that there is an undo option. Suggested-by: Peter Zaal <peter.zaal@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/statistics: fix layout warningGravatar Dirk Hohndel
The filler element was placed incorrectly (in a position already used) and worse the logic for its sizing was wrong. This gets rid of a warning and creates the intended layout. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/cleanup: fix cylinder visibility in dive editGravatar Dirk Hohndel
And wow isn't that a nice improvement in the code. Also has the benefit of actually doing the right thing and not creating unwanted white space for missing cylinders. And does away with all these warnings about coercion (after all, we were checking against the wrong value. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/edit: fix broken screen repositioningGravatar Dirk Hohndel
In commit 622e5aab69 ("mobile/cleanup: remove more noisy debug output") I had good intentions, but missed the fact that in order to access the 'verbose' variable from QML I needed to use manager.verboseEnabled. The resulting syntax error went unnoticed and broke the screen repositioning when the keyboard opens on mobile devices. Worse, I called a non existing method to do the logging of debug information. And to top it all off, when I fixed the positioning algorithm in commit 765c4f9704 ("mobile/UI: fix the logic to keep input visible"), I forgot to fix the near identical logic for the TextArea for the notes. Fail on so many levels. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/UI: update dive edit layoutGravatar Dirk Hohndel
This feels much more responsive to various screen widths to me. Instead of a fixed grid this is now a Flow that is tries to make much better use of the space available on the user's device. It's not always perfect, but to me at least a massive improvement. The commit is almost unreadable because of the re-indentation and the move of a block of fields to earlier in the form (as that made it much easier to flow everything). But with show -w you can get a better idea. We have a Flow around all the fields, we pair each label with the corresponding input field, and then have a few additional Flows to ensure that the cylinders always start in the first column. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/UI: simplify and cleanup SettingsGravatar Dirk Hohndel
This is both cleaner and looks better. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/UI: improve layout of styled ComboBox and TextFieldGravatar Dirk Hohndel
This makes the TextFields (and the editable ComboBoxes with them) have a tighter visual experience. It also moves the indicater closer to the right edge in the ComboBox and doesn't use preferredWidth for the slim combo box as that implies a maximum width which could lead to unnecessary clipping. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/UI: don't change the window size when gridUnits changeGravatar Dirk Hohndel
QML and Kirigami trigger a change of our application window size if we manually override the gridUnit. Which of course is NOT what we want, so immediately undo that after changing the gridUnit to prevent bad side effects. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/UI: correctly scale UI without restartGravatar Dirk Hohndel
The fact that the rescaling in the settings gave different results from what we got after a restart really should have been a dead giveaway that the code was fundamentally flawed. With this, if the user picks smaller, regular, or larger they now always get the same, consistent values for gridUnit and font sizes. This also gives up on the idea that we can just force the gridUnit to be smaller to make things work if the font (which drives the gridUnit) is too big for a screen. That fundamentally cannot work and gives a horrible UI experience. So instead simply warn the user and continue with matching font / gridUnit, which will still give a bad experience, but at least we told the user about it and didn't pretend this was ok or fixable. Finally, this gets the factors right when switching from smaller to larger or back, without stopping at regular on the way. One odd side effect of this code is that under certain conditions (number of columns changes) the display window when running mobile on desktop will resize. That's kind of odd, but as that is not /really/ our target platform, for now I'd consider it acceptable. But it does deserve more investigation. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/UI: remember the system default font sizeGravatar Dirk Hohndel
We need to do this before the preferences are loaded, or the system default size is lost. Given that our other sizes are all relative to this value, that would be a problem. With this we can now ensure that we always have the right font size for smaller, regular, and larger theme settings. Also removes some obsolete commented out code. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/UI: offer more font sizesGravatar Dirk Hohndel
As it turns out, we used to get the font scaling completely wrong. As a result we got got ~72% and ~132% instead of the intended 85% and 115%. So now people have both options, in each case with matching gridUnit (and therefore visual spacing), and font size. Also visualize the font size by rendering the button text accordingly. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/UI: don't double apply the font scale factorGravatar Dirk Hohndel
The mobile scale code had a fundamental flaw: we applied the scale factor once to gridUnit, but twice to the font size. So effectively we had font sizes of 72% and 132% (all of course then rounded to integers for no good reason) instead of the intended 85% and 115%. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile/UI: add visualization of font size vs gridUnitGravatar Dirk Hohndel
This seems harmless and obvious, but it shows that for the last however many years our smaller/regular/larger font change was bogus and broken. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-19mobile: add GF fields for ceiling calculationGravatar Doug Junkins
Adds fields to the advanced preferences page to modify GFLow and GFHigh for the Buhlmann decompression model for calculating ceilings. Updated preferences code to set the Buhlmann parameters in core/deco.c when the GF prefs are updated. Signed-off-by: Doug Junkins <douglas.junkins@gmail.com>
2021-01-13mobile/cleanup: remove more noisy debug outputGravatar Dirk Hohndel
The repositioning message when a virtual keyboard opens is useful enough to keep it and just hide it unless in verbose mode. The others have all outlived their usefulness. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-13mobile/GPS: fix two errors in the GPS handlingGravatar Dirk Hohndel
First, the time zone adjustment was wrong - this as written could only ever have worked in UTC or by pure chance. Second, the order of alerting the UI of the availability of a GPS fix was also incorrect creating a race between the UI and our data structures. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-13mobile/statistics: allow chart selection for statisticsGravatar Dirk Hohndel
Based on a dummy commit from Berthold, this provides a styled popup of the available chart types for the current variables. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-13mobile/statistics: make charts model available to UIGravatar Berthold Stoeger
Create a QML ChartListModel in the StatisticsPage and pass that to the StatsManager on initialization. [extracted from a slightly larger commit] Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-13mobile/statistics: start with dives per year bar chartGravatar Dirk Hohndel
That seems to be the most commonly usefule chart. This also removes some noisy log messages; these were super useful during development, but should have been merged. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-13mobile/statistics: fix layout issue in wide modeGravatar Dirk Hohndel
After spending so much time trying to make things work well on smaller screens I completely missed that there was an off by one error making the statistics display way too small on larger tablets in landscape mode. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-12mobile/UI: small adjustments, using the slim combo boxGravatar Dirk Hohndel
This changes most readonly combo boxes to use the smaller, more modern looking TemplateSlimComboBox and makes some layout adjustments on a few pages to overall create a better UI. A lot of this is just cleaning up things that were rather rough in the first place. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-12mobile/UI: better sizing for Global Drawer header imageGravatar Dirk Hohndel
Especially on smaller screens in landscape mode (which is nice for statistics) the image took up way too much space. Now it gets cropped in a way that makes sure all the information text is visible, but not too much space is stolen from the rest of the menu. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-12mobile/UI: make the comboboxes slightly more modern lookingGravatar Dirk Hohndel
The smaller indicator and more rounded corners seem more pleasant. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-12mobile/UI: add another variation of the combo boxGravatar Dirk Hohndel
This one is designed to be fixed size and space efficient, non editable. It's used in the statistics page for now and looks much better than what we have elsewhere, so the style should propagate to the rest of them as well, but this is trickier for the once that are editable - and of course the fixed width might also not be appropriate in other places. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-12mobile/statistics: fix crash in dropdownsGravatar Berthold Stoeger
The code was protecting against the wrong member being NULL. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-10mobile/UI: add settings to display profile ceilingGravatar Dirk Hohndel
So far only DC provided ceiling information was available and visibility of that was simply inherited via cloud storage from the desktop. With this the user can set both DC reported and calculated ceilings in the advanced settings in the mobile app. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-10mobile/UI: add signal to redraw profileGravatar Dirk Hohndel
This allows us to force a redraw of the dive profile when settings change that require a refresh of the profile. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-10mobile/statistics: small UI improvementsGravatar Dirk Hohndel
This gets us better log messages and better spacing - but it's far from good and all of this should be squashed into one working version in the end. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2021-01-10statistics/mobile: add variable2 operations combo-boxGravatar Berthold Stoeger
Copy paste of the other combo boxes. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2021-01-10statistics/mobile: set currentIndex of QML combo boxesGravatar Berthold Stoeger
Use Q_PROPERTYs of the StatsManager to correctly set the current index of comboboxes after a state changed. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2021-01-10mobile/statistics: add simple iconGravatar Dirk Hohndel
This doesn't look great, but it's already part of the breeze-icons, so it's very easy to add - and it's better than no icon. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>