diff options
author | Miika Turkia <miika.turkia@gmail.com> | 2018-11-18 07:42:15 +0200 |
---|---|---|
committer | mturkia <miika.turkia@gmail.com> | 2018-12-21 09:13:37 +0200 |
commit | 8e7a9a4f4cdd4daba1fc1f45a38707b93dfb369d (patch) | |
tree | 5b4cd6b991a3c2eddff24ade9babe46035d8ee79 | |
parent | de813c27ce402a099f2b035235a7a27da06f649e (diff) | |
download | subsurface-8e7a9a4f4cdd4daba1fc1f45a38707b93dfb369d.tar.gz |
Mobile: UI for selecting what to copy-paste
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
-rw-r--r-- | mobile-widgets/qml/CopySettings.qml | 168 | ||||
-rw-r--r-- | mobile-widgets/qml/DiveList.qml | 4 | ||||
-rw-r--r-- | mobile-widgets/qml/main.qml | 5 | ||||
-rw-r--r-- | mobile-widgets/qml/mobile-resources.qrc | 1 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.cpp | 88 | ||||
-rw-r--r-- | mobile-widgets/qmlmanager.h | 10 |
6 files changed, 268 insertions, 8 deletions
diff --git a/mobile-widgets/qml/CopySettings.qml b/mobile-widgets/qml/CopySettings.qml new file mode 100644 index 000000000..172a0173c --- /dev/null +++ b/mobile-widgets/qml/CopySettings.qml @@ -0,0 +1,168 @@ +// SPDX-License-Identifier: GPL-2.0 +import QtQuick 2.6 +import QtQuick.Controls 2.2 as Controls +import QtQuick.Window 2.2 +import QtQuick.Dialogs 1.2 +import QtQuick.Layouts 1.2 +import org.kde.kirigami 2.4 as Kirigami +import org.subsurfacedivelog.mobile 1.0 + +Kirigami.ScrollablePage { + objectName: "CopySettings" + id: settingsCopy + + title: qsTr("Copy Settings") + background: Rectangle { color: subsurfaceTheme.backgroundColor } + + property real gridWidth: settingsCopy.width - Kirigami.Units.gridUnit + + ColumnLayout { + width: gridWidth + + GridLayout { + id: copy_settings + columns: 2 + Controls.Label { + text: qsTr("Selection for copy-paste") + font.pointSize: subsurfaceTheme.headingPointSize + font.weight: Font.Light + color: subsurfaceTheme.textColor + Layout.topMargin: Kirigami.Units.largeSpacing + Layout.bottomMargin: Kirigami.Units.largeSpacing / 2 + Layout.columnSpan: 2 + } + + Controls.Label { + text: qsTr("Dive site") + font.pointSize: subsurfaceTheme.regularPointSize + Layout.preferredWidth: gridWidth * 0.75 + } + SsrfSwitch { + checked: manager.toggleDiveSite(false) + Layout.preferredWidth: gridWidth * 0.25 + onClicked: { + manager.toggleDiveSite(true) + } + } + Controls.Label { + text: qsTr("Notes") + font.pointSize: subsurfaceTheme.regularPointSize + Layout.preferredWidth: gridWidth * 0.75 + } + SsrfSwitch { + checked: manager.toggleNotes(false) + Layout.preferredWidth: gridWidth * 0.25 + onClicked: { + manager.toggleNotes(true) + } + } + Controls.Label { + text: qsTr("Dive master") + font.pointSize: subsurfaceTheme.regularPointSize + Layout.preferredWidth: gridWidth * 0.75 + } + SsrfSwitch { + checked: manager.toggleDiveMaster(false) + Layout.preferredWidth: gridWidth * 0.25 + onClicked: { + manager.toggleDiveMaster(true) + } + } + Controls.Label { + text: qsTr("Buddy") + font.pointSize: subsurfaceTheme.regularPointSize + Layout.preferredWidth: gridWidth * 0.75 + } + SsrfSwitch { + checked: manager.toggleBuddy(false) + Layout.preferredWidth: gridWidth * 0.25 + onClicked: { + manager.toggleBuddy(true) + } + } + Controls.Label { + text: qsTr("Suit") + font.pointSize: subsurfaceTheme.regularPointSize + Layout.preferredWidth: gridWidth * 0.75 + } + SsrfSwitch { + checked: manager.toggleSuit(false) + Layout.preferredWidth: gridWidth * 0.25 + onClicked: { + manager.toggleSuit(true) + } + } + Controls.Label { + text: qsTr("Rating") + font.pointSize: subsurfaceTheme.regularPointSize + Layout.preferredWidth: gridWidth * 0.75 + } + SsrfSwitch { + checked: manager.toggleRating(false) + Layout.preferredWidth: gridWidth * 0.25 + onClicked: { + manager.toggleRating(true) + } + } + Controls.Label { + text: qsTr("Visibility") + font.pointSize: subsurfaceTheme.regularPointSize + Layout.preferredWidth: gridWidth * 0.75 + } + SsrfSwitch { + checked: manager.toggleVisibility(false) + Layout.preferredWidth: gridWidth * 0.25 + onClicked: { + manager.toggleVisibility(true) + } + } + Controls.Label { + text: qsTr("Tags") + font.pointSize: subsurfaceTheme.regularPointSize + Layout.preferredWidth: gridWidth * 0.75 + } + SsrfSwitch { + checked: manager.toggleTags(false) + Layout.preferredWidth: gridWidth * 0.25 + onClicked: { + manager.toggleTags(true) + } + } + Controls.Label { + text: qsTr("Cylinders") + font.pointSize: subsurfaceTheme.regularPointSize + Layout.preferredWidth: gridWidth * 0.75 + } + SsrfSwitch { + checked: manager.toggleCylinders(false) + Layout.preferredWidth: gridWidth * 0.25 + onClicked: { + manager.toggleCylinders(true) + } + } + Controls.Label { + text: qsTr("Weights") + font.pointSize: subsurfaceTheme.regularPointSize + Layout.preferredWidth: gridWidth * 0.75 + } + SsrfSwitch { + checked: manager.toggleWeights(false) + Layout.preferredWidth: gridWidth * 0.25 + onClicked: { + manager.toggleWeights(true) + } + } + } + + Rectangle { + color: subsurfaceTheme.darkerPrimaryColor + height: 1 + opacity: 0.5 + Layout.fillWidth: true + } + + Item { + height: Kirigami.Units.gridUnit * 6 + } + } +} diff --git a/mobile-widgets/qml/DiveList.qml b/mobile-widgets/qml/DiveList.qml index 3d29a1ec4..528716c4f 100644 --- a/mobile-widgets/qml/DiveList.qml +++ b/mobile-widgets/qml/DiveList.qml @@ -232,6 +232,10 @@ Kirigami.ScrollablePage { timer.stop() manager.copyDiveData(dive.id) } + onPressAndHold: { + globalDrawer.close() + pageStack.push(settingsCopyWindow) + } } } Rectangle { diff --git a/mobile-widgets/qml/main.qml b/mobile-widgets/qml/main.qml index a954dfbc4..8c67c9947 100644 --- a/mobile-widgets/qml/main.qml +++ b/mobile-widgets/qml/main.qml @@ -592,6 +592,11 @@ if you have network connectivity and want to sync your data to cloud storage."), visible: false } + CopySettings { + id: settingsCopyWindow + visible: false + } + About { id: aboutWindow visible: false diff --git a/mobile-widgets/qml/mobile-resources.qrc b/mobile-widgets/qml/mobile-resources.qrc index beb1d93f0..989a7e936 100644 --- a/mobile-widgets/qml/mobile-resources.qrc +++ b/mobile-widgets/qml/mobile-resources.qrc @@ -15,6 +15,7 @@ <file>main.qml</file> <file>MapPage.qml</file> <file>Settings.qml</file> + <file>CopySettings.qml</file> <file>ThemeTest.qml</file> <file>StartPage.qml</file> <file>SsrfButton.qml</file> diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index f2f5fe897..a133a5479 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -1317,6 +1317,86 @@ void QMLManager::deleteDive(int id) changesNeedSaving(); } +bool QMLManager::toggleDiveSite(bool toggle) +{ + if (toggle) + what.divesite = what.divesite ? false : true; + + return what.divesite; +} + +bool QMLManager::toggleNotes(bool toggle) +{ + if (toggle) + what.notes = what.notes ? false : true; + + return what.notes; +} + +bool QMLManager::toggleDiveMaster(bool toggle) +{ + if (toggle) + what.divemaster = what.divemaster ? false : true; + + return what.divemaster; +} + +bool QMLManager::toggleBuddy(bool toggle) +{ + if (toggle) + what.buddy = what.buddy ? false : true; + + return what.buddy; +} + +bool QMLManager::toggleSuit(bool toggle) +{ + if (toggle) + what.suit = what.suit ? false : true; + + return what.suit; +} + +bool QMLManager::toggleRating(bool toggle) +{ + if (toggle) + what.rating = what.rating ? false : true; + + return what.rating; +} + +bool QMLManager::toggleVisibility(bool toggle) +{ + if (toggle) + what.visibility = what.visibility ? false : true; + + return what.visibility; +} + +bool QMLManager::toggleTags(bool toggle) +{ + if (toggle) + what.tags = what.tags ? false : true; + + return what.tags; +} + +bool QMLManager::toggleCylinders(bool toggle) +{ + if (toggle) + what.cylinders = what.cylinders ? false : true; + + return what.cylinders; +} + +bool QMLManager::toggleWeights(bool toggle) +{ + if (toggle) + what.weights = what.weights ? false : true; + + return what.weights; +} + void QMLManager::copyDiveData(int id) { m_copyPasteDive = get_dive_by_uniq_id(id); @@ -1325,14 +1405,6 @@ void QMLManager::copyDiveData(int id) return; } - // TODO: selection dialog for the data to be copied - what.divemaster = true; - what.buddy = true; - what.suit = true; - what.tags = true; - what.cylinders = true; - what.weights = true; - setNotificationText("Copy"); } diff --git a/mobile-widgets/qmlmanager.h b/mobile-widgets/qmlmanager.h index 1f2790854..7d14b9eb9 100644 --- a/mobile-widgets/qmlmanager.h +++ b/mobile-widgets/qmlmanager.h @@ -165,6 +165,16 @@ public slots: void deleteDive(int id); void copyDiveData(int id); void pasteDiveData(int id); + bool toggleDiveSite(bool toggle); + bool toggleNotes(bool toggle); + bool toggleDiveMaster(bool toggle); + bool toggleBuddy(bool toggle); + bool toggleSuit(bool toggle); + bool toggleRating(bool toggle); + bool toggleVisibility(bool toggle); + bool toggleTags(bool toggle); + bool toggleCylinders(bool toggle); + bool toggleWeights(bool toggle); bool undoDelete(int id); QString addDive(); void addDiveAborted(int id); |