aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mobile-widgets/qml/CopySettings.qml168
-rw-r--r--mobile-widgets/qml/DiveList.qml4
-rw-r--r--mobile-widgets/qml/main.qml5
-rw-r--r--mobile-widgets/qml/mobile-resources.qrc1
-rw-r--r--mobile-widgets/qmlmanager.cpp88
-rw-r--r--mobile-widgets/qmlmanager.h10
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);