Browse Source

qml: show all keystores on WalletDetails page

master
Sander van Grieken 3 years ago
parent
commit
98e395e78e
  1. 112
      electrum/gui/qml/components/WalletDetails.qml
  2. 11
      electrum/gui/qml/qewallet.py

112
electrum/gui/qml/components/WalletDetails.qml

@ -246,52 +246,86 @@ Pane {
}
}
Label {
text: qsTr('Derivation prefix')
visible: Daemon.currentWallet.derivationPrefix
color: Material.accentColor
}
Label {
Layout.fillWidth: true
text: Daemon.currentWallet.derivationPrefix
visible: Daemon.currentWallet.derivationPrefix
}
Repeater {
id: keystores
model: Daemon.currentWallet.keystores
delegate: ColumnLayout {
Layout.columnSpan: 2
RowLayout {
Label {
text: qsTr('Keystore')
color: Material.accentColor
}
Label {
text: '#' + index
visible: keystores.count > 1
}
}
TextHighlightPane {
Layout.fillWidth: true
leftPadding: constants.paddingLarge
Label {
visible: Daemon.currentWallet.masterPubkey
Layout.columnSpan:2; text: qsTr('Master Public Key'); color: Material.accentColor
}
GridLayout {
width: parent.width
columns: 2
TextHighlightPane {
visible: Daemon.currentWallet.masterPubkey
Label {
text: qsTr('Derivation prefix')
visible: modelData.derivation_prefix
color: Material.accentColor
}
Label {
Layout.fillWidth: true
text: modelData.derivation_prefix
visible: modelData.derivation_prefix
}
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 {
icon.source: '../../icons/share.png'
icon.color: 'transparent'
onClicked: {
var dialog = app.genericShareDialog.createObject(rootItem, {
title: qsTr('Master Public Key'),
text: Daemon.currentWallet.masterPubkey
})
dialog.open()
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()
}
}
}
}
}
}
}
}
}
}

11
electrum/gui/qml/qewallet.py

@ -338,6 +338,17 @@ class QEWallet(AuthMixin, QObject, QtEventListener):
def isHardware(self):
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)
def derivationPrefix(self):
keystores = self.wallet.get_keystores()

Loading…
Cancel
Save