mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	This just removes broken code. That file select dialog is still just a very strange idea and should be revisited at some point. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
		
			
				
	
	
		
			226 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			QML
		
	
	
	
	
	
			
		
		
	
	
			226 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			QML
		
	
	
	
	
	
// SPDX-License-Identifier: GPL-2.0
 | 
						|
import QtQuick 2.12
 | 
						|
import QtQuick.Controls 2.12
 | 
						|
import QtQuick.Controls 1.4
 | 
						|
import QtQuick.Layouts 1.12
 | 
						|
import QtQuick.Dialogs 1.3
 | 
						|
import org.subsurfacedivelog.mobile 1.0
 | 
						|
import org.kde.kirigami 2.4 as Kirigami
 | 
						|
 | 
						|
TemplatePage {
 | 
						|
	title: qsTr("Export Divelog information")
 | 
						|
 | 
						|
	property int selectedExport: ExportType.EX_DIVES_XML
 | 
						|
 | 
						|
	FileDialog {
 | 
						|
		id: saveAsDialog
 | 
						|
		folder: shortcuts.documents
 | 
						|
		selectFolder: true
 | 
						|
		onAccepted: {
 | 
						|
			manager.exportToFile(selectedExport, fileUrls, anonymize.checked)
 | 
						|
			pageStack.pop()
 | 
						|
			close()
 | 
						|
		}
 | 
						|
		onRejected: {
 | 
						|
			pageStack.pop()
 | 
						|
			close()
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	GridLayout {
 | 
						|
		id: uploadDialog
 | 
						|
		visible: false
 | 
						|
		anchors {
 | 
						|
			top: parent.top
 | 
						|
			left: parent.left
 | 
						|
			right: parent.right
 | 
						|
			margins: Kirigami.Units.gridUnit / 2
 | 
						|
		}
 | 
						|
		rowSpacing: Kirigami.Units.smallSpacing * 2
 | 
						|
		columnSpacing: Kirigami.Units.smallSpacing
 | 
						|
		columns: 3
 | 
						|
		TemplateLabel {
 | 
						|
			text: qsTr("Export credentials")
 | 
						|
			Layout.columnSpan: 3
 | 
						|
		}
 | 
						|
		TemplateLabel {
 | 
						|
			id: textUserID
 | 
						|
			text: qsTr("User ID")
 | 
						|
		}
 | 
						|
		TemplateTextField {
 | 
						|
			id: fieldUserID
 | 
						|
			Layout.columnSpan: 2
 | 
						|
			Layout.fillWidth: true
 | 
						|
			inputMethodHints: Qt.ImhNoAutoUppercase
 | 
						|
		}
 | 
						|
		TemplateLabel {
 | 
						|
			id: textPassword
 | 
						|
			text: qsTr("Password:")
 | 
						|
		}
 | 
						|
		TemplateTextField {
 | 
						|
			id: fieldPassword
 | 
						|
			Layout.columnSpan: 2
 | 
						|
			Layout.fillWidth: true
 | 
						|
			inputMethodHints: Qt.ImhSensitiveData |
 | 
						|
					  Qt.ImhHiddenText |
 | 
						|
					  Qt.ImhNoAutoUppercase
 | 
						|
			echoMode: TextInput.PasswordEchoOnEdit
 | 
						|
		}
 | 
						|
		TemplateCheckBox {
 | 
						|
			id: fieldPrivate
 | 
						|
			visible: selectedExport === ExportType.EX_DIVESHARE
 | 
						|
			Layout.fillWidth: true
 | 
						|
			text: qsTr("Private")
 | 
						|
		}
 | 
						|
		ProgressBar {
 | 
						|
			id: progress
 | 
						|
			value: 0.0
 | 
						|
			Layout.columnSpan: 2
 | 
						|
		}
 | 
						|
		TemplateLabel {
 | 
						|
			id: statusText
 | 
						|
			Layout.fillWidth: true
 | 
						|
			Layout.columnSpan: 3
 | 
						|
			wrapMode: Text.Wrap
 | 
						|
		}
 | 
						|
 | 
						|
		TemplateButton {
 | 
						|
			text: qsTr("Export")
 | 
						|
			onClicked: {
 | 
						|
				if (selectedExport === ExportType.EX_DIVELOGS_DE) {
 | 
						|
					if (fieldUserID.text !== PrefCloudStorage.divelogde_user) {
 | 
						|
						PrefCloudStorage.divelogde_user = fieldUserID.text
 | 
						|
					}
 | 
						|
					if (fieldPassword.text !== PrefCloudStorage.divelogde_pass)
 | 
						|
						PrefCloudStorage.divelogde_pass = fieldPassword.text
 | 
						|
					manager.exportToWEB(selectedExport, fieldUserID.text, fieldPassword.text, anonymize.checked)
 | 
						|
				} else {
 | 
						|
					if (fieldUserID.text !== PrefCloudStorage.diveshare_uid) {
 | 
						|
						        PrefCloudStorage.diveshare_uid = fieldUserID.text
 | 
						|
					}
 | 
						|
					PrefCloudStorage.diveshare_private = fieldPrivate.checked
 | 
						|
					manager.exportToWEB(selectedExport, fieldUserID.text, fieldPassword.text, fieldPrivate.checked)
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
		TemplateButton {
 | 
						|
			text: qsTr("Cancel")
 | 
						|
			onClicked: {
 | 
						|
				pageStack.pop()
 | 
						|
			}
 | 
						|
		}
 | 
						|
		Connections {
 | 
						|
			target: manager
 | 
						|
			onUploadFinish: {
 | 
						|
				if (success) {
 | 
						|
					pageStack.pop()
 | 
						|
				}
 | 
						|
				statusText.text = text
 | 
						|
				progress.value = 0
 | 
						|
			}
 | 
						|
			onUploadProgress: {
 | 
						|
				progress.value = percentage
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	// given that there is no native file dialog on Android and that access to
 | 
						|
	// the file system is increasingly restrictive in future versions, file based
 | 
						|
	// export really doesn't make sense on Android
 | 
						|
 | 
						|
	ColumnLayout {
 | 
						|
		id: exportSelection
 | 
						|
		visible: true
 | 
						|
		width: parent.width
 | 
						|
		spacing: 3
 | 
						|
		Layout.margins: Kirigami.Units.gridUnit / 2
 | 
						|
 | 
						|
		TemplateRadioButton {
 | 
						|
			text: qsTr("Export Subsurface XML")
 | 
						|
			visible: Qt.platform.os !== "android"
 | 
						|
			checked: true
 | 
						|
			onClicked: {
 | 
						|
				selectedExport = ExportType.EX_DIVES_XML
 | 
						|
				explain.text = qsTr("Subsurface native XML format.")
 | 
						|
			}
 | 
						|
		}
 | 
						|
		TemplateRadioButton {
 | 
						|
			text: qsTr("Export Subsurface dive sites XML")
 | 
						|
			visible: Qt.platform.os !== "android"
 | 
						|
			onClicked: {
 | 
						|
				selectedExport = ExportType.EX_DIVE_SITES_XML
 | 
						|
				explain.text = qsTr("Subsurface dive sites native XML format.")
 | 
						|
			}
 | 
						|
		}
 | 
						|
		TemplateRadioButton {
 | 
						|
			text: qsTr("Export UDDF")
 | 
						|
			visible: Qt.platform.os !== "android"
 | 
						|
			onClicked: {
 | 
						|
				selectedExport = ExportType.EX_UDDF
 | 
						|
				explain.text = qsTr("Generic format that is used for data exchange between a variety of diving related programs.")
 | 
						|
			}
 | 
						|
		}
 | 
						|
		TemplateRadioButton {
 | 
						|
			text: qsTr("Upload divelogs.de")
 | 
						|
			onClicked: {
 | 
						|
				selectedExport = ExportType.EX_DIVELOGS_DE
 | 
						|
				explain.text = qsTr("Send the dive data to divelogs.de website.")
 | 
						|
			}
 | 
						|
		}
 | 
						|
		TemplateRadioButton {
 | 
						|
			text: qsTr("Upload DiveShare")
 | 
						|
			onClicked: {
 | 
						|
				selectedExport = ExportType.EX_DIVESHARE
 | 
						|
				explain.text = qsTr("Send the dive data to dive-share.appspot.com website.")
 | 
						|
			}
 | 
						|
		}
 | 
						|
		Rectangle {
 | 
						|
			width: 1
 | 
						|
			height: Kirigami.Units.gridUnit
 | 
						|
			color: "transparent"
 | 
						|
		}
 | 
						|
		TemplateLabel {
 | 
						|
			id: explain
 | 
						|
			Layout.fillWidth: true
 | 
						|
			wrapMode: Text.Wrap
 | 
						|
		}
 | 
						|
		Rectangle {
 | 
						|
			width: 1
 | 
						|
			height: Kirigami.Units.gridUnit
 | 
						|
			color: "transparent"
 | 
						|
		}
 | 
						|
		TemplateCheckBox {
 | 
						|
			id: anonymize
 | 
						|
			Layout.fillWidth: true
 | 
						|
			text: qsTr("Anonymize")
 | 
						|
		}
 | 
						|
		TemplateButton {
 | 
						|
			text: qsTr("Next")
 | 
						|
			onClicked: {
 | 
						|
				if (selectedExport === ExportType.EX_DIVELOGS_DE) {
 | 
						|
					textUserID.visible = true
 | 
						|
					fieldUserID.visible = true
 | 
						|
					fieldUserID.text = PrefCloudStorage.divelogde_user
 | 
						|
					textPassword.visible = true
 | 
						|
					fieldPassword.visible = true
 | 
						|
					fieldPassword.text = PrefCloudStorage.divelogde_pass
 | 
						|
					anonymize.visible = false
 | 
						|
					statusText.text = ""
 | 
						|
					exportSelection.visible = false
 | 
						|
					uploadDialog.visible = true
 | 
						|
				} else if (selectedExport === ExportType.EX_DIVESHARE) {
 | 
						|
					textUserID.visible = true
 | 
						|
					fieldUserID.visible = true
 | 
						|
					fieldUserID.text = PrefCloudStorage.diveshare_uid
 | 
						|
					fieldPrivate.visible = true
 | 
						|
					fieldPrivate.checked = PrefCloudStorage.diveshare_private
 | 
						|
					exportSelection.visible = false
 | 
						|
					textPassword.visible = false
 | 
						|
					uploadDialog.visible = true
 | 
						|
				} else if (Qt.platform.os !== "android") {
 | 
						|
					saveAsDialog.open()
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |