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. 200
      electrum/gui/qml/components/controls/BalanceSummary.qml

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

@ -26,6 +26,20 @@ Pane {
model: visualModel 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: { readonly property variant sectionLabels: {
'local': qsTr('Local'), 'local': qsTr('Local'),
'mempool': qsTr('Mempool'), 'mempool': qsTr('Mempool'),

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

@ -61,49 +61,6 @@ Item {
Item { Layout.preferredWidth: 1; Layout.preferredHeight: 1 } 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 { RowLayout {
Layout.fillWidth: true Layout.fillWidth: true
FlatButton { FlatButton {

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

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

Loading…
Cancel
Save