From a6ceeec09ddca74e9b408ccb5cbcf30a3e208fd7 Mon Sep 17 00:00:00 2001 From: Sander van Grieken Date: Tue, 12 Dec 2023 13:17:57 +0100 Subject: [PATCH] qml: add frozen lightning to BalanceDetails, indent frozen on-chain and lightning amounts --- .../gui/qml/components/BalanceDetails.qml | 108 +++++++++++------- electrum/gui/qml/qewallet.py | 7 ++ 2 files changed, 73 insertions(+), 42 deletions(-) diff --git a/electrum/gui/qml/components/BalanceDetails.qml b/electrum/gui/qml/components/BalanceDetails.qml index 6da321b35..df6336bcb 100644 --- a/electrum/gui/qml/components/BalanceDetails.qml +++ b/electrum/gui/qml/components/BalanceDetails.qml @@ -81,77 +81,101 @@ Pane { GridLayout { Layout.alignment: Qt.AlignHCenter visible: Daemon.currentWallet - columns: 3 + columns: 2 - Rectangle { - Layout.preferredWidth: constants.iconSizeXSmall - Layout.preferredHeight: constants.iconSizeXSmall - border.color: constants.colorPiechartTotal - color: 'transparent' - radius: constants.iconSizeXSmall/2 - } - Label { - text: qsTr('Total') + RowLayout { + Rectangle { + Layout.preferredWidth: constants.iconSizeXSmall + Layout.preferredHeight: constants.iconSizeXSmall + border.color: constants.colorPiechartTotal + color: 'transparent' + radius: constants.iconSizeXSmall/2 + } + Label { + text: qsTr('Total') + } } FormattedAmount { amount: Daemon.currentWallet.totalBalance } - Rectangle { - visible: Daemon.currentWallet.isLightning - Layout.preferredWidth: constants.iconSizeXSmall - Layout.preferredHeight: constants.iconSizeXSmall - color: constants.colorPiechartLightning + RowLayout { + Rectangle { + visible: Daemon.currentWallet.isLightning + Layout.preferredWidth: constants.iconSizeXSmall + Layout.preferredHeight: constants.iconSizeXSmall + color: constants.colorPiechartLightning + } + Label { + visible: Daemon.currentWallet.isLightning + text: qsTr('Lightning') + } } - Label { + FormattedAmount { visible: Daemon.currentWallet.isLightning - text: qsTr('Lightning') + amount: Daemon.currentWallet.lightningBalance + } + RowLayout { + visible: Daemon.currentWallet.isLightning + Rectangle { + Layout.leftMargin: constants.paddingLarge + Layout.preferredWidth: constants.iconSizeXSmall + Layout.preferredHeight: constants.iconSizeXSmall + color: constants.colorPiechartLightningFrozen + } + Label { + text: qsTr('Frozen') + } } FormattedAmount { visible: Daemon.currentWallet.isLightning - amount: Daemon.currentWallet.lightningBalance + amount: Daemon.currentWallet.lightningBalanceFrozen } - Rectangle { + RowLayout { visible: Daemon.currentWallet.isLightning || !Daemon.currentWallet.frozenBalance.isEmpty - Layout.preferredWidth: constants.iconSizeXSmall - Layout.preferredHeight: constants.iconSizeXSmall - color: constants.colorPiechartOnchain - } - Label { - visible: Daemon.currentWallet.isLightning || !Daemon.currentWallet.frozenBalance.isEmpty - text: qsTr('On-chain') + Rectangle { + Layout.preferredWidth: constants.iconSizeXSmall + Layout.preferredHeight: constants.iconSizeXSmall + color: constants.colorPiechartOnchain + } + Label { + text: qsTr('On-chain') + } } FormattedAmount { visible: Daemon.currentWallet.isLightning || !Daemon.currentWallet.frozenBalance.isEmpty amount: Daemon.currentWallet.confirmedBalance } - Rectangle { + RowLayout { visible: !Daemon.currentWallet.frozenBalance.isEmpty - Layout.preferredWidth: constants.iconSizeXSmall - Layout.preferredHeight: constants.iconSizeXSmall - color: constants.colorPiechartFrozen - } - Label { - visible: !Daemon.currentWallet.frozenBalance.isEmpty - text: qsTr('Frozen') + Rectangle { + Layout.leftMargin: constants.paddingLarge + Layout.preferredWidth: constants.iconSizeXSmall + Layout.preferredHeight: constants.iconSizeXSmall + color: constants.colorPiechartFrozen + } + Label { + text: qsTr('Frozen') + } } FormattedAmount { amount: Daemon.currentWallet.frozenBalance visible: !Daemon.currentWallet.frozenBalance.isEmpty } - Rectangle { - visible: !Daemon.currentWallet.unconfirmedBalance.isEmpty - Layout.preferredWidth: constants.iconSizeXSmall - Layout.preferredHeight: constants.iconSizeXSmall - color: constants.colorPiechartUnconfirmed - } - Label { + RowLayout { visible: !Daemon.currentWallet.unconfirmedBalance.isEmpty - text: qsTr('Unconfirmed') + Rectangle { + Layout.preferredWidth: constants.iconSizeXSmall + Layout.preferredHeight: constants.iconSizeXSmall + color: constants.colorPiechartUnconfirmed + } + Label { + text: qsTr('Unconfirmed') + } } FormattedAmount { amount: Daemon.currentWallet.unconfirmedBalance diff --git a/electrum/gui/qml/qewallet.py b/electrum/gui/qml/qewallet.py index 5e20bf87c..16236256b 100644 --- a/electrum/gui/qml/qewallet.py +++ b/electrum/gui/qml/qewallet.py @@ -103,6 +103,7 @@ class QEWallet(AuthMixin, QObject, QtEventListener): self._totalbalance = QEAmount() self._lightningcanreceive = QEAmount() self._lightningcansend = QEAmount() + self._lightningbalancefrozen = QEAmount() self._seed = '' @@ -461,6 +462,12 @@ class QEWallet(AuthMixin, QObject, QtEventListener): self._lightningbalance.satsInt = int(self.wallet.lnworker.get_balance()) return self._lightningbalance + @pyqtProperty(QEAmount, notify=balanceChanged) + def lightningBalanceFrozen(self): + if self.isLightning: + self._lightningbalancefrozen.satsInt = int(self.wallet.lnworker.get_balance(frozen=True)) + return self._lightningbalancefrozen + @pyqtProperty(QEAmount, notify=balanceChanged) def totalBalance(self): total = self.confirmedBalance.satsInt + self.lightningBalance.satsInt