aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2020-03-10mobile UI: add divelist context drawer action to edit trip detailsGravatar Dirk Hohndel
For now this only shows the trip details. They can be edited on the page, but there is no way to save those edits, yet. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile models: add trip location and notesGravatar Dirk Hohndel
First step towards making those accessible and then editable. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile/dive-list: add context menu when long-pressing on tripGravatar Dirk Hohndel
This doesn't show the dive specific actions and sets the stage for trip edit actions. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile UI: don't call into the event loopGravatar Dirk Hohndel
While this has worked fine for a long time, it now suddenly seems to trigger crashes. So let's not do that (there are a number of discussions online that talk about how this could indeed lead to BadThings(tm) happening. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile/dive-list: allow moving dives between tripsGravatar Dirk Hohndel
A dive that is already in a trip can directly be moved into the trip above or below. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile UI: more context actions in dive listGravatar Dirk Hohndel
This adds the ability to delete a dive and to show its location on the map directly from the dive list. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile/dive-list: long press on dive selects and opens context drawerGravatar Dirk Hohndel
This way one can execute dive list manipulations without the detour to the dive details screen. For example you can long-press on a dive and then add it to a trip or remove it from a trip. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile UI: fix autoclose of context drawerGravatar Dirk Hohndel
The default policy closes the context drawer if there is a button release outside the context drawer area. That messes with the intended UI. For us a much more useful behavior is to have the next click outside of the drawer close the drawer. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile UI: add context menu to dive listGravatar Dirk Hohndel
This one exposes undo/redo as well as some basic trip manipulations, very similar to what's already available on the dive details page. Except that here it also makes sense to add a selected dive to a trip above or below (if those exist and the dive isn't already in a trip). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile UI: allow adding a dive to a trip from context menuGravatar Dirk Hohndel
Right now this is only available on the DiveDetails screen. The menu entries are only enabled if there is such a trip to add the dive to (and if the dive isn't already part of a trip). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile/trip-handling: add helper to add dive to a tripGravatar Dirk Hohndel
This again uses an undo command and should be completely symmetrical to removing a dive from a trip. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10dive models: add helper role to find trip above or below diveGravatar Dirk Hohndel
This is only used in the mobile UI where the sort direction is fixed and we refer to dives based on the tree model. So the terms used and the concepts that these rely on should be guaranteed to be valid. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10core/trip handling: add helper function to get trip from idGravatar Dirk Hohndel
In the QML code we pass ids around. I had assumed that there already was a reverse lookup function, but I wasn't able to find it. So I added it. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile UI: add ability to remove dive from its tripGravatar Dirk Hohndel
If we remove the newest dive from its trip, it becomes inaccessible in the app, but the dive data saved to disk appears to be correct. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10core: add 'diveInTrip' role to underlying data modelGravatar Dirk Hohndel
This will allow us to offer differentiated options in the context menu. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile UI: only show context menu when viewing a diveGravatar Dirk Hohndel
In add and edit mode this is confusing and wrong. There is a bug in Kirigami that creates lots of bogus error message about missing mainFlickable. That needs to be patched out. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile/filter: use signal to reload filterGravatar Berthold Stoeger
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-10mobile: remove dive::collapsedGravatar Berthold Stoeger
This was used by the old dive-list to mark collapsed entries. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-10mobile UI: set the correct location string when editing divesGravatar Dirk Hohndel
In some situations we ended up with the wrong location name. One way to reproduce the problem was to edit an existing dive location to be a substring of an existing location name. Save the dive, then immediately edit it again. The wrong location would be filled in. The code here looks strange and unnecessary, but it seems to fix the issue. The aliases don't seem to make the code any easier to understand. This replaces them in the case of the location combo box with direct accesses to the data on the DiveDetailsEdit page. It may be worth removing all of them. The locationModel alias was unused. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile UI: add context menu to DiveDetailsGravatar Dirk Hohndel
The undo and redo action actually work already. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile: replace undoDelete() with generic undo()Gravatar Dirk Hohndel
Since we are using the existing command infrastructure, this isn't specific to undoing a delete. This commit renames the function and removes its use in the UI, the next commit will then add the generic undo to the UI. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile UI: make the text of the undo/redo action available to QMLGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10core/undo: provide access to the QUndoStackGravatar Dirk Hohndel
This is used by the mobile UI to get notifications when the undo text changes. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile/divelist: add context drawerGravatar Dirk Hohndel
This is just pulling in the object so it can later be used on other pages. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile: remove no longer used DiveListModelGravatar Berthold Stoeger
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-10mobile/filter: connect directly to filterGravatar Berthold Stoeger
Since the divelist model is now placed on top of the common models, we can directly reset the filter. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-10mobile: remove selectedDiveTimeStamp logicGravatar Berthold Stoeger
Since the selection is now handled in the core this is not needed anymore. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-10mobile: remove updateSelectedDive logicGravatar Berthold Stoeger
Selection is now be handled by the core. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-10mobile/undo: create EditDive commandGravatar Berthold Stoeger
Command that just swaps two dives. This is rather complex, as for example a dive site might be created. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-10mobile/divelist: better handling of selection changeGravatar Dirk Hohndel
This still has an odd bug. When we swipe the dive details to change the selected dive and that action causes a trip to expand or collapse, then the color change / highlight in the dive list isn't updated correctly, even though the log file indicates that we made the necessary changes. This also changes the coloring of the selected dive; having the same coloring as a trip was very confusing. This is a bit stark, but it clearly communicates the distinction. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile: use undo-command to paste divesGravatar Berthold Stoeger
The UI for this is currently disabled (this was lost in the dive list rewrite). Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-10mobile: random white space cleanupGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile: don't disconnect model on downloadGravatar Berthold Stoeger
That makes no sense anymore. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile: reduce the number of model reloads when opening cloud dataGravatar Berthold Stoeger
The whole load from cloud thing will have to be audited. It appears to me that there are way too many model resets...? The only thing that is left is dive editing. Let's do that next. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-10mobile UI: use undo-command for adding dive.Gravatar Berthold Stoeger
Instead of using the model, copy the code we have in the desktop version which manually creates a 15m/40min dive and passes that to the addDive undo command. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile UI: don't hide dive view when deleting diveGravatar Berthold Stoeger
The next dive is automatically shown anyway. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-10mobile/divelist: select dive after swipeGravatar Berthold Stoeger
After swiping through the dive list, select the currently visible dive. Thus, the dive is highlighted in the overview pane. The connection with the QMLManager feels atrocious, but I would prefer to have as little logic in QML as possible. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-10mobile/divelist: don't set currentIndex on undo of dive deletionGravatar Berthold Stoeger
The core sets the current dive when undoing something. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-10mobile/divelist: remove showDiveIndex QML-functionGravatar Berthold Stoeger
The currently shown dive is now controlled by the core. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile/divelist: implement model that shows all dives in trip-orderGravatar Berthold Stoeger
MobileSwipeModel is probably not an ideal name, but all I could come up with. One of the main complications here is that our list is reversed with respect to the source model. We should change that one day. Probably by moving the sorting down to the core-model. Since looking up the source row is somewhat expensive, the lookup is cached for a single entry because accesses come in bursts for a single dive. This should be a good compromise and avoids keeping track of a full row-to-dive array. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile/divelist: derive MobileListModel from a base modelGravatar Berthold Stoeger
In analogy to the DiveTripModel split, derive MobileListModel from a base model that exports the roles, etc. This will allow us to create a second model, which nevertheless possesses the same roles and all that without too much code duplication. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-10mobile/divelist: create memory management class for modelsGravatar Berthold Stoeger
Since we want to add a second model, but not have to manage two models everywhere, create a class MobileModels that contains both of the models. When calling reset() on that class, it will reset both of the models, etc. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile/divedetails: send current-dive changes up to mobile UIGravatar Berthold Stoeger
To unify mobile and desktop, let's use the current_dive variable of the core to indicate the current dive. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile/divelist: when clicking on a row, use select_single_dive()Gravatar Berthold Stoeger
This is a small step in unifying mobile and desktop. I'm unsure whether it is correct to play this via the QMLManager or whether we should call form QML directly into the model? Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile/divelist: switch to the correct modelGravatar Berthold Stoeger
This obviously breaks everything, but now we can start fixing things. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-10mobile: unify download code on mobile and desktopGravatar Berthold Stoeger
Use the undo-command for importing dives also on mobile. This should make the whole disconnect-model shenigans unnecessary. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-10undo: clear undo-stack when clearing dive dataGravatar Berthold Stoeger
When the dive data is cleared, all pointers in the undo-stack become stale. Desktop explicitly called Command::clear() in that case, but mobile doesn't. Thus, move the clear() call into DiveTripModelBase::clear() Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-09mobile: use undo-command to apply gps fixesGravatar Berthold Stoeger
The goal is to send the signal for the correct dives / divesites and thus not having to reload the whole model. Right now the mobile UI does not yet catch the diveSiteChanged signals. [Dirk Hohndel: small fix to ensure that we trigger a save to storage] Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-09undo: implement ApplyGPSFixes undo commandGravatar Berthold Stoeger
This gets a list of dives with GPS fixes and 1) Adds new dive sites if the dive hasn't a dive site set 2) Edits the location of the dive site Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-03-09GPS fixes: split collecting GPS fixes into own functionGravatar Berthold Stoeger
This finishes the spliting of the GPS fix application: One function for collecting the fixes, one for application. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>