mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	After the previous commits, we now have a preference that nicely preserves the state of the UI, and we have the well known git_local_only global, that is used to denote whether we want to use to local repo only, or we want to interact with the online cloud as well. This commit gets rid of the now superfluous syncToCloud logic. Instead we simply set the git_local_only directly. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
		
			
				
	
	
		
			155 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			QML
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			QML
		
	
	
	
	
	
| // 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
 | |
| 
 | |
| Item {
 | |
| 	id: loginWindow
 | |
| 	height: outerLayout.height
 | |
| 
 | |
| 	property string username: login.text;
 | |
| 	property string password: password.text;
 | |
| 
 | |
| 	function saveCredentials() {
 | |
| 		prefs.cloudUserName = login.text
 | |
| 		prefs.cloudPassword = password.text
 | |
| 		prefs.cloudPin = pin.text
 | |
| 		manager.saveCloudCredentials()
 | |
| 	}
 | |
| 
 | |
| 	ColumnLayout {
 | |
| 		id: outerLayout
 | |
| 		width: loginWindow.width - Kirigami.Units.gridUnit // to ensure the full input fields are visible
 | |
| 
 | |
| 		function goToNext() {
 | |
| 			for (var i = 0; i < children.length; ++i)
 | |
| 				if (children[i].focus) {
 | |
| 					children[i].nextItemInFocusChain().forceActiveFocus()
 | |
| 					break
 | |
| 				}
 | |
| 		}
 | |
| 
 | |
| 		Keys.onReturnPressed: goToNext()
 | |
| 		Keys.onTabPressed: goToNext()
 | |
| 
 | |
| 		onVisibleChanged: {
 | |
| 			if (visible && manager.accessingCloud < 0) {
 | |
| 				Qt.inputMethod.show()
 | |
| 				login.forceActiveFocus()
 | |
| 			} else {
 | |
| 				Qt.inputMethod.hide()
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		Kirigami.Heading {
 | |
| 			text: qsTr("Cloud credentials")
 | |
| 			level: headingLevel
 | |
| 			Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
 | |
| 		}
 | |
| 
 | |
| 		Controls.Label {
 | |
| 			text: qsTr("Email")
 | |
| 			visible: !rootItem.showPin
 | |
| 			font.pointSize: subsurfaceTheme.smallPointSize
 | |
| 			color: subsurfaceTheme.secondaryTextColor
 | |
| 		}
 | |
| 
 | |
| 		Controls.TextField {
 | |
| 			id: login
 | |
| 			text: prefs.cloudUserName
 | |
| 			visible: !rootItem.showPin
 | |
| 			Layout.fillWidth: true
 | |
| 			inputMethodHints: Qt.ImhEmailCharactersOnly |
 | |
| 					  Qt.ImhNoAutoUppercase
 | |
| 		}
 | |
| 
 | |
| 		Controls.Label {
 | |
| 			text: qsTr("Password")
 | |
| 			visible: !rootItem.showPin
 | |
| 			font.pointSize: subsurfaceTheme.smallPointSize
 | |
| 			color: subsurfaceTheme.secondaryTextColor
 | |
| 		}
 | |
| 
 | |
| 		Controls.TextField {
 | |
| 			id: password
 | |
| 			text: prefs.cloudPassword
 | |
| 			visible: !rootItem.showPin
 | |
| 			echoMode: TextInput.PasswordEchoOnEdit
 | |
| 			inputMethodHints: Qt.ImhSensitiveData |
 | |
| 					  Qt.ImhHiddenText |
 | |
| 					  Qt.ImhNoAutoUppercase
 | |
| 			Layout.fillWidth: true
 | |
| 		}
 | |
| 
 | |
| 		Controls.Label {
 | |
| 			text: qsTr("PIN")
 | |
| 			visible: rootItem.showPin
 | |
| 		}
 | |
| 		Controls.TextField {
 | |
| 			id: pin
 | |
| 			text: ""
 | |
| 			Layout.fillWidth: true
 | |
| 			visible: rootItem.showPin
 | |
| 		}
 | |
| 
 | |
| 		RowLayout {
 | |
| 			Layout.fillWidth: true
 | |
| 			Layout.margins: Kirigami.Units.smallSpacing
 | |
| 			spacing: Kirigami.Units.smallSpacing
 | |
| 			visible: rootItem.showPin
 | |
| 			SsrfButton {
 | |
| 				id: registerpin
 | |
| 				text: qsTr("Register") 
 | |
| 				onClicked: {
 | |
| 					saveCredentials()
 | |
| 				}
 | |
| 			}
 | |
| 			Controls.Label {
 | |
| 				text: ""  // Spacer between 2 button groups
 | |
| 				Layout.fillWidth: true
 | |
| 			}
 | |
| 			SsrfButton {
 | |
| 				id: cancelpin
 | |
| 				text: qsTr("Cancel")
 | |
| 				onClicked: {
 | |
| 					prefs.cancelCredentialsPinSetup()
 | |
| 					rootItem.returnTopPage()
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		RowLayout {
 | |
| 			Layout.fillWidth: true
 | |
| 			Layout.margins: Kirigami.Units.smallSpacing
 | |
| 			spacing: Kirigami.Units.smallSpacing
 | |
| 			visible: !rootItem.showPin
 | |
| 
 | |
| 			SsrfButton {
 | |
| 				id: signin_register_normal
 | |
| 				text: qsTr("Sign-in or Register")
 | |
| 				onClicked: {
 | |
| 					saveCredentials()
 | |
| 				}
 | |
| 			}
 | |
| 			Controls.Label {
 | |
| 				text: ""  // Spacer between 2 button groups
 | |
| 				Layout.fillWidth: true
 | |
| 			}
 | |
| 			SsrfButton {
 | |
| 				id: toNoCloudMode
 | |
| 				text: qsTr("No cloud mode")
 | |
| 				onClicked: {
 | |
| 					manager.setGitLocalOnly(true)
 | |
| 					PrefCloudStorage.cloud_auto_sync = false
 | |
| 					prefs.credentialStatus = CloudStatus.CS_NOCLOUD
 | |
| 					manager.saveCloudCredentials()
 | |
| 					manager.openNoCloudRepo()
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| }
 |