1
0

qml: show all keystores on WalletDetails page

This commit is contained in:
Sander van Grieken
2022-11-18 22:53:34 +01:00
parent 28f724edc9
commit 98e395e78e
2 changed files with 86 additions and 41 deletions

View File

@@ -246,52 +246,86 @@ Pane {
} }
} }
Label { Repeater {
text: qsTr('Derivation prefix') id: keystores
visible: Daemon.currentWallet.derivationPrefix model: Daemon.currentWallet.keystores
color: Material.accentColor delegate: ColumnLayout {
} Layout.columnSpan: 2
Label { RowLayout {
Layout.fillWidth: true Label {
text: Daemon.currentWallet.derivationPrefix text: qsTr('Keystore')
visible: Daemon.currentWallet.derivationPrefix color: Material.accentColor
} }
Label {
Label { text: '#' + index
visible: Daemon.currentWallet.masterPubkey visible: keystores.count > 1
Layout.columnSpan:2; text: qsTr('Master Public Key'); color: Material.accentColor }
}
TextHighlightPane {
visible: Daemon.currentWallet.masterPubkey
Layout.columnSpan: 2
Layout.fillWidth: true
padding: 0
leftPadding: constants.paddingSmall
RowLayout {
width: parent.width
Label {
text: Daemon.currentWallet.masterPubkey
wrapMode: Text.Wrap
Layout.fillWidth: true
font.family: FixedFont
font.pixelSize: constants.fontSizeMedium
} }
ToolButton { TextHighlightPane {
icon.source: '../../icons/share.png' Layout.fillWidth: true
icon.color: 'transparent' leftPadding: constants.paddingLarge
onClicked: {
var dialog = app.genericShareDialog.createObject(rootItem, { GridLayout {
title: qsTr('Master Public Key'), width: parent.width
text: Daemon.currentWallet.masterPubkey columns: 2
})
dialog.open() Label {
text: qsTr('Derivation prefix')
visible: modelData.derivation_prefix
color: Material.accentColor
}
Label {
Layout.fillWidth: true
text: modelData.derivation_prefix
visible: modelData.derivation_prefix
}
Label {
text: qsTr('BIP32 fingerprint')
visible: modelData.fingerprint
color: Material.accentColor
}
Label {
Layout.fillWidth: true
text: modelData.fingerprint
visible: modelData.fingerprint
font.family: FixedFont
}
Label {
Layout.columnSpan: 2
visible: modelData.master_pubkey
text: qsTr('Master Public Key')
color: Material.accentColor
}
RowLayout {
Layout.fillWidth: true
Layout.columnSpan: 2
Layout.leftMargin: constants.paddingLarge
Label {
text: modelData.master_pubkey
wrapMode: Text.Wrap
Layout.fillWidth: true
font.family: FixedFont
font.pixelSize: constants.fontSizeMedium
}
ToolButton {
icon.source: '../../icons/share.png'
icon.color: 'transparent'
onClicked: {
var dialog = app.genericShareDialog.createObject(rootItem, {
title: qsTr('Master Public Key'),
text: modelData.master_pubkey
})
dialog.open()
}
}
}
} }
} }
} }
} }
} }
} }
} }

View File

@@ -338,6 +338,17 @@ class QEWallet(AuthMixin, QObject, QtEventListener):
def isHardware(self): def isHardware(self):
return self.wallet.storage.is_encrypted_with_hw_device() return self.wallet.storage.is_encrypted_with_hw_device()
@pyqtProperty('QVariantList', notify=dataChanged)
def keystores(self):
result = []
for k in self.wallet.get_keystores():
result.append({
'derivation_prefix': k.get_derivation_prefix() or '',
'master_pubkey': k.get_master_public_key() or '',
'fingerprint': k.get_root_fingerprint() or ''
})
return result
@pyqtProperty(str, notify=dataChanged) @pyqtProperty(str, notify=dataChanged)
def derivationPrefix(self): def derivationPrefix(self):
keystores = self.wallet.get_keystores() keystores = self.wallet.get_keystores()