diff --git a/electrum/gui/qml/components/Invoices.qml b/electrum/gui/qml/components/Invoices.qml index 8e243d154..9d7bc6086 100644 --- a/electrum/gui/qml/components/Invoices.qml +++ b/electrum/gui/qml/components/Invoices.qml @@ -44,6 +44,7 @@ Pane { anchors.fill: parent clip: true currentIndex: -1 + model: DelegateModel { id: delegateModel model: Daemon.currentWallet.invoiceModel diff --git a/electrum/gui/qml/components/ReceiveRequests.qml b/electrum/gui/qml/components/ReceiveRequests.qml index 456544728..9c5e0f3d1 100644 --- a/electrum/gui/qml/components/ReceiveRequests.qml +++ b/electrum/gui/qml/components/ReceiveRequests.qml @@ -12,70 +12,78 @@ import "controls" Pane { id: root objectName: 'ReceiveRequests' - property string selected_key + + padding: 0 ColumnLayout { anchors.fill: parent + spacing: 0 - InfoTextArea { + ColumnLayout { Layout.fillWidth: true - Layout.bottomMargin: constants.paddingLarge - visible: !Config.userKnowsPressAndHold - text: qsTr('To access this list from the main screen, press and hold the Receive button') - } + Layout.margins: constants.paddingLarge - Heading { - text: qsTr('Pending requests') - } + InfoTextArea { + Layout.fillWidth: true + Layout.bottomMargin: constants.paddingLarge + visible: !Config.userKnowsPressAndHold + text: qsTr('To access this list from the main screen, press and hold the Receive button') + } - Frame { - background: PaneInsetBackground {} + Heading { + text: qsTr('Pending requests') + } - verticalPadding: 0 - horizontalPadding: 0 - Layout.fillHeight: true - Layout.fillWidth: true + Frame { + background: PaneInsetBackground {} + + verticalPadding: 0 + horizontalPadding: 0 + Layout.fillHeight: true + Layout.fillWidth: true - ListView { - id: listview - anchors.fill: parent - clip: true - - model: DelegateModel { - id: delegateModel - model: Daemon.currentWallet.requestModel - delegate: InvoiceDelegate { - onClicked: { - app.stack.getRoot().openRequest(model.key) - selected_key = '' + ListView { + id: listview + anchors.fill: parent + clip: true + currentIndex: -1 + + model: DelegateModel { + id: delegateModel + model: Daemon.currentWallet.requestModel + delegate: InvoiceDelegate { + onClicked: { + app.stack.getRoot().openRequest(model.key) + listview.currentIndex = -1 + } + onPressAndHold: listview.currentIndex = index } - onPressAndHold: { - selected_key = model.key - } } - } - add: Transition { - NumberAnimation { properties: 'scale'; from: 0.75; to: 1; duration: 500 } - NumberAnimation { properties: 'opacity'; from: 0; to: 1; duration: 500 } - } - addDisplaced: Transition { - SpringAnimation { properties: 'y'; duration: 200; spring: 5; damping: 0.5; mass: 2 } - } - remove: Transition { - NumberAnimation { properties: 'scale'; to: 0.75; duration: 300 } - NumberAnimation { properties: 'opacity'; to: 0; duration: 300 } - } - removeDisplaced: Transition { - SequentialAnimation { - PauseAnimation { duration: 200 } - SpringAnimation { properties: 'y'; duration: 100; spring: 5; damping: 0.5; mass: 2 } + add: Transition { + NumberAnimation { properties: 'scale'; from: 0.75; to: 1; duration: 500 } + NumberAnimation { properties: 'opacity'; from: 0; to: 1; duration: 500 } + } + addDisplaced: Transition { + SpringAnimation { properties: 'y'; duration: 200; spring: 5; damping: 0.5; mass: 2 } } - } - ScrollIndicator.vertical: ScrollIndicator { } + remove: Transition { + NumberAnimation { properties: 'scale'; to: 0.75; duration: 300 } + NumberAnimation { properties: 'opacity'; to: 0; duration: 300 } + } + removeDisplaced: Transition { + SequentialAnimation { + PauseAnimation { duration: 200 } + SpringAnimation { properties: 'y'; duration: 100; spring: 5; damping: 0.5; mass: 2 } + } + } + + ScrollIndicator.vertical: ScrollIndicator { } + } } } + ButtonContainer { Layout.fillWidth: true FlatButton { @@ -83,10 +91,9 @@ Pane { Layout.preferredWidth: 1 text: qsTr('Delete') icon.source: '../../icons/delete.png' - visible: selected_key != '' + visible: listview.currentIndex >= 0 onClicked: { - Daemon.currentWallet.delete_request(selected_key) - selected_key = '' + Daemon.currentWallet.delete_request(listview.currentItem.getKey()) } } FlatButton { @@ -94,10 +101,9 @@ Pane { Layout.preferredWidth: 1 text: qsTr('View') icon.source: '../../icons/tab_receive.png' - visible: selected_key != '' + visible: listview.currentIndex >= 0 onClicked: { - app.stack.getRoot().openRequest(selected_key) - selected_key = '' + app.stack.getRoot().openRequest(listview.currentItem.getKey()) } } }