0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-04 13:55:23 -05:00

gui: Paste button in Open URI dialog

Co-authored-by: Emil Engler <me@emilengler.com>
Co-authored-by: =?UTF-8?q?Jo=C3=A3o=20Barbosa?= <joao.paulo.barbosa@gmail.com>
Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Co-authored-by: Jarol Rodriguez <jarolrod@tutanota.com>
This commit is contained in:
Kristaps Kaupe 2021-05-05 14:39:38 +03:00
parent 16ccb3a1cd
commit dbde0558ce
No known key found for this signature in database
GPG key ID: 33E472FE870C7E5D
4 changed files with 47 additions and 8 deletions

View file

@ -872,7 +872,7 @@ void BitcoinGUI::showHelpMessageClicked()
#ifdef ENABLE_WALLET
void BitcoinGUI::openClicked()
{
OpenURIDialog dlg(this);
OpenURIDialog dlg(platformStyle, this);
if(dlg.exec())
{
Q_EMIT receivedURI(dlg.getURI());

View file

@ -30,6 +30,27 @@
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="pasteButton">
<property name="toolTip">
<string extracomment="Tooltip text for button that allows you to paste an address that is in your clipboard.">Paste address from clipboard</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../bitcoin.qrc">
<normaloff>:/icons/editpaste</normaloff>:/icons/editpaste
</iconset>
</property>
<property name="iconSize">
<size>
<width>22</width>
<height>22</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item>

View file

@ -6,15 +6,20 @@
#include <qt/forms/ui_openuridialog.h>
#include <qt/guiutil.h>
#include <qt/platformstyle.h>
#include <qt/sendcoinsrecipient.h>
#include <QAbstractButton>
#include <QLineEdit>
#include <QUrl>
OpenURIDialog::OpenURIDialog(QWidget *parent) :
QDialog(parent, GUIUtil::dialog_flags),
ui(new Ui::OpenURIDialog)
OpenURIDialog::OpenURIDialog(const PlatformStyle* platformStyle, QWidget* parent) : QDialog(parent, GUIUtil::dialog_flags),
ui(new Ui::OpenURIDialog),
m_platform_style(platformStyle)
{
ui->setupUi(this);
ui->pasteButton->setIcon(m_platform_style->SingleColorIcon(":/icons/editpaste"));
QObject::connect(ui->pasteButton, &QAbstractButton::clicked, ui->uriEdit, &QLineEdit::paste);
GUIUtil::handleCloseWindowShortcut(this);
}
@ -32,11 +37,19 @@ QString OpenURIDialog::getURI()
void OpenURIDialog::accept()
{
SendCoinsRecipient rcp;
if(GUIUtil::parseBitcoinURI(getURI(), &rcp))
{
if (GUIUtil::parseBitcoinURI(getURI(), &rcp)) {
/* Only accept value URIs */
QDialog::accept();
} else {
ui->uriEdit->setValid(false);
}
}
void OpenURIDialog::changeEvent(QEvent* e)
{
if (e->type() == QEvent::PaletteChange) {
ui->pasteButton->setIcon(m_platform_style->SingleColorIcon(":/icons/editpaste"));
}
QDialog::changeEvent(e);
}

View file

@ -7,6 +7,8 @@
#include <QDialog>
class PlatformStyle;
namespace Ui {
class OpenURIDialog;
}
@ -16,16 +18,19 @@ class OpenURIDialog : public QDialog
Q_OBJECT
public:
explicit OpenURIDialog(QWidget *parent);
explicit OpenURIDialog(const PlatformStyle* platformStyle, QWidget* parent);
~OpenURIDialog();
QString getURI();
protected Q_SLOTS:
void accept() override;
void changeEvent(QEvent* e) override;
private:
Ui::OpenURIDialog *ui;
Ui::OpenURIDialog* ui;
const PlatformStyle* m_platform_style;
};
#endif // BITCOIN_QT_OPENURIDIALOG_H