matrixion/resources/qml/device-verification/DeviceVerification.qml

160 lines
3.1 KiB
QML
Raw Normal View History

// SPDX-FileCopyrightText: Nheko Contributors
//
2021-03-05 02:35:15 +03:00
// SPDX-License-Identifier: GPL-3.0-or-later
import QtQuick 2.10
import QtQuick.Controls 2.3
import QtQuick.Window 2.13
import im.nheko 1.0
ApplicationWindow {
2020-10-08 22:11:21 +03:00
id: dialog
property var flow
onClosing: VerificationManager.removeVerificationFlow(flow)
title: stack.currentItem ? (stack.currentItem.title_ || "") : ""
modality: Qt.NonModal
2021-05-13 09:23:56 +03:00
palette: Nheko.colors
2022-01-12 08:44:51 +03:00
color: Nheko.colors.window
//height: stack.currentItem.implicitHeight
minimumHeight: stack.currentItem.implicitHeight + 2 * Nheko.paddingLarge
height: stack.currentItem.implicitHeight + 2 * Nheko.paddingMedium
minimumWidth: 400
2021-08-19 17:55:54 +03:00
flags: Qt.Dialog | Qt.WindowCloseButtonHint | Qt.WindowTitleHint
2020-10-08 22:11:21 +03:00
background: Rectangle {
color: Nheko.colors.window
}
2020-10-08 22:11:21 +03:00
StackView {
id: stack
anchors.centerIn: parent
2020-10-08 22:11:21 +03:00
initialItem: newVerificationRequest
implicitWidth: dialog.width - 2* Nheko.paddingMedium
implicitHeight: dialog.height - 2* Nheko.paddingMedium
2020-10-08 22:11:21 +03:00
}
Component {
id: newVerificationRequest
NewVerificationRequest {
}
}
Component {
id: waiting
Waiting {
}
}
Component {
id: success
Success {
}
}
Component {
id: failed
Failed {
}
}
Component {
id: digitVerification
DigitVerification {
}
}
Component {
id: emojiVerification
EmojiVerification {
}
}
Item {
state: flow.state
states: [
State {
name: "PromptStartVerification"
StateChangeScript {
script: stack.replace(null, newVerificationRequest)
2020-10-08 22:11:21 +03:00
}
},
State {
name: "CompareEmoji"
StateChangeScript {
script: stack.replace(null, emojiVerification)
2020-10-08 22:11:21 +03:00
}
},
State {
name: "CompareNumber"
StateChangeScript {
script: stack.replace(null, digitVerification)
2020-10-08 22:11:21 +03:00
}
},
State {
name: "WaitingForKeys"
StateChangeScript {
script: stack.replace(null, waiting)
2020-10-08 22:11:21 +03:00
}
},
State {
name: "WaitingForOtherToAccept"
StateChangeScript {
script: stack.replace(null, waiting)
2020-10-08 22:11:21 +03:00
}
},
State {
name: "WaitingForMac"
StateChangeScript {
script: stack.replace(null, waiting)
2020-10-08 22:11:21 +03:00
}
},
State {
name: "Success"
StateChangeScript {
script: stack.replace(null, success)
2020-10-08 22:11:21 +03:00
}
},
State {
name: "Failed"
StateChangeScript {
script: stack.replace(null, failed)
2020-10-08 22:11:21 +03:00
}
}
]
}
}