mirror of
https://github.com/status-im/status-desktop.git
synced 2025-02-21 02:58:55 +00:00
This commit resolves a crash happened due to connection to `SIGNAL_WALLET_ACCOUNT_TOKENS_REBUILT` when keycard sync flow was run in the background. Also updated the keycard synchronization process with the current state of the application and is the first step of many which leads towards completion of entire syncing feature.
184 lines
5.1 KiB
QML
184 lines
5.1 KiB
QML
import QtQuick 2.14
|
|
import QtQuick.Controls 2.14
|
|
import QtQuick.Layouts 1.14
|
|
|
|
import StatusQ.Core 0.1
|
|
import StatusQ.Core.Theme 0.1
|
|
import StatusQ.Components 0.1
|
|
|
|
import utils 1.0
|
|
import shared.status 1.0
|
|
import shared.popups.keycard.helpers 1.0
|
|
|
|
import "../../stores"
|
|
|
|
ColumnLayout {
|
|
id: root
|
|
|
|
property KeycardStore keycardStore
|
|
property string keyUid: ""
|
|
|
|
signal changeSectionTitle(string title)
|
|
|
|
spacing: Constants.settingsSection.itemSpacing
|
|
|
|
QtObject {
|
|
id: d
|
|
property bool collapsed: true
|
|
|
|
function checkAndCheckTitleIfNeeded(newKeycardName) {
|
|
// We change title if there is only a single keycard for a keypair in keycard details view
|
|
if (root.keycardStore.keycardModule.keycardDetailsModel.count === 1) {
|
|
root.changeSectionTitle(newKeycardName)
|
|
}
|
|
}
|
|
}
|
|
|
|
StatusListView {
|
|
Layout.fillWidth: true
|
|
Layout.preferredHeight: 250
|
|
spacing: Style.current.padding
|
|
model: root.keycardStore.keycardModule.keycardDetailsModel
|
|
|
|
delegate: KeycardItem {
|
|
width: ListView.view.width
|
|
displayChevronComponent: false
|
|
|
|
keycardName: model.keycard.name
|
|
keycardUid: model.keycard.keycardUid
|
|
keycardLocked: model.keycard.locked
|
|
keyPairType: model.keycard.pairType
|
|
keyPairIcon: model.keycard.icon
|
|
keyPairImage: model.keycard.image
|
|
keyPairAccounts: model.keycard.accounts
|
|
|
|
onKeycardNameChanged: {
|
|
d.checkAndCheckTitleIfNeeded(keycardName)
|
|
}
|
|
}
|
|
}
|
|
|
|
Item {
|
|
Layout.fillWidth: true
|
|
Layout.preferredHeight: Style.current.halfPadding
|
|
}
|
|
|
|
StatusSectionHeadline {
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: Style.current.padding
|
|
Layout.rightMargin: Style.current.padding
|
|
text: qsTr("Configure your Keycard")
|
|
}
|
|
|
|
StatusListItem {
|
|
Layout.fillWidth: true
|
|
title: qsTr("Rename Keycard")
|
|
components: [
|
|
StatusIcon {
|
|
icon: "tiny/chevron-right"
|
|
color: Theme.palette.baseColor1
|
|
}
|
|
]
|
|
onClicked: {
|
|
root.keycardStore.runRenameKeycardPopup(root.keyUid)
|
|
}
|
|
}
|
|
|
|
StatusListItem {
|
|
Layout.fillWidth: true
|
|
title: qsTr("Change PIN")
|
|
components: [
|
|
StatusIcon {
|
|
icon: "tiny/chevron-right"
|
|
color: Theme.palette.baseColor1
|
|
}
|
|
]
|
|
onClicked: {
|
|
root.keycardStore.runChangePinPopup(root.keyUid)
|
|
}
|
|
}
|
|
|
|
StatusListItem {
|
|
Layout.fillWidth: true
|
|
title: qsTr("Create a backup copy of this Keycard")
|
|
components: [
|
|
StatusIcon {
|
|
icon: "tiny/chevron-right"
|
|
color: Theme.palette.baseColor1
|
|
}
|
|
]
|
|
onClicked: {
|
|
root.keycardStore.runCreateBackupCopyOfAKeycardPopup(root.keyUid)
|
|
}
|
|
}
|
|
|
|
StatusListItem {
|
|
visible: root.keycardStore.keycardModule.keycardDetailsModel?
|
|
root.keycardStore.keycardModule.keycardDetailsModel.lockedItemsCount > 0 : false
|
|
Layout.fillWidth: true
|
|
title: qsTr("Unlock Keycard")
|
|
components: [
|
|
StatusBadge {
|
|
value: root.keycardStore.keycardModule.keycardDetailsModel?
|
|
root.keycardStore.keycardModule.keycardDetailsModel.lockedItemsCount : 0
|
|
border.width: 4
|
|
border.color: Theme.palette.dangerColor1
|
|
color: Theme.palette.dangerColor1
|
|
},
|
|
StatusIcon {
|
|
icon: "tiny/chevron-right"
|
|
color: Theme.palette.baseColor1
|
|
}
|
|
]
|
|
onClicked: {
|
|
root.keycardStore.runUnlockKeycardPopupForKeycardWithUid(root.keyUid)
|
|
}
|
|
}
|
|
|
|
StatusListItem {
|
|
Layout.fillWidth: true
|
|
title: qsTr("Advanced")
|
|
statusListItemTitle.color: Style.current.secondaryText
|
|
components: [
|
|
StatusIcon {
|
|
icon: d.collapsed? "tiny/chevron-down" : "tiny/chevron-up"
|
|
color: Theme.palette.baseColor1
|
|
}
|
|
]
|
|
onClicked: {
|
|
d.collapsed = !d.collapsed
|
|
}
|
|
}
|
|
|
|
StatusListItem {
|
|
visible: !d.collapsed
|
|
Layout.fillWidth: true
|
|
title: qsTr("Create a 12-digit personal unblocking key (PUK)")
|
|
components: [
|
|
StatusIcon {
|
|
icon: "tiny/chevron-right"
|
|
color: Theme.palette.baseColor1
|
|
}
|
|
]
|
|
onClicked: {
|
|
root.keycardStore.runCreatePukPopup(root.keyUid)
|
|
}
|
|
}
|
|
|
|
StatusListItem {
|
|
visible: !d.collapsed
|
|
enabled: false // This is post MVP feature, issue #8065
|
|
Layout.fillWidth: true
|
|
title: qsTr("Create a new pairing code")
|
|
components: [
|
|
StatusIcon {
|
|
icon: "tiny/chevron-right"
|
|
color: Theme.palette.baseColor1
|
|
}
|
|
]
|
|
onClicked: {
|
|
root.keycardStore.runCreateNewPairingCodePopup(root.keyUid)
|
|
}
|
|
}
|
|
}
|