Browse Source

qml: move remaining buttons to bottom of dialogs

master
Sander van Grieken 3 years ago
parent
commit
9d425b5b23
  1. 102
      electrum/gui/qml/components/ExportTxDialog.qml
  2. 119
      electrum/gui/qml/components/GenericShareDialog.qml
  3. 2
      electrum/gui/qml/components/LoadingWalletDialog.qml
  4. 98
      electrum/gui/qml/components/ReceiveDialog.qml
  5. 2
      electrum/gui/qml/components/controls/Toaster.qml

102
electrum/gui/qml/components/ExportTxDialog.qml

@ -27,63 +27,67 @@ ElDialog {
color: "#aa000000" color: "#aa000000"
} }
Flickable { padding: 0
anchors.fill: parent
contentHeight: rootLayout.height
clip:true
interactive: height < contentHeight
ColumnLayout { ColumnLayout {
id: rootLayout anchors.fill: parent
width: parent.width spacing: 0
spacing: constants.paddingMedium
Flickable {
Layout.fillWidth: true
Layout.fillHeight: true
contentHeight: rootLayout.height
clip:true
interactive: height < contentHeight
ColumnLayout {
id: rootLayout
width: parent.width
spacing: constants.paddingMedium
Item {
Layout.fillWidth: true
Layout.preferredHeight: qr.height
Layout.topMargin: constants.paddingSmall
Layout.bottomMargin: constants.paddingSmall
QRImage {
id: qr
qrdata: dialog.text_qr
anchors.centerIn: parent
}
}
Item { Label {
Layout.fillWidth: true visible: dialog.text_help
Layout.preferredHeight: qr.height text: dialog.text_help
Layout.topMargin: constants.paddingSmall wrapMode: Text.Wrap
Layout.bottomMargin: constants.paddingSmall Layout.fillWidth: true
QRImage {
id: qr
qrdata: dialog.text_qr
anchors.centerIn: parent
} }
}
Label {
visible: dialog.text_help
text: dialog.text_help
wrapMode: Text.Wrap
Layout.fillWidth: true
} }
}
Rectangle { ButtonContainer {
height: 1 Layout.fillWidth: true
Layout.preferredWidth: qr.width
Layout.alignment: Qt.AlignHCenter
color: Material.accentColor
}
ButtonContainer { FlatButton {
// Layout.fillWidth: true Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter Layout.preferredWidth: 1
text: qsTr('Copy')
FlatButton { icon.source: '../../icons/copy_bw.png'
Layout.minimumWidth: dialog.width * 1/4 onClicked: {
text: qsTr('Copy') AppController.textToClipboard(dialog.text)
icon.source: '../../icons/copy_bw.png' toaster.show(this, qsTr('Copied!'))
onClicked: {
AppController.textToClipboard(dialog.text)
toaster.show(this, qsTr('Copied!'))
}
} }
FlatButton { }
Layout.minimumWidth: dialog.width * 1/4 FlatButton {
text: qsTr('Share') Layout.fillWidth: true
icon.source: '../../icons/share.png' Layout.preferredWidth: 1
onClicked: { text: qsTr('Share')
AppController.doShare(dialog.text, dialog.title) icon.source: '../../icons/share.png'
} onClicked: {
AppController.doShare(dialog.text, dialog.title)
} }
} }
} }

119
electrum/gui/qml/components/GenericShareDialog.qml

@ -25,72 +25,81 @@ ElDialog {
color: "#aa000000" color: "#aa000000"
} }
Flickable { padding: 0
ColumnLayout {
anchors.fill: parent anchors.fill: parent
contentHeight: rootLayout.height spacing: 0
clip:true
interactive: height < contentHeight Flickable {
Layout.fillHeight: true
ColumnLayout { Layout.fillWidth: true
id: rootLayout
width: parent.width contentHeight: rootLayout.height
spacing: constants.paddingMedium clip:true
interactive: height < contentHeight
QRImage {
id: qr ColumnLayout {
render: dialog.enter ? false : true id: rootLayout
qrdata: dialog.text_qr ? dialog.text_qr : dialog.text width: parent.width
Layout.alignment: Qt.AlignHCenter spacing: constants.paddingMedium
Layout.topMargin: constants.paddingSmall
Layout.bottomMargin: constants.paddingSmall QRImage {
} id: qr
render: dialog.enter ? false : true
qrdata: dialog.text_qr ? dialog.text_qr : dialog.text
Layout.alignment: Qt.AlignHCenter
Layout.topMargin: constants.paddingSmall
Layout.bottomMargin: constants.paddingSmall
}
TextHighlightPane {
Layout.alignment: Qt.AlignHCenter
Layout.fillWidth: true
Layout.maximumWidth: qr.width
Label {
width: parent.width
text: dialog.text
wrapMode: Text.Wrap
font.pixelSize: constants.fontSizeLarge
font.family: FixedFont
maximumLineCount: 4
elide: Text.ElideRight
}
}
TextHighlightPane {
Layout.fillWidth: true
Label { Label {
width: parent.width visible: dialog.text_help
text: dialog.text text: dialog.text_help
wrapMode: Text.Wrap wrapMode: Text.Wrap
font.pixelSize: constants.fontSizeLarge Layout.fillWidth: true
font.family: FixedFont
maximumLineCount: 4
elide: Text.ElideRight
} }
}
Label {
visible: dialog.text_help
text: dialog.text_help
wrapMode: Text.Wrap
Layout.fillWidth: true
} }
}
Rectangle { ButtonContainer {
height: 1 Layout.fillWidth: true
Layout.preferredWidth: qr.width
Layout.alignment: Qt.AlignHCenter
color: Material.accentColor
}
ButtonContainer { FlatButton {
Layout.alignment: Qt.AlignHCenter Layout.fillWidth: true
Layout.preferredWidth: 1
FlatButton { text: qsTr('Copy')
Layout.minimumWidth: dialog.width * 1/4 icon.source: '../../icons/copy_bw.png'
text: qsTr('Copy') onClicked: {
icon.source: '../../icons/copy_bw.png' AppController.textToClipboard(dialog.text)
onClicked: { toaster.show(this, qsTr('Copied!'))
AppController.textToClipboard(dialog.text)
toaster.show(this, qsTr('Copied!'))
}
} }
FlatButton { }
Layout.minimumWidth: dialog.width * 1/4 FlatButton {
text: qsTr('Share') Layout.fillWidth: true
icon.source: '../../icons/share.png' Layout.preferredWidth: 1
onClicked: {
AppController.doShare(dialog.text, dialog.title) text: qsTr('Share')
} icon.source: '../../icons/share.png'
onClicked: {
AppController.doShare(dialog.text, dialog.title)
} }
} }
} }

2
electrum/gui/qml/components/LoadingWalletDialog.qml

@ -5,6 +5,8 @@ import QtQuick.Controls.Material 2.0
import org.electrum 1.0 import org.electrum 1.0
import "controls"
ElDialog { ElDialog {
id: dialog id: dialog

98
electrum/gui/qml/components/ReceiveDialog.qml

@ -73,6 +73,7 @@ ElDialog {
] ]
Rectangle { Rectangle {
id: qrbg
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
Layout.topMargin: constants.paddingSmall Layout.topMargin: constants.paddingSmall
Layout.bottomMargin: constants.paddingSmall Layout.bottomMargin: constants.paddingSmall
@ -201,14 +202,13 @@ ElDialog {
Rectangle { Rectangle {
height: 1 height: 1
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: buttons.width Layout.preferredWidth: qrbg.width
color: Material.accentColor color: Material.accentColor
} }
GridLayout { GridLayout {
columns: 2 columns: 2
// visible: request.message || !request.amount.isEmpty Layout.maximumWidth: qrbg.width
Layout.maximumWidth: buttons.width
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
Label { Label {
@ -241,57 +241,63 @@ ElDialog {
} }
Rectangle { Rectangle {
// visible: request.message || !request.amount.isEmpty
height: 1 height: 1
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: buttons.width Layout.preferredWidth: qrbg.width
color: Material.accentColor color: Material.accentColor
} }
ButtonContainer { }
id: buttons
Layout.alignment: Qt.AlignHCenter }
FlatButton {
Layout.minimumWidth: dialog.width * 1/4 ButtonContainer {
icon.source: '../../icons/copy_bw.png' id: buttons
icon.color: 'transparent' Layout.fillWidth: true
text: 'Copy'
onClicked: { FlatButton {
if (request.isLightning && rootLayout.state == 'bolt11') Layout.fillWidth: true
AppController.textToClipboard(_bolt11) Layout.preferredWidth: 1
else if (rootLayout.state == 'bip21uri')
AppController.textToClipboard(_bip21uri) icon.source: '../../icons/copy_bw.png'
else icon.color: 'transparent'
AppController.textToClipboard(_address) text: 'Copy'
toaster.show(this, qsTr('Copied!')) onClicked: {
} if (request.isLightning && rootLayout.state == 'bolt11')
} AppController.textToClipboard(_bolt11)
FlatButton { else if (rootLayout.state == 'bip21uri')
Layout.minimumWidth: dialog.width * 1/4 AppController.textToClipboard(_bip21uri)
icon.source: '../../icons/share.png' else
text: 'Share' AppController.textToClipboard(_address)
onClicked: { toaster.show(this, qsTr('Copied!'))
enabled = false
if (request.isLightning && rootLayout.state == 'bolt11')
AppController.doShare(_bolt11, qsTr('Payment Request'))
else if (rootLayout.state == 'bip21uri')
AppController.doShare(_bip21uri, qsTr('Payment Request'))
else
AppController.doShare(_address, qsTr('Onchain address'))
enabled = true
}
}
FlatButton {
Layout.minimumWidth: dialog.width * 1/4
Layout.alignment: Qt.AlignHCenter
icon.source: '../../icons/pen.png'
text: qsTr('Edit')
onClicked: receiveDetailsDialog.open()
}
} }
} }
FlatButton {
Layout.fillWidth: true
Layout.preferredWidth: 1
icon.source: '../../icons/share.png'
text: 'Share'
onClicked: {
enabled = false
if (request.isLightning && rootLayout.state == 'bolt11')
AppController.doShare(_bolt11, qsTr('Payment Request'))
else if (rootLayout.state == 'bip21uri')
AppController.doShare(_bip21uri, qsTr('Payment Request'))
else
AppController.doShare(_address, qsTr('Onchain address'))
enabled = true
}
}
FlatButton {
Layout.fillWidth: true
Layout.preferredWidth: 1
icon.source: '../../icons/pen.png'
text: qsTr('Edit')
onClicked: receiveDetailsDialog.open()
}
} }
} }

2
electrum/gui/qml/components/controls/Toaster.qml

@ -17,7 +17,7 @@ Item {
function show(item, text) { function show(item, text) {
_text = text _text = text
var r = item.mapToItem(parent, item.x, item.y) var r = item.mapToItem(parent, item.x, item.y)
x = r.x x = r.x - (toaster.width - item.width)/2
y = r.y - toaster.height - constants.paddingLarge y = r.y - toaster.height - constants.paddingLarge
toaster._y = y - 35 toaster._y = y - 35
ani.restart() ani.restart()

Loading…
Cancel
Save