openuridialog.cpp
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 }