diff options
-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); |