Browse Source

qml: move balance from drawer to history listview header

master
Sander van Grieken 3 years ago
parent
commit
4fb010da1a
  1. 14
      electrum/gui/qml/components/History.qml
  2. 43
      electrum/gui/qml/components/WalletSummary.qml
  3. 174
      electrum/gui/qml/components/controls/BalanceSummary.qml

14
electrum/gui/qml/components/History.qml

@ -26,6 +26,20 @@ Pane {
model: visualModel
header: Item {
width: parent.width
height: headerLayout.height
ColumnLayout {
id: headerLayout
anchors.centerIn: parent
BalanceSummary {
Layout.topMargin: constants.paddingXLarge
Layout.bottomMargin: constants.paddingXLarge
}
}
}
headerPositioning: ListView.InlineHeader
readonly property variant sectionLabels: {
'local': qsTr('Local'),
'mempool': qsTr('Mempool'),

43
electrum/gui/qml/components/WalletSummary.qml

@ -61,49 +61,6 @@ Item {
Item { Layout.preferredWidth: 1; Layout.preferredHeight: 1 }
TextHighlightPane {
Layout.alignment: Qt.AlignHCenter
GridLayout {
columns: 3
Label {
font.pixelSize: constants.fontSizeXLarge
text: qsTr('Balance:')
color: Material.accentColor
}
Label {
font.pixelSize: constants.fontSizeXLarge
font.family: FixedFont
text: formattedTotalBalance
}
Label {
font.pixelSize: constants.fontSizeXLarge
color: Material.accentColor
text: Config.baseUnit
}
Item {
visible: Daemon.fx.enabled
Layout.preferredHeight: 1
Layout.preferredWidth: 1
}
Label {
Layout.alignment: Qt.AlignRight
visible: Daemon.fx.enabled
font.pixelSize: constants.fontSizeLarge
color: constants.mutedForeground
text: formattedTotalBalanceFiat
}
Label {
visible: Daemon.fx.enabled
font.pixelSize: constants.fontSizeLarge
color: constants.mutedForeground
text: Daemon.fx.fiatCurrency
}
}
}
RowLayout {
Layout.fillWidth: true
FlatButton {

174
electrum/gui/qml/components/controls/BalanceSummary.qml

@ -3,66 +3,34 @@ import QtQuick.Layouts 1.0
import QtQuick.Controls 2.0
import QtQuick.Controls.Material 2.0
Frame {
Item {
id: root
font.pixelSize: constants.fontSizeMedium
implicitWidth: balancePane.implicitWidth
implicitHeight: balancePane.implicitHeight
property string formattedTotalBalance
property string formattedTotalBalanceFiat
property string formattedOnchainBalance
property string formattedOnchainBalanceFiat
property string formattedUnconfirmed
property string formattedUnconfirmedFiat
property string formattedFrozen
property string formattedFrozenFiat
property string formattedLightningBalance
property string formattedLightningBalanceFiat
function setBalances() {
root.formattedTotalBalance = Config.formatSats(Daemon.currentWallet.totalBalance)
root.formattedOnchainBalance = Config.formatSats(Daemon.currentWallet.confirmedBalance)
root.formattedUnconfirmed = Config.formatSats(Daemon.currentWallet.unconfirmedBalance)
root.formattedFrozen = Config.formatSats(Daemon.currentWallet.frozenBalance)
root.formattedLightningBalance = Config.formatSats(Daemon.currentWallet.lightningBalance)
if (Daemon.fx.enabled) {
root.formattedTotalBalanceFiat = Daemon.fx.fiatValue(Daemon.currentWallet.totalBalance, false)
root.formattedOnchainBalanceFiat = Daemon.fx.fiatValue(Daemon.currentWallet.confirmedBalance, false)
root.formattedUnconfirmedFiat = Daemon.fx.fiatValue(Daemon.currentWallet.unconfirmedBalance, false)
root.formattedFrozenFiat = Daemon.fx.fiatValue(Daemon.currentWallet.frozenBalance, false)
root.formattedLightningBalanceFiat = Daemon.fx.fiatValue(Daemon.currentWallet.lightningBalance, false)
}
}
GridLayout {
id: layout
columns: 2
Label {
font.pixelSize: constants.fontSizeXLarge
text: qsTr('Balance')
color: Material.accentColor
Layout.columnSpan: 2
Layout.alignment: Qt.AlignHCenter
}
TextHighlightPane {
id: balancePane
Rectangle {
color: Material.accentColor
Layout.columnSpan: 2
Layout.fillWidth: true
Layout.preferredHeight: 1
}
GridLayout {
columns: 3
Label {
font.pixelSize: constants.fontSizeXLarge
text: qsTr('Total:')
text: qsTr('Balance:')
color: Material.accentColor
Layout.alignment: Qt.AlignRight | Qt.AlignTop
}
ColumnLayout {
spacing: 0
RowLayout {
Label {
font.pixelSize: constants.fontSizeXLarge
font.family: FixedFont
@ -73,138 +41,36 @@ Frame {
color: Material.accentColor
text: Config.baseUnit
}
}
Label {
Item {
visible: Daemon.fx.enabled
font.pixelSize: constants.fontSizeSmall
color: constants.mutedForeground
text: root.formattedTotalBalanceFiat + ' ' + Daemon.fx.fiatCurrency
}
}
Label {
font.pixelSize: constants.fontSizeMedium
text: qsTr('On-chain:')
color: Material.accentColor
Layout.alignment: Qt.AlignRight | Qt.AlignTop
}
ColumnLayout {
spacing: 0
RowLayout {
Label {
font.pixelSize: constants.fontSizeMedium
font.family: FixedFont
text: formattedOnchainBalance
}
Label {
font.pixelSize: constants.fontSizeMedium
color: Material.accentColor
text: Config.baseUnit
}
Layout.preferredHeight: 1
Layout.preferredWidth: 1
}
Label {
Layout.alignment: Qt.AlignRight
visible: Daemon.fx.enabled
font.pixelSize: constants.fontSizeSmall
font.pixelSize: constants.fontSizeLarge
color: constants.mutedForeground
text: root.formattedOnchainBalanceFiat + ' ' + Daemon.fx.fiatCurrency
}
}
Label {
visible: Daemon.currentWallet.unconfirmedBalance.satsInt > 0
font.pixelSize: constants.fontSizeMedium
text: qsTr('Unconfirmed:')
color: Material.accentColor
Layout.alignment: Qt.AlignRight | Qt.AlignTop
}
ColumnLayout {
visible: Daemon.currentWallet.unconfirmedBalance.satsInt > 0
spacing: 0
RowLayout {
Label {
font.pixelSize: constants.fontSizeMedium
font.family: FixedFont
text: formattedUnconfirmed
}
Label {
font.pixelSize: constants.fontSizeMedium
color: Material.accentColor
text: Config.baseUnit
}
text: formattedTotalBalanceFiat
}
Label {
visible: Daemon.fx.enabled
font.pixelSize: constants.fontSizeSmall
font.pixelSize: constants.fontSizeLarge
color: constants.mutedForeground
text: root.formattedUnconfirmedFiat + ' ' + Daemon.fx.fiatCurrency
text: Daemon.fx.fiatCurrency
}
}
Label {
visible: Daemon.currentWallet.frozenBalance.satsInt > 0
font.pixelSize: constants.fontSizeMedium
text: qsTr('Frozen:')
color: Material.accentColor
Layout.alignment: Qt.AlignRight | Qt.AlignTop
}
ColumnLayout {
visible: Daemon.currentWallet.frozenBalance.satsInt > 0
spacing: 0
RowLayout {
Label {
font.pixelSize: constants.fontSizeMedium
font.family: FixedFont
text: root.formattedFrozen
}
Label {
font.pixelSize: constants.fontSizeMedium
color: Material.accentColor
text: Config.baseUnit
}
}
Label {
visible: Daemon.fx.enabled
font.pixelSize: constants.fontSizeSmall
color: constants.mutedForeground
text: root.formattedFrozenFiat + ' ' + Daemon.fx.fiatCurrency
MouseArea {
anchors.fill: balancePane
onClicked: {
app.stack.pushOnRoot(Qt.resolvedUrl('../WalletDetails.qml'))
}
}
Label {
visible: Daemon.currentWallet.isLightning
font.pixelSize: constants.fontSizeMedium
text: qsTr('Lightning:')
color: Material.accentColor
Layout.alignment: Qt.AlignRight | Qt.AlignTop
}
ColumnLayout {
visible: Daemon.currentWallet.isLightning
spacing: 0
RowLayout {
Label {
font.pixelSize: constants.fontSizeMedium
font.family: FixedFont
text: formattedLightningBalance
}
Label {
font.pixelSize: constants.fontSizeMedium
color: Material.accentColor
text: Config.baseUnit
}
}
Label {
visible: Daemon.fx.enabled
font.pixelSize: constants.fontSizeSmall
color: constants.mutedForeground
text: root.formattedLightningBalanceFiat + ' ' + Daemon.fx.fiatCurrency
}
}
}
// instead of all these explicit connections, we should expose
// formatted balances directly as a property

Loading…
Cancel
Save