From d4bc14465b837e57cd587867f506a43fdd5c05b6 Mon Sep 17 00:00:00 2001 From: furszy Date: Mon, 29 Jul 2019 23:44:59 -0300 Subject: [PATCH] [GUI] tx detail dialog closing delay solved + cleanup. --- src/qt/pivx/forms/sendconfirmdialog.ui | 2 +- src/qt/pivx/send.h | 1 - src/qt/pivx/sendconfirmdialog.cpp | 39 ++++++++++++-------------- src/qt/pivx/sendconfirmdialog.h | 3 ++ 4 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/qt/pivx/forms/sendconfirmdialog.ui b/src/qt/pivx/forms/sendconfirmdialog.ui index 065a6bbb9a02e..5a19c8eadf245 100644 --- a/src/qt/pivx/forms/sendconfirmdialog.ui +++ b/src/qt/pivx/forms/sendconfirmdialog.ui @@ -139,7 +139,7 @@ - PushButton + diff --git a/src/qt/pivx/send.h b/src/qt/pivx/send.h index b7701543be82a..1c0d4ecfd14d3 100644 --- a/src/qt/pivx/send.h +++ b/src/qt/pivx/send.h @@ -83,7 +83,6 @@ private slots: ContactsDropdown *menuContacts = nullptr; TooltipMenu *menu = nullptr; - SendMultiRow *sendMultiRow = nullptr; // Current focus entry SendMultiRow* focusedEntry = nullptr; diff --git a/src/qt/pivx/sendconfirmdialog.cpp b/src/qt/pivx/sendconfirmdialog.cpp index 3f5833662b7a7..fe2111cfdacbf 100644 --- a/src/qt/pivx/sendconfirmdialog.cpp +++ b/src/qt/pivx/sendconfirmdialog.cpp @@ -10,7 +10,6 @@ #include "transactionrecord.h" #include "wallet/wallet.h" #include "guiutil.h" -#include "qt/pivx/snackbar.h" #include "qt/pivx/qtutils.h" #include #include @@ -24,32 +23,28 @@ TxDetailDialog::TxDetailDialog(QWidget *parent, bool isConfirmDialog) : this->setStyleSheet(parent->styleSheet()); // Container - ui->frame->setProperty("cssClass", "container-dialog"); - ui->labelTitle->setProperty("cssClass", "text-title-dialog"); + setCssProperty(ui->frame, "container-dialog"); + setCssProperty(ui->labelTitle, "text-title-dialog"); // Labels setCssTextBodyDialog({ui->labelAmount, ui->labelSend, ui->labelInputs, ui->labelFee, ui->labelChange, ui->labelId, ui->labelSize, ui->labelStatus, ui->labelConfirmations, ui->labelDate}); setCssProperty({ui->labelDivider1, ui->labelDivider2, ui->labelDivider3, ui->labelDivider4, ui->labelDivider5, ui->labelDivider6, ui->labelDivider7, ui->labelDivider8, ui->labelDivider9}, "container-divider"); setCssTextBodyDialog({ui->textAmount, ui->textSend, ui->textInputs, ui->textFee, ui->textChange, ui->textId, ui->textSize, ui->textStatus, ui->textConfirmations, ui->textDate}); - ui->pushCopy->setProperty("cssClass", "ic-copy-big"); - ui->pushInputs->setProperty("cssClass", "ic-arrow-down"); - ui->pushOutputs->setProperty("cssClass", "ic-arrow-down"); - - ui->btnEsc->setText(""); - ui->btnEsc->setProperty("cssClass", "ic-close"); + setCssProperty(ui->pushCopy, "ic-copy-big"); + setCssProperty({ui->pushInputs, ui->pushOutputs}, "ic-arrow-down"); + setCssProperty(ui->btnEsc, "ic-close"); ui->gridInputs->setVisible(false); ui->outputsScrollArea->setVisible(false); ui->contentChangeAddress->setVisible(false); ui->labelDivider4->setVisible(false); - ui->labelOutputIndex->setProperty("cssClass", "text-body2-dialog"); - ui->labelTitlePrevTx->setProperty("cssClass", "text-body2-dialog"); + setCssProperty({ui->labelOutputIndex, ui->labelTitlePrevTx}, "text-body2-dialog"); if(isConfirmDialog){ ui->labelTitle->setText(tr("Confirm Your Transaction")); - ui->btnCancel->setProperty("cssClass", "btn-dialog-cancel"); + setCssProperty(ui->btnCancel, "btn-dialog-cancel"); ui->btnSave->setText(tr("SEND")); setCssBtnPrimary(ui->btnSave); @@ -72,7 +67,7 @@ TxDetailDialog::TxDetailDialog(QWidget *parent, bool isConfirmDialog) : ui->containerButtons->setVisible(false); } - connect(ui->btnEsc, SIGNAL(clicked()), this, SLOT(close())); + connect(ui->btnEsc, SIGNAL(clicked()), this, SLOT(closeDialog())); connect(ui->pushInputs, SIGNAL(clicked()), this, SLOT(onInputsClicked())); connect(ui->pushOutputs, SIGNAL(clicked()), this, SLOT(onOutputsClicked())); } @@ -105,11 +100,10 @@ void TxDetailDialog::setData(WalletModel *model, QModelIndex &index){ connect(ui->pushCopy, &QPushButton::clicked, [this](){ GUIUtil::setClipboard(QString::fromStdString(this->txHash.GetHex())); - SnackBar *snackBar = new SnackBar(nullptr, this); + if (!snackBar) snackBar = new SnackBar(nullptr, this); snackBar->setText(tr("ID copied")); snackBar->resize(this->width(), snackBar->height()); openDialog(snackBar, this); - snackBar->deleteLater(); }); } @@ -154,10 +148,9 @@ void TxDetailDialog::onInputsClicked() { for (const CTxIn &in : tx->vin) { QString hash = QString::fromStdString(in.prevout.hash.GetHex()); QLabel *label = new QLabel(hash.left(18) + "..." + hash.right(18)); - label->setProperty("cssClass", "text-body2-dialog"); QLabel *label1 = new QLabel(QString::number(in.prevout.n)); - label1->setProperty("cssClass", "text-body2-dialog"); label1->setAlignment(Qt::AlignCenter); + setCssProperty({label, label1}, "text-body2-dialog"); ui->gridLayoutInput->addWidget(label,i,0); ui->gridLayoutInput->addWidget(label1,i,1, Qt::AlignCenter); @@ -201,10 +194,9 @@ void TxDetailDialog::onOutputsClicked() { labelRes = tr("Unknown"); } label = new QLabel(labelRes); - label->setProperty("cssClass", "text-body2-dialog"); QLabel *label1 = new QLabel(BitcoinUnits::formatWithUnit(nDisplayUnit, out.nValue, false, BitcoinUnits::separatorAlways)); - label1->setProperty("cssClass", "text-body2-dialog"); label1->setAlignment(Qt::AlignCenter | Qt::AlignRight); + setCssProperty({label, label1}, "text-body2-dialog"); layout->addWidget(label); layout->addWidget(label1); @@ -215,7 +207,12 @@ void TxDetailDialog::onOutputsClicked() { } } -TxDetailDialog::~TxDetailDialog() -{ +void TxDetailDialog::closeDialog(){ + if(snackBar && snackBar->isVisible()) snackBar->hide(); + close(); +} + +TxDetailDialog::~TxDetailDialog(){ + if(snackBar) delete snackBar; delete ui; } diff --git a/src/qt/pivx/sendconfirmdialog.h b/src/qt/pivx/sendconfirmdialog.h index 49214dfc8ab02..34dcd30664bf7 100644 --- a/src/qt/pivx/sendconfirmdialog.h +++ b/src/qt/pivx/sendconfirmdialog.h @@ -7,6 +7,7 @@ #include #include "walletmodeltransaction.h" +#include "qt/pivx/snackbar.h" class WalletModelTransaction; class WalletModel; @@ -38,9 +39,11 @@ public slots: void acceptTx(); void onInputsClicked(); void onOutputsClicked(); + void closeDialog(); private: Ui::TxDetailDialog *ui; + SnackBar *snackBar = nullptr; int nDisplayUnit = 0; bool confirm = false; WalletModel *model = nullptr;