PIVX Core  5.6.99
P2P Digital Currency
receivedialog.cpp
Go to the documentation of this file.
1 // Copyright (c) 2019-2021 The PIVX 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 "receivedialog.h"
6 #include "ui_receivedialog.h"
7 
8 #include "qt/walletmodel.h"
9 #include "qtutils.h"
10 
11 #include <QPixmap>
12 
13 ReceiveDialog::ReceiveDialog(QWidget *parent) :
14  FocusedDialog(parent),
15  ui(new Ui::ReceiveDialog)
16 {
17  ui->setupUi(this);
18 
19  // Stylesheet
20  this->setStyleSheet(parent->styleSheet());
21 
22  ui->frameContainer->setProperty("cssClass", "container-dialog");
23  ui->frameContainer->setContentsMargins(10,10,10,10);
24 
25  // Title
26  ui->labelTitle->setProperty("cssClass", "text-title-dialog");
27 
28  // Address
29  ui->labelAddress->setProperty("cssClass", "label-address-box");
30 
31  // QR image
32  QPixmap pixmap(":/res/img/img-qr-test-big.png");
33  ui->labelQrImg->setPixmap(pixmap.scaled(
34  ui->labelQrImg->width(),
35  ui->labelQrImg->height(),
36  Qt::KeepAspectRatio)
37  );
38 
39  // Buttons
40  ui->btnEsc->setText("");
41  ui->btnEsc->setProperty("cssClass", "ic-close");
42  ui->btnCancel->setProperty("cssClass", "btn-dialog-cancel");
43  ui->btnSave->setProperty("cssClass", "btn-primary");
44  ui->btnCancel->setVisible(false);
45 
46  connect(ui->btnEsc, &QPushButton::clicked, this, &ReceiveDialog::close);
47  connect(ui->btnSave, &QPushButton::clicked, this, &ReceiveDialog::onCopy);
48 }
49 
50 void ReceiveDialog::updateQr(const QString& address)
51 {
52  if (!info) info = new SendCoinsRecipient();
53  info->address = address;
54  QString uri = GUIUtil::formatBitcoinURI(*info);
55  ui->labelQrImg->setText("");
56  ui->labelAddress->setText(address);
57  QString error;
58  QPixmap pixmap = encodeToQr(uri, error);
59  if (!pixmap.isNull()) {
60  ui->labelQrImg->setPixmap(pixmap.scaled(ui->labelQrImg->width(), ui->labelQrImg->height()));
61  } else {
62  ui->labelQrImg->setText(!error.isEmpty() ? error : "Error encoding address");
63  }
64 }
65 
67 {
69  accept();
70 }
71 
73 {
74  delete ui;
75 }
SendCoinsRecipient * info
Definition: receivedialog.h:30
Ui::ReceiveDialog * ui
Definition: receivedialog.h:29
ReceiveDialog(QWidget *parent=nullptr)
void updateQr(const QString &address)
QString formatBitcoinURI(const SendCoinsRecipient &info)
Definition: guiutil.cpp:218
void setClipboard(const QString &str)
Definition: guiutil.cpp:670
QPixmap encodeToQr(const QString &str, QString &errorStr, const QColor &qrColor)
Definition: qtutils.cpp:102
bool error(const char *fmt, const Args &... args)
Definition: system.h:77