Skip to content

Commit

Permalink
qml: Introduce RequestConfirmation page
Browse files Browse the repository at this point in the history
This page contains the details of a payment request. It is
pushed onto the RequestPayment page's stack after the user
has clicke don Continue.
  • Loading branch information
johnny9 committed Nov 22, 2024
1 parent 798f48b commit 1b869eb
Show file tree
Hide file tree
Showing 4 changed files with 176 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/Makefile.qt.include
Original file line number Diff line number Diff line change
Expand Up @@ -441,6 +441,7 @@ QML_RES_QML = \
qml/pages/wallet/CreatePassword.qml \
qml/pages/wallet/CreateWalletWizard.qml \
qml/pages/wallet/DesktopWallets.qml \
qml/pages/wallet/RequestConfirmation.qml \
qml/pages/wallet/RequestPayment.qml \
qml/pages/wallet/WalletBadge.qml \
qml/pages/wallet/WalletSelect.qml
Expand Down
1 change: 1 addition & 0 deletions src/qml/bitcoin_qml.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@
<file>pages/wallet/CreatePassword.qml</file>
<file>pages/wallet/CreateWalletWizard.qml</file>
<file>pages/wallet/DesktopWallets.qml</file>
<file>pages/wallet/RequestConfirmation.qml</file>
<file>pages/wallet/RequestPayment.qml</file>
<file>pages/wallet/WalletBadge.qml</file>
<file>pages/wallet/WalletSelect.qml</file>
Expand Down
167 changes: 167 additions & 0 deletions src/qml/pages/wallet/RequestConfirmation.qml
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
// Copyright (c) 2024 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import org.bitcoincore.qt 1.0

import "../../controls"
import "../../components"
import "../settings"

Page {
id: root
background: null
property string label: "alice"
property string message: "payment for goods"
property string amount: "0.000"

header: NavigationBar2 {
id: navbar
leftItem: NavButton {
iconSource: "image://images/caret-left"
text: qsTr("Back")
onClicked: {
root.StackView.view.pop()
}
}
centerItem: Item {
id: header
Layout.fillWidth: true

CoreText {
anchors.left: parent.left
text: qsTr("Payment request")
font.pixelSize: 21
bold: true
}
}
}

ScrollView {
clip: true
width: parent.width
height: parent.height
contentWidth: width

ColumnLayout {
id: columnLayout
anchors.horizontalCenter: parent.horizontalCenter
width: Math.min(parent.width, 450)
spacing: 30

Image {
width: 60
height: 60
Layout.alignment: Qt.AlignHCenter
source: "image://images/pending"
sourceSize.width: 60
sourceSize.height: 60
}

CoreText {
Layout.alignment: Qt.AlignHCenter
text: qsTr("Created just now")
color: Theme.color.neutral7
font.pixelSize: 18
}

LabeledTextInput {
id: labelInput
Layout.fillWidth: true
labelText: qsTr("Label")
visible: label != ""
enabled: false
text: label
}

Item {
BitcoinAmount {
id: bitcoinAmount
}

height: 50
Layout.fillWidth: true
visible: amount != ""
CoreText {
anchors.left: parent.left
anchors.top: parent.top
color: Theme.color.neutral7
text: qsTr("Amount")
font.pixelSize: 15
}

TextField {
id: bitcoinAmountText
anchors.left: parent.left
anchors.bottom: parent.bottom
leftPadding: 0
font.family: "Inter"
font.styleName: "Regular"
font.pixelSize: 18
color: Theme.color.neutral9
placeholderTextColor: Theme.color.neutral7
background: Item {}
placeholderText: "0.00000000"
text: request.amount
enabled: false
onTextChanged: {
bitcoinAmountText.text = bitcoinAmount.sanitize(bitcoinAmountText.text)
}
}
}


LabeledTextInput {
id: messageInput
Layout.fillWidth: true
labelText: qsTr("Message")
visible: message != ""
enabled: false
text: message
}

Item {
height: addressLabel.height + addressText.height
Layout.fillWidth: true
CoreText {
id: addressLabel
anchors.left: parent.left
anchors.top: parent.top
color: Theme.color.neutral7
text: qsTr("Address")
font.pixelSize: 15
}

CoreText {
id: addressText
anchors.left: parent.left
anchors.right: copyIcon.left
anchors.top: addressLabel.bottom
leftPadding: 0
font.family: "Inter"
font.styleName: "Regular"
font.pixelSize: 18
horizontalAlignment: Text.AlignLeft
color: Theme.color.neutral9
text: "bc1q wvlv mha3 cvhy q6qz tjzu mq2d 63ff htzy xxu6 q8"
}

Icon {
id: copyIcon
anchors.right: parent.right
anchors.verticalCenter: addressText.verticalCenter
source: "image://images/copy"
color: Theme.color.neutral8
size: 30
enabled: true
onClicked: {
Clipboard.setText(addressText.text)
}
}
}
}
}
}
7 changes: 7 additions & 0 deletions src/qml/pages/wallet/RequestPayment.qml
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,16 @@ StackView {
Layout.rightMargin: 20
Layout.alignment: Qt.AlignCenter
text: qsTr("Continue")
onClicked: stackView.push(confirmationComponent)
}
}
}
}
}

Component {
id: confirmationComponent
RequestConfirmation {
}
}
}

0 comments on commit 1b869eb

Please sign in to comment.