openuridialog.cpp raw
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/openuridialog.h>
6 #include <qt/forms/ui_openuridialog.h>
7
8 #include <qt/guiutil.h>
9 #include <qt/platformstyle.h>
10 #include <qt/sendcoinsrecipient.h>
11
12 #include <QAbstractButton>
13 #include <QLineEdit>
14 #include <QUrl>
15
16 OpenURIDialog::OpenURIDialog(const PlatformStyle* platformStyle, QWidget* parent) : QDialog(parent, GUIUtil::dialog_flags),
17 ui(new Ui::OpenURIDialog),
18 m_platform_style(platformStyle)
19 {
20 ui->setupUi(this);
21 ui->pasteButton->setIcon(m_platform_style->SingleColorIcon(":/icons/editpaste"));
22 QObject::connect(ui->pasteButton, &QAbstractButton::clicked, ui->uriEdit, &QLineEdit::paste);
23
24 GUIUtil::handleCloseWindowShortcut(this);
25 }
26
27 OpenURIDialog::~OpenURIDialog()
28 {
29 delete ui;
30 }
31
32 QString OpenURIDialog::getURI()
33 {
34 return ui->uriEdit->text();
35 }
36
37 void OpenURIDialog::accept()
38 {
39 SendCoinsRecipient rcp;
40 if (GUIUtil::parseBitcoinURI(getURI(), &rcp)) {
41 /* Only accept value URIs */
42 QDialog::accept();
43 } else {
44 ui->uriEdit->setValid(false);
45 }
46 }
47
48 void OpenURIDialog::changeEvent(QEvent* e)
49 {
50 if (e->type() == QEvent::PaletteChange) {
51 ui->pasteButton->setIcon(m_platform_style->SingleColorIcon(":/icons/editpaste"));
52 }
53
54 QDialog::changeEvent(e);
55 }
56