130 lines
3.8 KiB
QML
130 lines
3.8 KiB
QML
|
import QtQuick 2.13
|
||
|
import QtQuick.Controls 2.12
|
||
|
import QtQuick.Layouts 1.12
|
||
|
import StatusQ.Components 0.1
|
||
|
import StatusQ.Controls 0.1
|
||
|
import StatusQ.Core 0.1
|
||
|
import StatusQ.Core.Theme 0.1
|
||
|
|
||
|
import shared.panels 1.0
|
||
|
|
||
|
import utils 1.0
|
||
|
|
||
|
import "../controls"
|
||
|
import "../panels"
|
||
|
import "../stores"
|
||
|
|
||
|
OnboardingBasePage {
|
||
|
id: root
|
||
|
|
||
|
property string userPass
|
||
|
signal genKeysDone();
|
||
|
|
||
|
Item {
|
||
|
id: container
|
||
|
enabled: !dimBackground.active
|
||
|
anchors.centerIn: parent
|
||
|
width: 425
|
||
|
height: {
|
||
|
let h = 0
|
||
|
const children = this.children
|
||
|
Object.keys(children).forEach(function (key) {
|
||
|
const child = children[key]
|
||
|
h += child.height + Style.current.padding
|
||
|
})
|
||
|
return h
|
||
|
}
|
||
|
Image {
|
||
|
id: keysImg
|
||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||
|
anchors.top: parent.top
|
||
|
fillMode: Image.PreserveAspectFit
|
||
|
source: Style.png("onboarding/fingerprint")
|
||
|
width: 160
|
||
|
height: 160
|
||
|
mipmap: true
|
||
|
}
|
||
|
|
||
|
StyledText {
|
||
|
id: txtTitle
|
||
|
text: qsTr("Biometrics")
|
||
|
anchors.topMargin: Style.current.padding
|
||
|
font.bold: true
|
||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||
|
anchors.top: keysImg.bottom
|
||
|
font.letterSpacing: -0.2
|
||
|
font.pixelSize: 22
|
||
|
}
|
||
|
|
||
|
StyledText {
|
||
|
id: txtDesc
|
||
|
width: 426
|
||
|
anchors.top: txtTitle.bottom
|
||
|
anchors.topMargin: Style.current.padding
|
||
|
color: Style.current.secondaryText
|
||
|
text: qsTrId("Would you like to use your TouchID to login to Status?")
|
||
|
horizontalAlignment: Text.AlignHCenter
|
||
|
wrapMode: Text.WordWrap
|
||
|
font.pixelSize: 15
|
||
|
}
|
||
|
ColumnLayout {
|
||
|
anchors.topMargin: 40
|
||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||
|
anchors.top: txtDesc.bottom
|
||
|
spacing: Style.current.bigPadding
|
||
|
StatusButton {
|
||
|
id: button
|
||
|
Layout.alignment: Qt.AlignHCenter
|
||
|
text: qsTr("Yes, use TouchID ")
|
||
|
onClicked: {
|
||
|
OnboardingStore.accountSettings.storeToKeychainValue = Constants.storeToKeychainValueStore;
|
||
|
dimBackground.active = true;
|
||
|
OnboardingStore.storeToKeyChain(userPass);
|
||
|
}
|
||
|
}
|
||
|
StatusBaseText {
|
||
|
id: keycardLink
|
||
|
Layout.alignment: Qt.AlignHCenter
|
||
|
color: Theme.palette.primaryColor1
|
||
|
text: qsTr("I prefer to use my PIN")
|
||
|
MouseArea {
|
||
|
anchors.fill: parent
|
||
|
cursorShape: Qt.PointingHandCursor
|
||
|
hoverEnabled: true
|
||
|
onEntered: {
|
||
|
parent.font.underline = true
|
||
|
}
|
||
|
onExited: {
|
||
|
parent.font.underline = false
|
||
|
}
|
||
|
onClicked: {
|
||
|
OnboardingStore.accountSettings.storeToKeychainValue = Constants.storeToKeychainValueNever;
|
||
|
root.genKeysDone();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Loader {
|
||
|
id: dimBackground
|
||
|
anchors.fill: parent
|
||
|
active: false
|
||
|
sourceComponent: Rectangle {
|
||
|
color: Qt.rgba(0, 0, 0, 0.4)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Connections {
|
||
|
enabled: !!OnboardingStore.mainModuleInst
|
||
|
target: OnboardingStore.mainModuleInst
|
||
|
onStoringPasswordSuccess: {
|
||
|
dimBackground.active = false;
|
||
|
root.genKeysDone();
|
||
|
}
|
||
|
onStoringPasswordError: {
|
||
|
dimBackground.active = false;
|
||
|
}
|
||
|
}
|
||
|
}
|