PIVX Core  5.6.99
P2P Digital Currency
openuridialog.cpp
Go to the documentation of this file.
1 // Copyright (c) 2019-2021 The PIVX Core developers
2 // Distributed under the MIT/X11 software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #include "openuridialog.h"
6 #include "ui_openuridialog.h"
7 
8 #include "guiutil.h"
9 #include "qtutils.h"
10 #include "walletmodel.h"
11 
12 #include <QUrl>
13 #include <QFile>
14 
15 OpenURIDialog::OpenURIDialog(QWidget* parent) : QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint),
16  ui(new Ui::OpenURIDialog)
17 {
18  ui->setupUi(this);
19  this->setStyleSheet(parent->styleSheet());
20  ui->uriEdit->setPlaceholderText("pivx:");
21 
22  ui->labelSubtitle->setText("URI");
23  setCssProperty(ui->labelSubtitle, "text-title2-dialog");
24  setCssProperty(ui->frame, "container-dialog");
25  setCssProperty(ui->labelTitle, "text-title-dialog");
26 
27  setCssBtnPrimary(ui->pushButtonOK);
28  setCssProperty(ui->pushButtonCancel, "btn-dialog-cancel");
29 
30  initCssEditLine(ui->uriEdit, true);
31  connect(ui->pushButtonOK, &QPushButton::clicked, this, &OpenURIDialog::accept);
32  connect(ui->pushButtonCancel, &QPushButton::clicked, this, &OpenURIDialog::close);
33 }
34 
35 void OpenURIDialog::showEvent(QShowEvent *event)
36 {
37  ui->uriEdit->setFocus();
38 }
39 
41 {
42  delete ui;
43 }
44 
46 {
47  return ui->uriEdit->text();
48 }
49 
51 {
53  if (GUIUtil::parseBitcoinURI(getURI(), &rcp)) {
54  /* Only accept value URIs */
55  QDialog::accept();
56  } else {
57  setCssEditLineDialog(ui->uriEdit, false, true);
58  }
59 }
60 
61 void OpenURIDialog::inform(const QString& str) {
62  if (!snackBar) snackBar = new SnackBar(nullptr, this);
63  snackBar->setText(str);
64  snackBar->resize(this->width(), snackBar->height());
65  openDialog(snackBar, this);
66 }
void showEvent(QShowEvent *event) override
void accept() override
Ui::OpenURIDialog * ui
Definition: openuridialog.h:31
QString getURI()
void inform(const QString &str)
OpenURIDialog(QWidget *parent)
SnackBar * snackBar
Definition: openuridialog.h:32
void setText(const QString &text)
Definition: snackbar.cpp:51
bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out)
Definition: guiutil.cpp:156
void setCssEditLineDialog(QLineEdit *edit, bool isValid, bool forceUpdate)
Definition: qtutils.cpp:287
void initCssEditLine(QLineEdit *edit, bool isDialog)
Definition: qtutils.cpp:272
void setCssProperty(std::initializer_list< QWidget * > args, const QString &value)
Definition: qtutils.cpp:334
void setCssBtnPrimary(QPushButton *btn, bool forceUpdate)
Definition: qtutils.cpp:302
bool openDialog(QDialog *widget, QWidget *gui)
Definition: qtutils.cpp:23