diff --git a/electrum/gui/qml/components/ChannelDetails.qml b/electrum/gui/qml/components/ChannelDetails.qml index a7ad4dd83..f597d60a8 100644 --- a/electrum/gui/qml/components/ChannelDetails.qml +++ b/electrum/gui/qml/components/ChannelDetails.qml @@ -323,6 +323,50 @@ Pane { } } + Label { + Layout.columnSpan: 2 + Layout.topMargin: constants.paddingSmall + visible: channeldetails.closingTxid + text: qsTr('Closing transaction') + color: Material.accentColor + } + + TextHighlightPane { + Layout.columnSpan: 2 + Layout.fillWidth: true + visible: channeldetails.closingTxid + + RowLayout { + width: parent.width + Label { + text: channeldetails.closingTxid + font.pixelSize: constants.fontSizeLarge + font.family: FixedFont + Layout.fillWidth: true + wrapMode: Text.Wrap + + TapHandler { + onTapped: { + app.stack.push(Qt.resolvedUrl('TxDetails.qml'), { + txid: channeldetails.closingTxid + }) + } + } + } + ToolButton { + icon.source: '../../icons/share.png' + icon.color: 'transparent' + onClicked: { + var dialog = app.genericShareDialog.createObject(root, { + title: qsTr('Channel close transaction'), + text: channeldetails.closingTxid + }) + dialog.open() + } + } + } + } + } } } diff --git a/electrum/gui/qml/qechanneldetails.py b/electrum/gui/qml/qechanneldetails.py index 5f1344158..8f1b810be 100644 --- a/electrum/gui/qml/qechanneldetails.py +++ b/electrum/gui/qml/qechanneldetails.py @@ -121,6 +121,17 @@ class QEChannelDetails(AuthMixin, QObject, QtEventListener): 'index': outpoint.output_index } + @pyqtProperty(str, notify=channelChanged) + def closingTxid(self): + if not self._channel.is_closed(): + return '' + item = self._channel.get_closing_height() + if item: + closing_txid, closing_height, timestamp = item + return closing_txid + else: + return '' + @pyqtProperty(QEAmount, notify=channelChanged) def capacity(self): self._capacity.copyFrom(QEAmount(amount_sat=self._channel.get_capacity()))