PIVX Core  5.6.99
P2P Digital Currency
mninfodialog.cpp
Go to the documentation of this file.
1 // Copyright (c) 2019-2021 The PIVX 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 "mninfodialog.h"
6 #include "ui_mninfodialog.h"
7 
8 #include "guiutil.h"
9 #include "qtutils.h"
10 
11 MnInfoDialog::MnInfoDialog(QWidget *parent) :
12  FocusedDialog(parent),
13  ui(new Ui::MnInfoDialog)
14 {
15  ui->setupUi(this);
16  this->setStyleSheet(parent->styleSheet());
17  setCssProperty(ui->frame, "container-dialog");
18  setCssProperty(ui->labelTitle, "text-title-dialog");
19  setCssTextBodyDialog({ui->labelAmount, ui->labelSend, ui->labelInputs, ui->labelFee, ui->labelId});
20  setCssProperty({ui->labelDivider1, ui->labelDivider4, ui->labelDivider6, ui->labelDivider7, ui->labelDivider8, ui->labelDivider9}, "container-divider");
21  setCssTextBodyDialog({ui->textAmount, ui->textAddress, ui->textInputs, ui->textStatus, ui->textId, ui->textExport});
22  setCssProperty({ui->pushCopy, ui->pushCopyId, ui->pushExport}, "ic-copy-big");
23  setCssProperty(ui->btnEsc, "ic-close");
24  connect(ui->btnEsc, &QPushButton::clicked, this, &MnInfoDialog::close);
25  connect(ui->pushCopy, &QPushButton::clicked, [this](){ copyInform(pubKey, tr("Masternode public key copied")); });
26  connect(ui->pushCopyId, &QPushButton::clicked, [this](){ copyInform(txId, tr("Collateral tx id copied")); });
27  connect(ui->pushExport, &QPushButton::clicked, [this](){ exportMN = true; accept(); });
28 }
29 
30 void MnInfoDialog::setData(const QString& _pubKey, const QString& name, const QString& address, const QString& _txId, const QString& outputIndex, const QString& status)
31 {
32  this->pubKey = _pubKey;
33  this->txId = _txId;
34  QString shortPubKey = _pubKey;
35  QString shortTxId = _txId;
36  QString shortAddress = address;
37  if (shortPubKey.length() > 20) {
38  shortPubKey = shortPubKey.left(13) + "..." + shortPubKey.right(13);
39  }
40  if (shortTxId.length() > 20) {
41  shortTxId = shortTxId.left(12) + "..." + shortTxId.right(12);
42  }
43  if (shortAddress.length() >= 40) {
44  shortAddress = shortAddress.left(11) + "..." + shortAddress.right(20);
45  }
46  ui->textId->setText(shortPubKey);
47  ui->textAddress->setText(shortAddress);
48  ui->textAmount->setText(shortTxId);
49  ui->textInputs->setText(outputIndex);
50  ui->textStatus->setText(status);
51 }
52 
53 void MnInfoDialog::copyInform(const QString& copyStr, const QString& message)
54 {
55  GUIUtil::setClipboard(copyStr);
56  if (!snackBar) snackBar = new SnackBar(nullptr, this);
57  snackBar->setText(tr(message.toStdString().c_str()));
58  snackBar->resize(this->width(), snackBar->height());
59  openDialog(snackBar, this);
60 }
61 
63 {
64  if (snackBar && snackBar->isVisible()) snackBar->hide();
65  QDialog::reject();
66 }
67 
69 {
70  if (snackBar) delete snackBar;
71  delete ui;
72 }
QString txId
Definition: mninfodialog.h:37
void copyInform(const QString &copyStr, const QString &message)
QString pubKey
Definition: mninfodialog.h:38
MnInfoDialog(QWidget *parent=nullptr)
SnackBar * snackBar
Definition: mninfodialog.h:34
void reject() override
void setData(const QString &_pubKey, const QString &name, const QString &address, const QString &_txId, const QString &outputIndex, const QString &status)
Ui::MnInfoDialog * ui
Definition: mninfodialog.h:33
void setText(const QString &text)
Definition: snackbar.cpp:51
void setClipboard(const QString &str)
Definition: guiutil.cpp:670
void setCssTextBodyDialog(std::initializer_list< QWidget * > args)
Definition: qtutils.cpp:312
void setCssProperty(std::initializer_list< QWidget * > args, const QString &value)
Definition: qtutils.cpp:334
bool openDialog(QDialog *widget, QWidget *gui)
Definition: qtutils.cpp:23
const char * name
Definition: rest.cpp:37