232 lines
5.8 KiB
QML
232 lines
5.8 KiB
QML
|
import QtQuick 2.7
|
||
|
import QtQuick.Controls 2.2
|
||
|
import QtQuick.Layouts 1.1
|
||
|
|
||
|
import Governikus.Global 1.0
|
||
|
import Governikus.TitleBar 1.0
|
||
|
|
||
|
SectionPage {
|
||
|
id: rootPage
|
||
|
leftTitleBarAction: TitleBarAction { state: "back"; onClicked: firePop() }
|
||
|
headerTitleBarAction: TitleBarAction { text: qsTr("Configure remote service") + settingsModel.translationTrigger; font.bold: true }
|
||
|
|
||
|
onVisibleChanged: remoteServiceModel.detectRemoteDevices = visible
|
||
|
|
||
|
Connections {
|
||
|
target: remoteServiceModel
|
||
|
onFirePairingFailed: qmlExtension.showFeedback(qsTr("Pairing failed. Please try again to activate pairing on your other device and enter the shown pairing code."))
|
||
|
}
|
||
|
|
||
|
content: Column {
|
||
|
id: mainColumn
|
||
|
width: rootPage.width
|
||
|
padding: Constants.pane_padding
|
||
|
spacing: Constants.component_spacing
|
||
|
|
||
|
readonly property int usableWidth: width - 2 * padding
|
||
|
|
||
|
Text {
|
||
|
id: errorMsg
|
||
|
width: parent.usableWidth
|
||
|
text: ""
|
||
|
color: Constants.red
|
||
|
font.pixelSize: Constants.normal_font_size
|
||
|
wrapMode: Text.WordWrap
|
||
|
verticalAlignment: Text.AlignVCenter
|
||
|
visible: text !== ""
|
||
|
}
|
||
|
|
||
|
Column {
|
||
|
id: nameContainer
|
||
|
width: parent.usableWidth
|
||
|
|
||
|
Text {
|
||
|
text: qsTr("Device name") + settingsModel.translationTrigger
|
||
|
font.pixelSize: Constants.normal_font_size
|
||
|
font.bold: true
|
||
|
color: Constants.blue
|
||
|
}
|
||
|
|
||
|
Text {
|
||
|
text: qsTr("Choose a device name here to identify it in the network:") + settingsModel.translationTrigger
|
||
|
width: parent.width
|
||
|
font.pixelSize: Constants.normal_font_size
|
||
|
horizontalAlignment: Text.AlignJustify
|
||
|
wrapMode: Text.WordWrap
|
||
|
}
|
||
|
|
||
|
Item {
|
||
|
id: spacing
|
||
|
height: Utils.dp(5)
|
||
|
width: height
|
||
|
}
|
||
|
|
||
|
GTextField {
|
||
|
id: serverName123
|
||
|
width: parent.width
|
||
|
onAccepted: {
|
||
|
settingsModel.serverName = text
|
||
|
text = settingsModel.serverName
|
||
|
}
|
||
|
onVisibleChanged: if (visible) text = settingsModel.serverName
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Item {
|
||
|
id: pinPadModeContainer
|
||
|
visible: Qt.platform.os !== "ios"
|
||
|
width: parent.usableWidth
|
||
|
height: Math.max(pinPadModeText.height, pinPadModeSwitch.height)
|
||
|
|
||
|
Item {
|
||
|
id: pinPadModeText
|
||
|
height: nameText.height + dateText.height
|
||
|
anchors.left: pinPadModeContainer.left
|
||
|
anchors.right: pinPadModeSwitch.left
|
||
|
anchors.rightMargin: Constants.component_spacing
|
||
|
anchors.verticalCenter: pinPadModeContainer.verticalCenter
|
||
|
Text {
|
||
|
id: nameText
|
||
|
anchors.bottomMargin: Utils.dp(2)
|
||
|
font.pixelSize: Utils.sp(16)
|
||
|
color: "#000000"
|
||
|
opacity: 0.87
|
||
|
text: qsTr("PIN pad mode") + settingsModel.translationTrigger
|
||
|
}
|
||
|
|
||
|
Text {
|
||
|
id: dateText
|
||
|
width: parent.width
|
||
|
anchors.top: nameText.bottom
|
||
|
font.pixelSize: Utils.sp(14)
|
||
|
color: "#000000"
|
||
|
opacity: 0.38
|
||
|
text: qsTr("Enter PIN on smartphone") + settingsModel.translationTrigger
|
||
|
wrapMode: Text.WordWrap
|
||
|
}
|
||
|
}
|
||
|
|
||
|
GSwitch {
|
||
|
id: pinPadModeSwitch
|
||
|
anchors.right: pinPadModeContainer.right
|
||
|
anchors.verticalCenter: pinPadModeContainer.verticalCenter
|
||
|
onIsOnChanged: settingsModel.pinPadMode = pinPadModeSwitch.isOn
|
||
|
onVisibleChanged: if (visible) isOn = settingsModel.pinPadMode
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Column {
|
||
|
width: parent.usableWidth
|
||
|
|
||
|
Text {
|
||
|
text: qsTr("Paired devices") + settingsModel.translationTrigger
|
||
|
font.pixelSize: Constants.normal_font_size
|
||
|
font.bold: true
|
||
|
color: Constants.blue
|
||
|
}
|
||
|
|
||
|
Text {
|
||
|
text: qsTr("No device is paired.") + settingsModel.translationTrigger
|
||
|
width: parent.width
|
||
|
visible: !knownDeviceList.visible
|
||
|
font.pixelSize: Constants.normal_font_size
|
||
|
horizontalAlignment: Text.AlignJustify
|
||
|
wrapMode: Text.WordWrap
|
||
|
}
|
||
|
|
||
|
ListView {
|
||
|
id: knownDeviceList
|
||
|
width: parent.width
|
||
|
height: childrenRect.height
|
||
|
model: remoteServiceModel.knownDevices
|
||
|
delegate: KnownDevicesListDelegate {
|
||
|
width: knownDeviceList.width
|
||
|
}
|
||
|
visible: count > 0
|
||
|
interactive: false
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Column {
|
||
|
width: parent.usableWidth
|
||
|
|
||
|
Text {
|
||
|
text: qsTr("Available devices") + settingsModel.translationTrigger
|
||
|
font.pixelSize: Constants.normal_font_size
|
||
|
font.bold: true
|
||
|
color: Constants.blue
|
||
|
}
|
||
|
|
||
|
Text {
|
||
|
text: qsTr("No new remote reader was found on your network. Make sure that the remote reader functionality in AusweisApp2 on your other device is activated and that your devices are connected to the same network.") + settingsModel.translationTrigger
|
||
|
width: parent.width
|
||
|
visible: !searchDeviceList.visible
|
||
|
font.pixelSize: Constants.normal_font_size
|
||
|
horizontalAlignment: Text.AlignJustify
|
||
|
wrapMode: Text.WordWrap
|
||
|
}
|
||
|
|
||
|
ListView {
|
||
|
id: searchDeviceList
|
||
|
width: parent.width
|
||
|
height: childrenRect.height
|
||
|
model: remoteServiceModel.availableRemoteDevices
|
||
|
delegate: AvailableDevicesListDelegate {
|
||
|
width: searchDeviceList.width
|
||
|
onRequestPairing: {
|
||
|
popup.deviceId = pDeviceId
|
||
|
popup.pin = ""
|
||
|
informationPairingPopup.open()
|
||
|
}
|
||
|
}
|
||
|
visible: count > 0
|
||
|
interactive: false
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Popup {
|
||
|
id: informationPairingPopup
|
||
|
x: (rootPage.width - width) / 2
|
||
|
y: (rootPage.height - height) / 2
|
||
|
width: Utils.dp(250)
|
||
|
height: contentColumn.height + 2 * Constants.pane_padding
|
||
|
modal: true
|
||
|
focus: true
|
||
|
padding: Constants.pane_padding
|
||
|
closePolicy: Popup.CloseOnPressOutside | Popup.CloseOnEscape
|
||
|
|
||
|
Column {
|
||
|
id: contentColumn
|
||
|
width: parent.width
|
||
|
spacing: Constants.pane_spacing
|
||
|
|
||
|
Text {
|
||
|
id: info
|
||
|
width: parent.width
|
||
|
wrapMode: Text.WordWrap
|
||
|
font.pixelSize: Constants.normal_font_size
|
||
|
text: qsTr("Start the pairing mode on the other device if it is not already started.") + settingsModel.translationTrigger
|
||
|
}
|
||
|
|
||
|
GButton {
|
||
|
text: qsTr("OK") + settingsModel.translationTrigger
|
||
|
width: parent.width
|
||
|
|
||
|
onClicked: {
|
||
|
popup.open()
|
||
|
informationPairingPopup.close()
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
RemoteServicePairingPopup {
|
||
|
id: popup
|
||
|
requestInput: true
|
||
|
|
||
|
x: (rootPage.width - width) / 2
|
||
|
y: Constants.pane_padding
|
||
|
}
|
||
|
}
|