Skip to content

Commit aa4bbaa

Browse files
authored
Merge pull request #474 from francisjyap/patch-2
Added password prompt for CFund payment/proposal dialogs
2 parents f00efb3 + 12ed154 commit aa4bbaa

File tree

5 files changed

+56
-56
lines changed

5 files changed

+56
-56
lines changed

src/qt/communityfundcreatepaymentrequestdialog.cpp

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
#include "communityfundcreatepaymentrequestdialog.h"
2-
#include "ui_communityfundcreatepaymentrequestdialog.h"
32
#include "communityfundsuccessdialog.h"
43
#include "sendcommunityfunddialog.h"
4+
#include "ui_communityfundcreatepaymentrequestdialog.h"
55

66
#include <QMessageBox>
7+
#include <string>
8+
9+
#include "base58.h"
710
#include "consensus/cfund.h"
8-
#include "main.h"
9-
#include "main.cpp"
1011
#include "guiconstants.h"
11-
#include "skinize.h"
1212
#include "guiutil.h"
13+
#include "main.cpp"
14+
#include "main.h"
15+
#include "skinize.h"
1316
#include "sync.h"
1417
#include "wallet/wallet.h"
15-
#include "base58.h"
16-
#include <string>
18+
#include "walletmodel.h"
1719

1820
std::string random_str(size_t length)
1921
{
@@ -33,14 +35,20 @@ std::string random_str(size_t length)
3335

3436
CommunityFundCreatePaymentRequestDialog::CommunityFundCreatePaymentRequestDialog(QWidget *parent) :
3537
QDialog(parent),
36-
ui(new Ui::CommunityFundCreatePaymentRequestDialog)
38+
ui(new Ui::CommunityFundCreatePaymentRequestDialog),
39+
model(0)
3740
{
3841
ui->setupUi(this);
3942

4043
connect(ui->pushButtonClose, SIGNAL(clicked()), this, SLOT(reject()));
4144
connect(ui->pushButtonSubmitPaymentRequest, SIGNAL(clicked()), SLOT(click_pushButtonSubmitPaymentRequest()));
4245
}
4346

47+
void CommunityFundCreatePaymentRequestDialog::setModel(WalletModel *model)
48+
{
49+
this->model = model;
50+
}
51+
4452
bool CommunityFundCreatePaymentRequestDialog::validate()
4553
{
4654
bool isValid = true;
@@ -131,24 +139,10 @@ void CommunityFundCreatePaymentRequestDialog::click_pushButtonSubmitPaymentReque
131139
}
132140

133141
// Ensure wallet is unlocked
134-
if (pwalletMain->IsLocked()) {
135-
QMessageBox msgBox(this);
136-
std::string str = "Please unlock the wallet\n";
137-
msgBox.setText(tr(str.c_str()));
138-
msgBox.addButton(tr("Ok"), QMessageBox::AcceptRole);
139-
msgBox.setIcon(QMessageBox::Warning);
140-
msgBox.setWindowTitle("Error");
141-
msgBox.exec();
142-
return;
143-
}
144-
if (fWalletUnlockStakingOnly) {
145-
QMessageBox msgBox(this);
146-
std::string str = "Wallet is unlocked for staking only\n";
147-
msgBox.setText(tr(str.c_str()));
148-
msgBox.addButton(tr("Ok"), QMessageBox::AcceptRole);
149-
msgBox.setIcon(QMessageBox::Warning);
150-
msgBox.setWindowTitle("Error");
151-
msgBox.exec();
142+
WalletModel::UnlockContext ctx(model->requestUnlock());
143+
if(!ctx.isValid())
144+
{
145+
// Unlock wallet was cancelled
152146
return;
153147
}
154148

src/qt/communityfundcreatepaymentrequestdialog.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
#ifndef COMMUNITYFUNDCREATEPAYMENTREQUESTDIALOG_H
22
#define COMMUNITYFUNDCREATEPAYMENTREQUESTDIALOG_H
33

4-
#include <QDialog>
54
#include "../qvalidatedplaintextedit.h"
65
#include "uint256.h"
6+
#include "walletmodel.h"
7+
8+
#include <QDialog>
79

810
namespace Ui {
911
class CommunityFundCreatePaymentRequestDialog;
@@ -17,8 +19,11 @@ class CommunityFundCreatePaymentRequestDialog : public QDialog
1719
explicit CommunityFundCreatePaymentRequestDialog(QWidget *parent = 0);
1820
~CommunityFundCreatePaymentRequestDialog();
1921

22+
void setModel(WalletModel *model);
23+
2024
private:
2125
Ui::CommunityFundCreatePaymentRequestDialog *ui;
26+
WalletModel *model;
2227
bool validate();
2328
bool isActiveProposal(uint256 hash);
2429

src/qt/communityfundcreateproposaldialog.cpp

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
11
#include "communityfundcreateproposaldialog.h"
2-
#include "ui_communityfundcreateproposaldialog.h"
3-
#include "sendcommunityfunddialog.h"
42
#include "communityfundsuccessdialog.h"
3+
#include "sendcommunityfunddialog.h"
4+
#include "ui_communityfundcreateproposaldialog.h"
55

6-
#include <QMessageBox>
7-
#include <QTextListFormat>
86
#include <QDialog>
7+
#include <QMessageBox>
98
#include <QSpinBox>
9+
#include <QTextListFormat>
10+
#include <string>
1011

12+
#include "base58.h"
1113
#include "guiconstants.h"
1214
#include "guiutil.h"
13-
#include "sync.h"
14-
#include "wallet/wallet.h"
15-
#include "base58.h"
1615
#include "main.h"
17-
#include <string>
1816
#include "qvalidatedspinbox.h"
17+
#include "sync.h"
18+
#include "wallet/wallet.h"
19+
#include "walletmodel.h"
1920

2021
CommunityFundCreateProposalDialog::CommunityFundCreateProposalDialog(QWidget *parent) :
2122
QDialog(parent),
22-
ui(new Ui::CommunityFundCreateProposalDialog)
23+
ui(new Ui::CommunityFundCreateProposalDialog),
24+
model(0)
2325
{
2426
ui->setupUi(this);
2527
GUIUtil::setupAddressWidget(ui->lineEditNavcoinAddress, this);
@@ -57,6 +59,11 @@ CommunityFundCreateProposalDialog::CommunityFundCreateProposalDialog(QWidget *pa
5759
ui->labelWarning->setText(QString::fromStdString(warning));
5860
}
5961

62+
void CommunityFundCreateProposalDialog::setModel(WalletModel *model)
63+
{
64+
this->model = model;
65+
}
66+
6067
// Validate input fields
6168
bool CommunityFundCreateProposalDialog::validate()
6269
{
@@ -103,6 +110,9 @@ void CommunityFundCreateProposalDialog::click_spinBox() {
103110

104111
void CommunityFundCreateProposalDialog::click_pushButtonCreateProposal()
105112
{
113+
if(!model)
114+
return;
115+
106116
if(this->validate())
107117
{
108118
LOCK2(cs_main, pwalletMain->cs_wallet);
@@ -147,24 +157,10 @@ void CommunityFundCreateProposalDialog::click_pushButtonCreateProposal()
147157
}
148158

149159
// Ensure wallet is unlocked
150-
if (pwalletMain->IsLocked()) {
151-
QMessageBox msgBox(this);
152-
std::string str = "Please unlock the wallet\n";
153-
msgBox.setText(tr(str.c_str()));
154-
msgBox.addButton(tr("Ok"), QMessageBox::AcceptRole);
155-
msgBox.setIcon(QMessageBox::Warning);
156-
msgBox.setWindowTitle("Error");
157-
msgBox.exec();
158-
return;
159-
}
160-
if (fWalletUnlockStakingOnly) {
161-
QMessageBox msgBox(this);
162-
std::string str = "Wallet is unlocked for staking only\n";
163-
msgBox.setText(tr(str.c_str()));
164-
msgBox.addButton(tr("Ok"), QMessageBox::AcceptRole);
165-
msgBox.setIcon(QMessageBox::Warning);
166-
msgBox.setWindowTitle("Error");
167-
msgBox.exec();
160+
WalletModel::UnlockContext ctx(model->requestUnlock());
161+
if(!ctx.isValid())
162+
{
163+
// Unlock wallet was cancelled
168164
return;
169165
}
170166

@@ -197,7 +193,6 @@ void CommunityFundCreateProposalDialog::click_pushButtonCreateProposal()
197193
return;
198194
}
199195
else {
200-
201196
// User accepted making the proposal
202197
// Parse NavCoin address
203198
CScript CFContributionScript;

src/qt/communityfundcreateproposaldialog.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
#ifndef COMMUNITYFUNDCREATEPROPOSALDIALOG_H
22
#define COMMUNITYFUNDCREATEPROPOSALDIALOG_H
33

4-
#include <QDialog>
54
#include "qvalidatedspinbox.h"
5+
#include "walletmodel.h"
6+
7+
#include <QDialog>
68

79
namespace Ui {
810
class CommunityFundCreateProposalDialog;
@@ -16,14 +18,16 @@ class CommunityFundCreateProposalDialog : public QDialog
1618
explicit CommunityFundCreateProposalDialog(QWidget *parent = 0);
1719
~CommunityFundCreateProposalDialog();
1820

21+
void setModel(WalletModel *model);
22+
1923
private:
2024
Ui::CommunityFundCreateProposalDialog *ui;
25+
WalletModel *model;
2126
bool validate();
2227

2328
private Q_SLOTS:
2429
void click_pushButtonCreateProposal();
2530
void click_spinBox();
26-
2731
};
2832

2933
#endif // COMMUNITYFUNDCREATEPROPOSALDIALOG_H

src/qt/communityfundpage.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,13 +374,15 @@ void CommunityFundPage::click_radioButtonExpired()
374374
void CommunityFundPage::click_pushButtonCreateProposal()
375375
{
376376
CommunityFundCreateProposalDialog dlg(this);
377+
dlg.setModel(walletModel);
377378
dlg.exec();
378379
refresh(ui->radioButtonAll->isChecked(), viewing_proposals);
379380
}
380381

381382
void CommunityFundPage::click_pushButtonCreatePaymentRequest()
382383
{
383384
CommunityFundCreatePaymentRequestDialog dlg(this);
385+
dlg.setModel(walletModel);
384386
dlg.exec();
385387
refresh(ui->radioButtonAll->isChecked(), viewing_proposals);
386388
}

0 commit comments

Comments
 (0)