Bitcoin Core
31.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
qt
receiverequestdialog.cpp
Go to the documentation of this file.
1
// Copyright (c) 2011-present The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#include <
qt/receiverequestdialog.h
>
6
#include <qt/forms/ui_receiverequestdialog.h>
7
8
#include <
qt/bitcoinunits.h
>
9
#include <
qt/guiutil.h
>
10
#include <
qt/optionsmodel.h
>
11
#include <
qt/qrimagewidget.h
>
12
#include <
qt/walletmodel.h
>
13
14
#include <QDialog>
15
#include <QString>
16
17
#include <bitcoin-build-config.h>
// IWYU pragma: keep
18
19
ReceiveRequestDialog::ReceiveRequestDialog
(QWidget* parent)
20
: QDialog(parent,
GUIUtil
::dialog_flags),
21
ui
(new
Ui
::
ReceiveRequestDialog
)
22
{
23
ui
->setupUi(
this
);
24
GUIUtil::handleCloseWindowShortcut
(
this
);
25
}
26
27
ReceiveRequestDialog::~ReceiveRequestDialog
()
28
{
29
delete
ui
;
30
}
31
32
void
ReceiveRequestDialog::setModel
(
WalletModel
*_model)
33
{
34
this->
model
= _model;
35
36
if
(_model)
37
connect(_model->
getOptionsModel
(), &
OptionsModel::displayUnitChanged
,
this
, &
ReceiveRequestDialog::updateDisplayUnit
);
38
39
// update the display unit if necessary
40
update();
41
}
42
43
void
ReceiveRequestDialog::setInfo
(
const
SendCoinsRecipient
&_info)
44
{
45
this->
info
= _info;
46
setWindowTitle(tr(
"Request payment to %1"
).arg(
info
.label.isEmpty() ?
info
.address :
info
.label));
47
QString uri =
GUIUtil::formatBitcoinURI
(
info
);
48
49
#ifdef USE_QRCODE
50
if
(
ui
->qr_code->setQR(uri,
info
.address)) {
51
connect(
ui
->btnSaveAs, &QPushButton::clicked,
ui
->qr_code, &
QRImageWidget::saveImage
);
52
}
else
{
53
ui
->btnSaveAs->setEnabled(
false
);
54
}
55
#else
56
ui
->btnSaveAs->hide();
57
ui
->qr_code->hide();
58
#endif
59
60
ui
->uri_content->setText(
"<a href=\""
+ uri +
"\">"
+
GUIUtil::HtmlEscape
(uri) +
"</a>"
);
61
ui
->address_content->setText(
info
.address);
62
63
if
(!
info
.amount) {
64
ui
->amount_tag->hide();
65
ui
->amount_content->hide();
66
}
// Amount is set in updateDisplayUnit() slot.
67
updateDisplayUnit
();
68
69
if
(!
info
.label.isEmpty()) {
70
ui
->label_content->setText(
info
.label);
71
}
else
{
72
ui
->label_tag->hide();
73
ui
->label_content->hide();
74
}
75
76
if
(!
info
.message.isEmpty()) {
77
ui
->message_content->setText(
info
.message);
78
}
else
{
79
ui
->message_tag->hide();
80
ui
->message_content->hide();
81
}
82
83
if
(!
model
->getWalletName().isEmpty()) {
84
ui
->wallet_content->setText(
model
->getWalletName());
85
}
else
{
86
ui
->wallet_tag->hide();
87
ui
->wallet_content->hide();
88
}
89
90
ui
->btnVerify->setVisible(
model
->wallet().hasExternalSigner());
91
92
connect(
ui
->btnVerify, &QPushButton::clicked, [
this
] {
93
model->displayAddress(info.address.toStdString());
94
});
95
}
96
97
void
ReceiveRequestDialog::updateDisplayUnit
()
98
{
99
if
(!
model
)
return
;
100
ui
->amount_content->setText(
BitcoinUnits::formatWithUnit
(
model
->getOptionsModel()->getDisplayUnit(),
info
.amount));
101
}
102
103
void
ReceiveRequestDialog::on_btnCopyURI_clicked
()
104
{
105
GUIUtil::setClipboard
(
GUIUtil::formatBitcoinURI
(
info
));
106
}
107
108
void
ReceiveRequestDialog::on_btnCopyAddress_clicked
()
109
{
110
GUIUtil::setClipboard
(
info
.address);
111
}
bitcoinunits.h
BitcoinUnits::formatWithUnit
static QString formatWithUnit(Unit unit, const CAmount &amount, bool plussign=false, SeparatorStyle separators=SeparatorStyle::STANDARD)
Format as string (with unit).
Definition
bitcoinunits.cpp:131
OptionsModel::displayUnitChanged
void displayUnitChanged(BitcoinUnit unit)
QRImageWidget::saveImage
void saveImage()
Definition
qrimagewidget.cpp:117
ReceiveRequestDialog::ReceiveRequestDialog
ReceiveRequestDialog(QWidget *parent=nullptr)
Definition
receiverequestdialog.cpp:19
ReceiveRequestDialog::updateDisplayUnit
void updateDisplayUnit()
Definition
receiverequestdialog.cpp:97
ReceiveRequestDialog::setModel
void setModel(WalletModel *model)
Definition
receiverequestdialog.cpp:32
ReceiveRequestDialog::ui
Ui::ReceiveRequestDialog * ui
Definition
receiverequestdialog.h:35
ReceiveRequestDialog::~ReceiveRequestDialog
~ReceiveRequestDialog()
Definition
receiverequestdialog.cpp:27
ReceiveRequestDialog::setInfo
void setInfo(const SendCoinsRecipient &info)
Definition
receiverequestdialog.cpp:43
ReceiveRequestDialog::info
SendCoinsRecipient info
Definition
receiverequestdialog.h:37
ReceiveRequestDialog::on_btnCopyAddress_clicked
void on_btnCopyAddress_clicked()
Definition
receiverequestdialog.cpp:108
ReceiveRequestDialog::model
WalletModel * model
Definition
receiverequestdialog.h:36
ReceiveRequestDialog::on_btnCopyURI_clicked
void on_btnCopyURI_clicked()
Definition
receiverequestdialog.cpp:103
SendCoinsRecipient
Definition
sendcoinsrecipient.h:16
WalletModel
Interface to Bitcoin wallet from Qt view code.
Definition
walletmodel.h:49
WalletModel::getOptionsModel
OptionsModel * getOptionsModel() const
Definition
walletmodel.cpp:284
guiutil.h
GUIUtil
Utility functions used by the Bitcoin Qt UI.
Definition
bitcoingui.h:58
GUIUtil::HtmlEscape
QString HtmlEscape(const QString &str, bool fMultiLine)
Definition
guiutil.cpp:249
GUIUtil::handleCloseWindowShortcut
void handleCloseWindowShortcut(QWidget *w)
Definition
guiutil.cpp:424
GUIUtil::formatBitcoinURI
QString formatBitcoinURI(const SendCoinsRecipient &info)
Definition
guiutil.cpp:211
GUIUtil::setClipboard
void setClipboard(const QString &str)
Definition
guiutil.cpp:661
Ui
Definition
addressbookpage.h:14
optionsmodel.h
qrimagewidget.h
receiverequestdialog.h
walletmodel.h
Generated on
for Bitcoin Core by
1.17.0