diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2020-03-20 15:59:38 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2020-03-21 14:31:37 -0700 |
commit | 30e6102886a5a8d2fc38d2a1b0d425cdcea0fbe0 (patch) | |
tree | 9a4260262693dc39a63b211de1beecd70ae99e3c | |
parent | c77cc93eecb4ed4663110e97817fe7524046e8aa (diff) | |
download | subsurface-30e6102886a5a8d2fc38d2a1b0d425cdcea0fbe0.tar.gz |
mobile/divelist: add UI to toggle dive invalid flag
This reuses the corresponding undo command.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | mobile-widgets/qml/DiveList.qml | 8 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 10 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.h | 1 |
3 files changed, 18 insertions, 1 deletions
diff --git a/mobile-widgets/qml/DiveList.qml b/mobile-widgets/qml/DiveList.qml index 647a11ca1..383e1f930 100644 --- a/mobile-widgets/qml/DiveList.qml +++ b/mobile-widgets/qml/DiveList.qml @@ -276,6 +276,12 @@ Kirigami.ScrollablePage { manager.addDiveToTrip(currentItem.myData.id, currentItem.myData.tripBelow) } } + property QtObject toggleInvalidAction: Kirigami.Action { + text: currentItem && currentItem.myData && currentItem.myData.isInvalid ? qsTr("Mark dive as valid") : qsTr("Mark dive as invalid") + // icon: { name: "TBD" } + visible: currentItem && currentItem.myData && !currentItem.myData.isTrip + onTriggered: manager.toggleDiveInvalid(currentItem.myData.id) + } property QtObject deleteAction: Kirigami.Action { text: qsTr("Delete dive") icon { name: ":/icons/trash-empty.svg" } @@ -315,7 +321,7 @@ Kirigami.ScrollablePage { enabled: manager.redoText !== "" onTriggered: manager.redo() } - property variant contextactions: [ removeDiveFromTripAction, addDiveToTripAboveAction, addDiveToTripBelowAction, deleteAction, mapAction, tripDetailsEdit, undoAction, redoAction ] + property variant contextactions: [ removeDiveFromTripAction, addDiveToTripAboveAction, addDiveToTripBelowAction, toggleInvalidAction, deleteAction, mapAction, tripDetailsEdit, undoAction, redoAction ] function setupActions() { if (Backend.cloud_verification_status === Enums.CS_VERIFIED || Backend.cloud_verification_status === Enums.CS_NOCLOUD) { diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index 4b3286911..06bc5d8ef 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -1404,6 +1404,16 @@ void QMLManager::deleteDive(int id) changesNeedSaving(); } +void QMLManager::toggleDiveInvalid(int id) +{ + struct dive *d = get_dive_by_uniq_id(id); + if (!d) { + appendTextToLog("trying to toggle invalid flag of non-existing dive"); + return; + } + Command::editInvalid(!d->invalid, true); +} + bool QMLManager::toggleDiveSite(bool toggle) { if (toggle) diff --git a/mobile-widgets/qmlmanager.h b/mobile-widgets/qmlmanager.h index 73fa7917c..b124ea7e6 100644 --- a/mobile-widgets/qmlmanager.h +++ b/mobile-widgets/qmlmanager.h @@ -185,6 +185,7 @@ public slots: void saveChangesCloud(bool forceRemoteSync); void selectDive(int id); void deleteDive(int id); + void toggleDiveInvalid(int id); void copyDiveData(int id); void pasteDiveData(int id); bool toggleDiveSite(bool toggle); |