117 lines
3.2 KiB
QML
117 lines
3.2 KiB
QML
import QtQuick 2.14
|
|
import QtQuick.Controls 2.14
|
|
import QtQuick.Layouts 1.14
|
|
import QtQml.Models 2.14
|
|
|
|
import StatusQ.Core 0.1
|
|
import StatusQ.Controls 0.1
|
|
import StatusQ.Popups.Dialog 0.1
|
|
|
|
import utils 1.0
|
|
import shared.popups.keycard 1.0
|
|
|
|
import "../stores"
|
|
import "./keycard"
|
|
|
|
SettingsContentBase {
|
|
id: root
|
|
|
|
property ProfileSectionStore profileSectionStore
|
|
property KeycardStore keycardStore
|
|
property var emojiPopup
|
|
property string mainSectionTitle: ""
|
|
|
|
titleRowComponentLoader.sourceComponent: StatusButton {
|
|
text: qsTr("Get Keycard")
|
|
onClicked: {
|
|
Global.openLink(Constants.keycard.general.purchasePage)
|
|
}
|
|
}
|
|
|
|
function handleBackAction() {
|
|
if (stackLayout.currentIndex === d.detailsViewIndex) {
|
|
root.profileSectionStore.backButtonName = ""
|
|
root.sectionTitle = root.mainSectionTitle
|
|
stackLayout.currentIndex = d.mainViewIndex
|
|
}
|
|
}
|
|
|
|
StackLayout {
|
|
id: stackLayout
|
|
|
|
currentIndex: d.mainViewIndex
|
|
|
|
QtObject {
|
|
id: d
|
|
readonly property int mainViewIndex: 0
|
|
readonly property int detailsViewIndex: 1
|
|
|
|
property string observedKeyUid: ""
|
|
}
|
|
|
|
Component {
|
|
id: sharedModuleBusyPopupComponent
|
|
StatusDialog {
|
|
id: titleContentDialog
|
|
title: qsTr("Status Keycard")
|
|
|
|
StatusBaseText {
|
|
anchors.fill: parent
|
|
font.pixelSize: Constants.keycard.general.fontSize2
|
|
color: Theme.palette.directColor1
|
|
text: qsTr("The Keycard module is still busy, please try again")
|
|
}
|
|
|
|
standardButtons: Dialog.Ok
|
|
}
|
|
}
|
|
|
|
MainView {
|
|
Layout.preferredWidth: root.contentWidth
|
|
keycardStore: root.keycardStore
|
|
|
|
onDisplayKeycardsForKeypair: {
|
|
root.keycardStore.keycardModule.prepareKeycardDetailsModel(keyUid)
|
|
d.observedKeyUid = keyUid
|
|
root.profileSectionStore.backButtonName = root.mainSectionTitle
|
|
root.sectionTitle = keypairName
|
|
stackLayout.currentIndex = d.detailsViewIndex
|
|
}
|
|
}
|
|
|
|
DetailsView {
|
|
Layout.preferredWidth: root.contentWidth
|
|
keycardStore: root.keycardStore
|
|
keyUid: d.observedKeyUid
|
|
}
|
|
|
|
Connections {
|
|
target: root.keycardStore.keycardModule
|
|
|
|
onDisplayKeycardSharedModuleFlow: {
|
|
keycardPopup.active = true
|
|
}
|
|
onDestroyKeycardSharedModuleFlow: {
|
|
keycardPopup.active = false
|
|
}
|
|
onSharedModuleBusy: {
|
|
Global.openPopup(sharedModuleBusyPopupComponent)
|
|
}
|
|
}
|
|
|
|
Loader {
|
|
id: keycardPopup
|
|
active: false
|
|
sourceComponent: KeycardPopup {
|
|
anchors.centerIn: parent
|
|
sharedKeycardModule: root.keycardStore.keycardModule.keycardSharedModule
|
|
emojiPopup: root.emojiPopup
|
|
}
|
|
|
|
onLoaded: {
|
|
keycardPopup.item.open()
|
|
}
|
|
}
|
|
}
|
|
}
|