1 #include <qt/receivetokenpage.h>
2 #include <qt/forms/ui_receivetokenpage.h>
3 
4 #include <qt/guiutil.h>
5 #include <qt/guiconstants.h>
6 #include <qt/receiverequestdialog.h>
7 #include <qt/platformstyle.h>
8 
ReceiveTokenPage(const PlatformStyle * _platformStyle,QWidget * parent)9 ReceiveTokenPage::ReceiveTokenPage(const PlatformStyle *_platformStyle, QWidget *parent) :
10     QDialog(parent),
11     ui(new Ui::ReceiveTokenPage),
12     platformStyle(_platformStyle)
13 {
14     ui->setupUi(this);
15     connect(ui->copyAddressButton, &QToolButton::clicked, this, &ReceiveTokenPage::on_copyAddressClicked);
16     ui->copyAddressButton->setVisible(false);
17     setAddress("");
18 }
19 
~ReceiveTokenPage()20 ReceiveTokenPage::~ReceiveTokenPage()
21 {
22     delete ui;
23 }
24 
setAddress(QString address)25 void ReceiveTokenPage::setAddress(QString address)
26 {
27     m_address = address;
28     createQRCode();
29 }
30 
setSymbol(QString symbol)31 void ReceiveTokenPage::setSymbol(QString symbol)
32 {
33     QString addressText = symbol.isEmpty() ? "" : (QString("%1 %2:").arg(symbol, tr("Address")));
34     ui->labelTokenAddressText->setText(addressText);
35     setWindowTitle(QString("%1 %2").arg(symbol, tr("Receive")));
36 }
37 
on_copyAddressClicked()38 void ReceiveTokenPage::on_copyAddressClicked()
39 {
40     if(!m_address.isEmpty())
41         GUIUtil::setClipboard(m_address);
42 }
43 
createQRCode()44 void ReceiveTokenPage::createQRCode()
45 {
46     SendCoinsRecipient info;
47     if(!m_address.isEmpty())
48     {
49         info.address = m_address;
50         QString uri = GUIUtil::formatBitcoinURI(info);
51         if(ui->lblQRCode->setQR(uri))
52         {
53             ui->widgetQRMargin->setVisible(true);
54             ui->lblQRCode->setScaledContents(true);
55         }
56         else
57         {
58             ui->widgetQRMargin->setVisible(false);
59         }
60         ui->labelTokenAddress->setText(m_address);
61         ui->copyAddressButton->setVisible(true);
62     }
63     else
64     {
65         ui->lblQRCode->clear();
66         ui->labelTokenAddress->setText("");
67         ui->labelTokenAddressText->setText("");
68         ui->copyAddressButton->setVisible(false);
69     }
70 }
71