qml: add address to bolt11>bip21>address QR caroussel and remove address copy button
(conform qt and kivy)
This commit is contained in:
@@ -13,8 +13,9 @@ ElDialog {
|
||||
|
||||
property var modelItem
|
||||
|
||||
property string _bip21uri
|
||||
property string _bolt11
|
||||
property string _bip21uri
|
||||
property string _address
|
||||
|
||||
parent: Overlay.overlay
|
||||
modal: true
|
||||
@@ -62,6 +63,11 @@ ElDialog {
|
||||
name: 'bip21uri'
|
||||
PropertyChanges { target: qrloader; sourceComponent: qri_bip21uri }
|
||||
PropertyChanges { target: bip21label; font.bold: true }
|
||||
},
|
||||
State {
|
||||
name: 'address'
|
||||
PropertyChanges { target: qrloader; sourceComponent: qri_address }
|
||||
PropertyChanges { target: addresslabel; font.bold: true }
|
||||
}
|
||||
]
|
||||
|
||||
@@ -81,6 +87,12 @@ ElDialog {
|
||||
|
||||
Loader {
|
||||
id: qrloader
|
||||
Component {
|
||||
id: qri_bolt11
|
||||
QRImage {
|
||||
qrdata: _bolt11
|
||||
}
|
||||
}
|
||||
Component {
|
||||
id: qri_bip21uri
|
||||
QRImage {
|
||||
@@ -88,9 +100,9 @@ ElDialog {
|
||||
}
|
||||
}
|
||||
Component {
|
||||
id: qri_bolt11
|
||||
id: qri_address
|
||||
QRImage {
|
||||
qrdata: _bolt11
|
||||
qrdata: _address
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -101,9 +113,18 @@ ElDialog {
|
||||
if (rootLayout.state == 'bolt11') {
|
||||
if (_bip21uri != '')
|
||||
rootLayout.state = 'bip21uri'
|
||||
else if (_address != '')
|
||||
rootLayout.state = 'address'
|
||||
} else if (rootLayout.state == 'bip21uri') {
|
||||
if (_address != '')
|
||||
rootLayout.state = 'address'
|
||||
else if (_bolt11 != '')
|
||||
rootLayout.state = 'bolt11'
|
||||
} else if (rootLayout.state == 'address') {
|
||||
if (_bolt11 != '')
|
||||
rootLayout.state = 'bolt11'
|
||||
else if (_bip21uri != '')
|
||||
rootLayout.state = 'bip21uri'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -125,9 +146,20 @@ ElDialog {
|
||||
}
|
||||
Label {
|
||||
id: bip21label
|
||||
text: qsTr('BIP21 URI')
|
||||
text: qsTr('BIP21')
|
||||
color: _bip21uri ? Material.foreground : constants.mutedForeground
|
||||
}
|
||||
Rectangle {
|
||||
Layout.preferredWidth: constants.paddingXXSmall
|
||||
Layout.preferredHeight: constants.paddingXXSmall
|
||||
radius: constants.paddingXXSmall / 2
|
||||
color: Material.accentColor
|
||||
}
|
||||
Label {
|
||||
id: addresslabel
|
||||
text: qsTr('ADDRESS')
|
||||
color: _address ? Material.foreground : constants.mutedForeground
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
@@ -153,9 +185,10 @@ ElDialog {
|
||||
onClicked: {
|
||||
if (modelItem.is_lightning && rootLayout.state == 'bolt11')
|
||||
AppController.textToClipboard(_bolt11)
|
||||
else
|
||||
else if (rootLayout.state == 'bip21uri')
|
||||
AppController.textToClipboard(_bip21uri)
|
||||
|
||||
else
|
||||
AppController.textToClipboard(_address)
|
||||
}
|
||||
}
|
||||
Button {
|
||||
@@ -165,8 +198,11 @@ ElDialog {
|
||||
enabled = false
|
||||
if (modelItem.is_lightning && rootLayout.state == 'bolt11')
|
||||
AppController.doShare(_bolt11, qsTr('Payment Request'))
|
||||
else
|
||||
else if (rootLayout.state == 'bip21uri')
|
||||
AppController.doShare(_bip21uri, qsTr('Payment Request'))
|
||||
else
|
||||
AppController.doShare(_address, qsTr('Onchain address'))
|
||||
|
||||
enabled = true
|
||||
}
|
||||
}
|
||||
@@ -217,25 +253,17 @@ ElDialog {
|
||||
}
|
||||
|
||||
Label {
|
||||
visible: modelItem.address
|
||||
text: qsTr('Address')
|
||||
visible: !modelItem.is_lightning
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
visible: !modelItem.is_lightning
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
font.family: FixedFont
|
||||
font.pixelSize: constants.fontSizeLarge
|
||||
wrapMode: Text.WrapAnywhere
|
||||
text: modelItem.address
|
||||
}
|
||||
ToolButton {
|
||||
icon.source: '../../icons/copy_bw.png'
|
||||
onClicked: {
|
||||
AppController.textToClipboard(modelItem.address)
|
||||
}
|
||||
}
|
||||
Label {
|
||||
visible: modelItem.address
|
||||
Layout.fillWidth: true
|
||||
font.family: FixedFont
|
||||
font.pixelSize: constants.fontSizeLarge
|
||||
wrapMode: Text.WrapAnywhere
|
||||
text: modelItem.address
|
||||
}
|
||||
|
||||
Label {
|
||||
@@ -262,13 +290,14 @@ ElDialog {
|
||||
Component.onCompleted: {
|
||||
if (!modelItem.is_lightning) {
|
||||
_bip21uri = bitcoin.create_bip21_uri(modelItem.address, modelItem.amount, modelItem.message, modelItem.timestamp, modelItem.expiration - modelItem.timestamp)
|
||||
_address = modelItem.address
|
||||
rootLayout.state = 'bip21uri'
|
||||
} else {
|
||||
_bolt11 = modelItem.lightning_invoice
|
||||
rootLayout.state = 'bolt11'
|
||||
if (modelItem.address != '') {
|
||||
_bip21uri = bitcoin.create_bip21_uri(modelItem.address, modelItem.amount, modelItem.message, modelItem.timestamp, modelItem.expiration - modelItem.timestamp)
|
||||
console.log('BIP21:' + _bip21uri)
|
||||
_address = modelItem.address
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user