diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index 7fe287008c246..a51c02405f39e 100755 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -81,6 +81,8 @@ QT_FORMS_UI = \ qt/pivx/forms/addresslabelrow.ui \ qt/pivx/forms/contactdropdownrow.ui \ qt/pivx/forms/optionbutton.ui \ + qt/pivx/forms/mnrow.ui \ + qt/pivx/forms/masternodeswidget.ui \ qt/pivx/forms/myaddressrow.ui \ qt/pivx/forms/sendchangeaddressdialog.ui \ qt/pivx/forms/sendconfirmdialog.ui \ @@ -187,6 +189,8 @@ QT_MOC_CPP = \ qt/pivx/moc_addresslabelrow.cpp \ qt/pivx/moc_contactdropdownrow.cpp \ qt/pivx/moc_optionbutton.cpp \ + qt/pivx/moc_mnrow.cpp \ + qt/pivx/moc_masternodeswidget.cpp \ qt/pivx/moc_myaddressrow.cpp \ qt/pivx/moc_contactsdropdown.cpp \ qt/pivx/moc_sendchangeaddressdialog.cpp \ @@ -326,6 +330,8 @@ BITCOIN_QT_H = \ qt/pivx/addresslabelrow.h \ qt/pivx/contactdropdownrow.h \ qt/pivx/optionbutton.h \ + qt/pivx/mnrow.h \ + qt/pivx/masternodeswidget.h \ qt/pivx/myaddressrow.h \ qt/pivx/contactsdropdown.h \ qt/pivx/sendchangeaddressdialog.h \ @@ -695,6 +701,8 @@ BITCOIN_QT_WALLET_CPP = \ qt/pivx/contactdropdownrow.cpp \ qt/pivx/contactsdropdown.cpp \ qt/pivx/optionbutton.cpp \ + qt/pivx/mnrow.cpp \ + qt/pivx/masternodeswidget.cpp \ qt/pivx/myaddressrow.cpp \ qt/pivx/sendchangeaddressdialog.cpp \ qt/pivx/sendconfirmdialog.cpp \ diff --git a/src/qt/pivx/PIVXGUI.cpp b/src/qt/pivx/PIVXGUI.cpp index 4177581d3eff0..16cdd7d3f3f61 100644 --- a/src/qt/pivx/PIVXGUI.cpp +++ b/src/qt/pivx/PIVXGUI.cpp @@ -116,12 +116,13 @@ PIVXGUI::PIVXGUI(const NetworkStyle* networkStyle, QWidget* parent) : baseScreensContainer->addWidget(stackedContainer); // Init - dashboard = new DashboardWidget(this, this); - sendWidget = new SendWidget(this, this); - receiveWidget = new ReceiveWidget(this,this); - addressesWidget = new AddressesWidget(this,this); - privacyWidget = new PrivacyWidget(this,this); - settingsWidget = new SettingsWidget(this,this); + dashboard = new DashboardWidget(this); + sendWidget = new SendWidget(this); + receiveWidget = new ReceiveWidget(this); + addressesWidget = new AddressesWidget(this); + privacyWidget = new PrivacyWidget(this); + masterNodesWidget = new MasterNodesWidget(this); + settingsWidget = new SettingsWidget(this); // Add to parent stackedContainer->addWidget(dashboard); @@ -129,6 +130,7 @@ PIVXGUI::PIVXGUI(const NetworkStyle* networkStyle, QWidget* parent) : stackedContainer->addWidget(receiveWidget); stackedContainer->addWidget(addressesWidget); stackedContainer->addWidget(privacyWidget); + stackedContainer->addWidget(masterNodesWidget); stackedContainer->addWidget(settingsWidget); stackedContainer->setCurrentWidget(dashboard); @@ -180,6 +182,7 @@ void PIVXGUI::connectActions() { connect(receiveWidget, &ReceiveWidget::showHide, this, &PIVXGUI::showHide); connect(addressesWidget, &AddressesWidget::showHide, this, &PIVXGUI::showHide); connect(privacyWidget, &PrivacyWidget::showHide, this, &PIVXGUI::showHide); + connect(masterNodesWidget, &MasterNodesWidget::showHide, this, &PIVXGUI::showHide); connect(settingsWidget, &SettingsWidget::execDialog, this, &PIVXGUI::execDialog); } @@ -406,7 +409,7 @@ void PIVXGUI::goToPrivacy(){ } void PIVXGUI::goToMasterNodes(){ - //showTop(masterNodesWidget); + showTop(masterNodesWidget); } void PIVXGUI::goToSettings(){ @@ -499,10 +502,12 @@ bool PIVXGUI::addWallet(const QString& name, WalletModel* walletModel) sendWidget->setWalletModel(walletModel); addressesWidget->setWalletModel(walletModel); privacyWidget->setWalletModel(walletModel); + masterNodesWidget->setWalletModel(walletModel); settingsWidget->setWalletModel(walletModel); // Connect actions.. connect(privacyWidget, &PrivacyWidget::message, this, &PIVXGUI::message); + connect(masterNodesWidget, &MasterNodesWidget::message, this, &PIVXGUI::message); connect(topBar, &TopBar::message, this, &PIVXGUI::message); connect(sendWidget, &SendWidget::message,this, &PIVXGUI::message); connect(receiveWidget, &ReceiveWidget::message,this, &PIVXGUI::message); diff --git a/src/qt/pivx/PIVXGUI.h b/src/qt/pivx/PIVXGUI.h index 3a5ec7d8ebdb4..a385b44f292ce 100644 --- a/src/qt/pivx/PIVXGUI.h +++ b/src/qt/pivx/PIVXGUI.h @@ -21,6 +21,7 @@ #include "qt/pivx/receivewidget.h" #include "qt/pivx/addresseswidget.h" #include "qt/pivx/privacywidget.h" +#include "qt/pivx/masternodeswidget.h" #include "qt/pivx/snackbar.h" #include "qt/pivx/settings/settingswidget.h" #include "qt/rpcconsole.h" @@ -120,6 +121,7 @@ public slots: ReceiveWidget *receiveWidget = nullptr; AddressesWidget *addressesWidget = nullptr; PrivacyWidget *privacyWidget = nullptr; + MasterNodesWidget *masterNodesWidget = nullptr; SettingsWidget* settingsWidget = nullptr; SnackBar *snackBar = nullptr; diff --git a/src/qt/pivx/addresseswidget.cpp b/src/qt/pivx/addresseswidget.cpp index 40c02df36f8e2..92892990d3029 100644 --- a/src/qt/pivx/addresseswidget.cpp +++ b/src/qt/pivx/addresseswidget.cpp @@ -14,8 +14,6 @@ #include #include #include -#include -#include #include @@ -56,8 +54,8 @@ class ContactsHolder : public FurListRow #include "qt/pivx/moc_addresseswidget.cpp" -AddressesWidget::AddressesWidget(PIVXGUI* _window, QWidget *parent) : - PWidget(_window, parent), +AddressesWidget::AddressesWidget(PIVXGUI* parent) : + PWidget(parent), ui(new Ui::AddressesWidget) { ui->setupUi(this); diff --git a/src/qt/pivx/addresseswidget.h b/src/qt/pivx/addresseswidget.h index 70e35d1c43e13..a9924cd3e677b 100644 --- a/src/qt/pivx/addresseswidget.h +++ b/src/qt/pivx/addresseswidget.h @@ -27,7 +27,7 @@ class AddressesWidget : public PWidget Q_OBJECT public: - explicit AddressesWidget(PIVXGUI* _window, QWidget *parent = nullptr); + explicit AddressesWidget(PIVXGUI* parent); ~AddressesWidget(); void loadWalletModel() override; diff --git a/src/qt/pivx/dashboardwidget.cpp b/src/qt/pivx/dashboardwidget.cpp index bf00b1a445c2c..80b8aee39dd8d 100644 --- a/src/qt/pivx/dashboardwidget.cpp +++ b/src/qt/pivx/dashboardwidget.cpp @@ -19,8 +19,8 @@ #include "moc_dashboardwidget.cpp" -DashboardWidget::DashboardWidget(PIVXGUI* _window, QWidget *parent) : - PWidget(_window, parent), +DashboardWidget::DashboardWidget(PIVXGUI* parent) : + PWidget(parent), ui(new Ui::DashboardWidget) { ui->setupUi(this); diff --git a/src/qt/pivx/dashboardwidget.h b/src/qt/pivx/dashboardwidget.h index d3b3e56f57632..63a8f30b79c96 100644 --- a/src/qt/pivx/dashboardwidget.h +++ b/src/qt/pivx/dashboardwidget.h @@ -65,7 +65,7 @@ class DashboardWidget : public PWidget Q_OBJECT public: - explicit DashboardWidget(PIVXGUI* _window, QWidget *parent = nullptr); + explicit DashboardWidget(PIVXGUI* _window); ~DashboardWidget(); void loadWalletModel() override; diff --git a/src/qt/pivx/forms/masternodeswidget.ui b/src/qt/pivx/forms/masternodeswidget.ui new file mode 100644 index 0000000000000..df752a80bf832 --- /dev/null +++ b/src/qt/pivx/forms/masternodeswidget.ui @@ -0,0 +1,342 @@ + + + MasterNodesWidget + + + + 0 + 0 + 629 + 406 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 0 + + + + + 0 + + + 20 + + + + + 5 + + + + + TextLabel + + + + + + + TextLabel + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 40 + + + + + + + + + + + + + + + 0 + 100 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Vertical + + + + 20 + 20 + + + + + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 30 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 100 + 100 + + + + + 100 + 100 + + + + + + + + 100 + 100 + + + + + + + + + + + No active Master Node yet + + + Qt::AlignCenter + + + + + + + + + + + + + 20 + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 40 + 20 + + + + + + + + + 200 + 50 + + + + + 200 + 50 + + + + PushButton + + + + + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 6 + + + + + + 0 + 50 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + OptionButton + QWidget +
qt/pivx/optionbutton.h
+ 1 +
+
+ + +
diff --git a/src/qt/pivx/forms/mnrow.ui b/src/qt/pivx/forms/mnrow.ui new file mode 100644 index 0000000000000..3920a0c1fe878 --- /dev/null +++ b/src/qt/pivx/forms/mnrow.ui @@ -0,0 +1,74 @@ + + + MNRow + + + + 0 + 0 + 400 + 68 + + + + Form + + + + 0 + + + 20 + + + 0 + + + 20 + + + 0 + + + + + user_masternode + + + + + + + + + Address: 88.26.164.88:51474 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Jan. 19, 2019 + + + + + + + + + + diff --git a/src/qt/pivx/masternodeswidget.cpp b/src/qt/pivx/masternodeswidget.cpp new file mode 100644 index 0000000000000..ae906b95d2cc3 --- /dev/null +++ b/src/qt/pivx/masternodeswidget.cpp @@ -0,0 +1,134 @@ +#include "qt/pivx/masternodeswidget.h" +#include "qt/pivx/forms/ui_masternodeswidget.h" +#include "qt/pivx/qtutils.h" +#include "qt/pivx/mnrow.h" + +#include "activemasternode.h" +#include "clientmodel.h" +#include "guiutil.h" +#include "init.h" +#include "masternode-sync.h" +#include "masternodeconfig.h" +#include "masternodeman.h" +#include "sync.h" +#include "wallet/wallet.h" +#include "walletmodel.h" +#include "askpassphrasedialog.h" + +#include +#include + + +#define DECORATION_SIZE 60 +#define NUM_ITEMS 3 + +class MNHolder : public FurListRow +{ +public: + MNHolder(); + + explicit MNHolder(bool _isLightTheme) : FurListRow(), isLightTheme(_isLightTheme){} + + MNRow* createHolder(int pos) override{ + return new MNRow(); + } + + void init(QWidget* holder,const QModelIndex &index, bool isHovered, bool isSelected) const override{ + MNRow* row = static_cast(holder); + + /*ow->updateState(isLightTheme, isHovered, isSelected); + + QString address = index.data(Qt::DisplayRole).toString(); + QModelIndex sibling = index.sibling(index.row(), AddressTableModel::Label); + QString label = sibling.data(Qt::DisplayRole).toString(); + + row->updateView(address, label); + */ + } + + QColor rectColor(bool isHovered, bool isSelected) override{ + return getRowColor(isLightTheme, isHovered, isSelected); + } + + ~MNHolder() override{} + + bool isLightTheme; +}; + +#include "qt/pivx/moc_masternodeswidget.cpp" + +MasterNodesWidget::MasterNodesWidget(PIVXGUI *parent) : + PWidget(parent), + ui(new Ui::MasterNodesWidget) +{ + ui->setupUi(this); + this->setStyleSheet(parent->styleSheet()); + + delegate = new FurAbstractListItemDelegate( + DECORATION_SIZE, + new MNHolder(isLightTheme()), + this + ); + + /* Containers */ + ui->left->setProperty("cssClass", "container"); + ui->left->setContentsMargins(0,20,0,20); + ui->right->setProperty("cssClass", "container-right"); + ui->right->setContentsMargins(20,20,20,20); + + /* Light Font */ + QFont fontLight; + fontLight.setWeight(QFont::Light); + + /* Title */ + ui->labelTitle->setText(tr("Master Node")); + + ui->labelTitle->setProperty("cssClass", "text-title-screen"); + ui->labelTitle->setFont(fontLight); + + /* Subtitle */ + ui->labelSubtitle1->setText(tr("Minting zPIV anonymizes your PIV by removing transaction history,\nmaking transactions untraceable ")); + ui->labelSubtitle1->setProperty("cssClass", "text-subtitle"); + + /* Buttons */ + ui->pushButtonSave->setText(tr("Create Master Node")); + ui->pushButtonSave->setProperty("cssClass", "btn-primary"); + + /* Options */ + ui->btnAbout->setTitleClassAndText("btn-title-grey", "About Masternode"); + ui->btnAbout->setSubTitleClassAndText("text-subtitle", "Select the source of the coins for your transaction."); + + // hide list. + ui->listMn->setVisible(false); + + //ui->emptyContainer->setVisible(false); + ui->pushImgEmpty->setProperty("cssClass", "img-empty-master"); + + ui->labelEmpty->setText(tr("No active Masternode yet")); + ui->labelEmpty->setProperty("cssClass", "text-empty"); + + // Connect btns + connect(ui->pushButtonSave, SIGNAL(clicked()), this, SLOT(onCreateMNClicked())); +} + +void MasterNodesWidget::loadWalletModel(){ + if(walletModel) { + + } +} + +void MasterNodesWidget::onCreateMNClicked(){ + /* + MasterNodeWizardDialog* dialog = new MasterNodeWizardDialog(mainWindow); + mainWindow->showHide(true); + openDialogWithOpaqueBackgroundY(dialog, mainWindow, 5, 7); + */ +} + +void MasterNodesWidget::changeTheme(bool isLightTheme, QString& theme){ +} + +MasterNodesWidget::~MasterNodesWidget() +{ + delete ui; +} diff --git a/src/qt/pivx/masternodeswidget.h b/src/qt/pivx/masternodeswidget.h new file mode 100644 index 0000000000000..95d94b4adbdab --- /dev/null +++ b/src/qt/pivx/masternodeswidget.h @@ -0,0 +1,37 @@ +#ifndef MASTERNODESWIDGET_H +#define MASTERNODESWIDGET_H + +#include +#include "qt/pivx/pwidget.h" +#include "qt/pivx/furabstractlistitemdelegate.h" + +class PIVXGUI; + +namespace Ui { +class MasterNodesWidget; +} + +QT_BEGIN_NAMESPACE +class QModelIndex; +QT_END_NAMESPACE + +class MasterNodesWidget : public PWidget +{ + Q_OBJECT + +public: + + explicit MasterNodesWidget(PIVXGUI *parent = nullptr); + ~MasterNodesWidget(); + + void loadWalletModel(); +private slots: + void onCreateMNClicked(); + void changeTheme(bool isLightTheme, QString &theme); +private: + Ui::MasterNodesWidget *ui; + FurAbstractListItemDelegate *delegate; + +}; + +#endif // MASTERNODESWIDGET_H diff --git a/src/qt/pivx/mnrow.cpp b/src/qt/pivx/mnrow.cpp new file mode 100644 index 0000000000000..e764a4b81941a --- /dev/null +++ b/src/qt/pivx/mnrow.cpp @@ -0,0 +1,23 @@ +#include "qt/pivx/mnrow.h" +#include "qt/pivx/forms/ui_mnrow.h" + +MNRow::MNRow(QWidget *parent) : + QWidget(parent), + ui(new Ui::MNRow) +{ + ui->setupUi(this); + ui->labelAddress->setProperty("cssClass", "text-list-title1"); + ui->labelName->setProperty("cssClass", "text-list-body2"); + ui->labelDate->setProperty("cssClass", "text-list-caption"); + +} + +void MNRow::updateView(QString address, QString label){ + ui->labelName->setText(label); + ui->labelAddress->setText(address); +} + +MNRow::~MNRow() +{ + delete ui; +} diff --git a/src/qt/pivx/mnrow.h b/src/qt/pivx/mnrow.h new file mode 100644 index 0000000000000..240dd0f089e6e --- /dev/null +++ b/src/qt/pivx/mnrow.h @@ -0,0 +1,24 @@ +#ifndef MYADDRESSROW_H +#define MYADDRESSROW_H + +#include + +namespace Ui { +class MNRow; +} + +class MNRow : public QWidget +{ + Q_OBJECT + +public: + explicit MNRow(QWidget *parent = nullptr); + ~MNRow(); + + void updateView(QString address, QString label); + +private: + Ui::MNRow *ui; +}; + +#endif // MYADDRESSROW_H diff --git a/src/qt/pivx/myaddressrow.cpp b/src/qt/pivx/myaddressrow.cpp index 3f545786cc9b2..42951337ea481 100644 --- a/src/qt/pivx/myaddressrow.cpp +++ b/src/qt/pivx/myaddressrow.cpp @@ -1,13 +1,11 @@ #include "qt/pivx/myaddressrow.h" #include "qt/pivx/forms/ui_myaddressrow.h" -#include "QFile" MyAddressRow::MyAddressRow(QWidget *parent) : QWidget(parent), ui(new Ui::MyAddressRow) { ui->setupUi(this); - ui->labelName->setProperty("cssClass", "text-list-title1"); ui->labelAddress->setProperty("cssClass", "text-list-body2"); ui->labelDate->setProperty("cssClass", "text-list-caption"); diff --git a/src/qt/pivx/navmenuwidget.cpp b/src/qt/pivx/navmenuwidget.cpp index 47615f03819e0..1285d516def41 100644 --- a/src/qt/pivx/navmenuwidget.cpp +++ b/src/qt/pivx/navmenuwidget.cpp @@ -23,7 +23,6 @@ NavMenuWidget::NavMenuWidget(PIVXGUI *mainWindow, QWidget *parent) : ui->labelVersion->setProperty("cssClass", "text-title-white"); // Buttons - ui->btnDashboard->setProperty("cssClass", "btn-nav-dash-active"); ui->btnDashboard->setText("HOME\n"); ui->btnDashboard->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); @@ -125,7 +124,7 @@ void NavMenuWidget::onPrivacyClicked(){ } void NavMenuWidget::onMasterNodesClicked(){ - //window->goToMasterNodes(); + window->goToMasterNodes(); ui->btnDashboard->setProperty("cssClass", "btn-nav-dash"); ui->btnSend->setProperty("cssClass", "btn-nav-send"); ui->btnAddress->setProperty("cssClass", "btn-nav-address"); diff --git a/src/qt/pivx/privacywidget.cpp b/src/qt/pivx/privacywidget.cpp index 11147bfb96234..007b96d322f02 100644 --- a/src/qt/pivx/privacywidget.cpp +++ b/src/qt/pivx/privacywidget.cpp @@ -17,13 +17,13 @@ #define DECORATION_SIZE 65 #define NUM_ITEMS 3 -PrivacyWidget::PrivacyWidget(PIVXGUI* _window, QWidget *parent) : - PWidget(_window, parent), +PrivacyWidget::PrivacyWidget(PIVXGUI* parent) : + PWidget(parent), ui(new Ui::PrivacyWidget) { ui->setupUi(this); - this->setStyleSheet(_window->styleSheet()); + this->setStyleSheet(parent->styleSheet()); /* Containers */ ui->left->setProperty("cssClass", "container"); diff --git a/src/qt/pivx/privacywidget.h b/src/qt/pivx/privacywidget.h index 2bf7ad03b3111..a5c335f1313aa 100644 --- a/src/qt/pivx/privacywidget.h +++ b/src/qt/pivx/privacywidget.h @@ -27,7 +27,7 @@ class PrivacyWidget : public PWidget Q_OBJECT public: - explicit PrivacyWidget(PIVXGUI* _window, QWidget *parent = nullptr); + explicit PrivacyWidget(PIVXGUI* parent); ~PrivacyWidget(); void loadWalletModel() override; diff --git a/src/qt/pivx/pwidget.cpp b/src/qt/pivx/pwidget.cpp index d1377dacf0076..5baf98a89b26d 100644 --- a/src/qt/pivx/pwidget.cpp +++ b/src/qt/pivx/pwidget.cpp @@ -1,9 +1,8 @@ #include "qt/pivx/pwidget.h" #include "qt/pivx/qtutils.h" - #include "qt/pivx/moc_pwidget.cpp" -PWidget::PWidget(PIVXGUI* _window, QWidget *parent) : QWidget(parent), window(_window){init();} +PWidget::PWidget(PIVXGUI* _window, QWidget *parent) : QWidget((parent) ? parent : _window), window(_window){init();} PWidget::PWidget(PWidget* parent) : QWidget(parent), window(parent->getWindow()){init();} void PWidget::init() { diff --git a/src/qt/pivx/receivewidget.cpp b/src/qt/pivx/receivewidget.cpp index ae12a961c8646..7437c22692c6a 100644 --- a/src/qt/pivx/receivewidget.cpp +++ b/src/qt/pivx/receivewidget.cpp @@ -60,8 +60,8 @@ class AddressHolder : public FurListRow #include "qt/pivx/moc_receivewidget.cpp" -ReceiveWidget::ReceiveWidget(PIVXGUI* _window, QWidget *parent) : - PWidget(_window, parent), +ReceiveWidget::ReceiveWidget(PIVXGUI* parent) : + PWidget(parent), ui(new Ui::ReceiveWidget) { ui->setupUi(this); @@ -73,7 +73,7 @@ ReceiveWidget::ReceiveWidget(PIVXGUI* _window, QWidget *parent) : ); // Stylesheet - this->setStyleSheet(_window->styleSheet()); + this->setStyleSheet(parent->styleSheet()); // Containers ui->left->setProperty("cssClass", "container"); @@ -216,7 +216,8 @@ void ReceiveWidget::handleAddressClicked(const QModelIndex &index){ } void ReceiveWidget::onLabelClicked(){ - if(walletModel) { + if(walletModel && !isShowingDialog) { + isShowingDialog = true; showHideOp(true); // TODO: Open this to "update" the label if the address already has it. AddNewContactDialog *dialog = new AddNewContactDialog(window); @@ -238,6 +239,7 @@ void ReceiveWidget::onLabelClicked(){ inform(tr("Error storing address label")); } } + isShowingDialog = false; } } @@ -267,7 +269,8 @@ void ReceiveWidget::onCopyClicked(){ void ReceiveWidget::onRequestClicked(){ - if(walletModel) { + if(walletModel && !isShowingDialog) { + isShowingDialog = true; if (!walletModel->isWalletUnlocked()) { inform(tr("Wallet locked, you need to unlock it to perform this action")); return; @@ -276,6 +279,8 @@ void ReceiveWidget::onRequestClicked(){ RequestDialog *dialog = new RequestDialog(window); dialog->setWalletModel(walletModel); openDialogWithOpaqueBackgroundY(dialog, window, 3.5, 12); + dialog->deleteLater(); + isShowingDialog = false; } } diff --git a/src/qt/pivx/receivewidget.h b/src/qt/pivx/receivewidget.h index 7702d91bccf3f..1a82638bde43e 100644 --- a/src/qt/pivx/receivewidget.h +++ b/src/qt/pivx/receivewidget.h @@ -11,7 +11,6 @@ #include class PIVXGUI; -class WalletModel; class SendCoinsRecipient; namespace Ui { @@ -27,7 +26,7 @@ class ReceiveWidget : public PWidget Q_OBJECT public: - explicit ReceiveWidget(PIVXGUI* _window, QWidget *parent = nullptr); + explicit ReceiveWidget(PIVXGUI* parent); ~ReceiveWidget(); void loadWalletModel() override; @@ -60,6 +59,8 @@ private slots: void updateQr(QString address); void updateLabel(); + bool isShowingDialog = false; + }; #endif // RECEIVEWIDGET_H diff --git a/src/qt/pivx/send.cpp b/src/qt/pivx/send.cpp index 38dd0103261e0..25fc26d76363e 100644 --- a/src/qt/pivx/send.cpp +++ b/src/qt/pivx/send.cpp @@ -17,11 +17,10 @@ #include "openuridialog.h" #include "zpivcontroldialog.h" - #include -SendWidget::SendWidget(PIVXGUI* _window, QWidget *parent) : - PWidget(_window, parent), +SendWidget::SendWidget(PIVXGUI* parent) : + PWidget(parent), ui(new Ui::send), coinIcon(new QPushButton()), btnContacts(new QPushButton()) @@ -617,6 +616,7 @@ void SendWidget::onCoinControlClicked() zPivControl->setModel(walletModel); zPivControl->exec(); ui->btnCoinControl->setActive(!ZPivControlDialog::setSelectedMints.empty()); + zPivControl->deleteLater(); } else { inform(tr("You don't have any zPIV in your balance to select.")); } diff --git a/src/qt/pivx/send.h b/src/qt/pivx/send.h index 87f916a081ab9..0c31e88183947 100644 --- a/src/qt/pivx/send.h +++ b/src/qt/pivx/send.h @@ -29,7 +29,7 @@ class SendWidget : public PWidget Q_OBJECT public: - explicit SendWidget(PIVXGUI* _window, QWidget *parent = nullptr); + explicit SendWidget(PIVXGUI* parent); ~SendWidget(); void addEntry(); diff --git a/src/qt/pivx/settings/settingswidget.cpp b/src/qt/pivx/settings/settingswidget.cpp index ff4513413e3a4..98c207924ed97 100644 --- a/src/qt/pivx/settings/settingswidget.cpp +++ b/src/qt/pivx/settings/settingswidget.cpp @@ -20,14 +20,13 @@ #include "optionsmodel.h" #include "clientmodel.h" -SettingsWidget::SettingsWidget(PIVXGUI* _window, QWidget *parent) : - PWidget(_window, parent), - ui(new Ui::SettingsWidget), - window(_window) +SettingsWidget::SettingsWidget(PIVXGUI* parent) : + PWidget(parent), + ui(new Ui::SettingsWidget) { ui->setupUi(this); - this->setStyleSheet(_window->styleSheet()); + this->setStyleSheet(parent->styleSheet()); /* Containers */ ui->scrollArea->setProperty("cssClass", "container"); diff --git a/src/qt/pivx/settings/settingswidget.h b/src/qt/pivx/settings/settingswidget.h index 2b02ca3d3c933..ffd793e1afa36 100644 --- a/src/qt/pivx/settings/settingswidget.h +++ b/src/qt/pivx/settings/settingswidget.h @@ -31,7 +31,7 @@ class SettingsWidget : public PWidget Q_OBJECT public: - explicit SettingsWidget(PIVXGUI* _window, QWidget *parent = nullptr); + explicit SettingsWidget(PIVXGUI* parent); ~SettingsWidget(); void loadClientModel() override; @@ -43,23 +43,19 @@ class SettingsWidget : public PWidget /** Get restart command-line parameters and handle restart */ void handleRestart(QStringList args); - private slots: // File - void onFileClicked(); void onBackupWalletClicked(); void onSignMessageClicked(); void onVerifyMessageClicked(); // Wallet Configuration - void onConfigurationClicked(); void onBipToolClicked(); void onMultisendClicked(); // Options - void onOptionsClicked(); void onMainOptionsClicked(); void onWalletOptionsClicked(); @@ -67,23 +63,19 @@ private slots: void onWindowOptionsClicked(); void onDisplayOptionsClicked(); - // Tools - void onToolsClicked(); void onInformationClicked(); void onDebugConsoleClicked(); void onWalletRepairClicked(); // Help - void onHelpClicked(); void onFaqClicked(); void onAboutClicked(); private: Ui::SettingsWidget *ui; - PIVXGUI* window; SettingsBackupWallet *settingsBackupWallet; SettingsBitToolWidget *settingsBitToolWidget;