Skip to content

Commit

Permalink
Merge #924: [Staking][GUI] Unlock wallet for staking dialogue on click
Browse files Browse the repository at this point in the history
b8294ee unlock wallet for staking dialogue on click (Rock-N-Troll)

Pull request description:

  Related to pull request: #913 (and mentioned there as well. This is the separated pull request)

  ![image](https://user-images.githubusercontent.com/34344520/113945740-f2f5fb80-97d4-11eb-91c8-d828cf05411d.png)

   #913 (comment)

Tree-SHA512: 5f6e3b7cbd64999f9c877c2c449ec9bb8123b60ddc14f9ab7c2f8fefccb55381ffb41e83d0f1723da8814c0d2c272ef907d0a0c344a6b19ae4a9c2f3e62054c1
  • Loading branch information
codeofalltrades committed Apr 26, 2021
2 parents 8c80d51 + b8294ee commit 2207ed0
Showing 1 changed file with 34 additions and 20 deletions.
54 changes: 34 additions & 20 deletions src/qt/veil/veilstatusbar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,27 +119,41 @@ void VeilStatusBar::onCheckStakingClicked(bool res) {

// Miner thread starts in init.cpp, but staking enabled flag is checked each iteration of the miner, so can be enabled or disabled here
WalletModel::EncryptionStatus lockState = walletModel->getEncryptionStatus();
if (res){
if (gArgs.GetBoolArg("-exchangesandservicesmode", false) || lockState == WalletModel::Locked) {
QString dialogMsg = gArgs.GetBoolArg("-exchangesandservicesmode", false) ? "Staking is disabled in exchange mode" : "Must unlock wallet before staking can be enabled";
openToastDialog(dialogMsg, mainWindow);
fBlockNextStakeCheckSignal = true;
ui->checkStaking->setChecked(false);
setStakingText();
return;
}else{
this->walletModel->setStakingEnabled(true);
mainWindow->updateWalletStatus();
openToastDialog("Staking enabled", mainWindow);
setStakingText();
}
} else {
this->walletModel->setStakingEnabled(false);
mainWindow->updateWalletStatus();
openToastDialog("Staking disabled - this may take a few minutes", mainWindow);
setStakingText();
}

if (gArgs.GetBoolArg("-exchangesandservicesmode", false)) {
QString dialogMsg = "Staking is disabled in exchange mode";
openToastDialog(dialogMsg, mainWindow);
fBlockNextStakeCheckSignal = true;
ui->checkStaking->setChecked(false);
setStakingText();
return;
} else if (lockState == WalletModel::Locked) {
QString dialogMsg = "Must unlock wallet before staking can be enabled";
openToastDialog(dialogMsg, mainWindow);
fBlockNextStakeCheckSignal = true;
ui->checkStaking->setChecked(false);
setStakingText();

mainWindow->showHide(true);
UnlockPasswordDialog *dialog = new UnlockPasswordDialog(/*fUnlockForStakingOnly*/true, this->walletModel, mainWindow);
if(openDialogWithOpaqueBackground(dialog, mainWindow, 4)){
openToastDialog("Wallet unlocked for staking", mainWindow);
}else{
openToastDialog("Wallet not unlocked for staking", mainWindow);
}
}else{
if(!this->walletModel->isStakingEnabled()){
this->walletModel->setStakingEnabled(true);
mainWindow->updateWalletStatus();
openToastDialog("Enabling staking - this may take a few minutes", mainWindow);
setStakingText();
}else {
this->walletModel->setStakingEnabled(false);
mainWindow->updateWalletStatus();
openToastDialog("Disabling staking - this may take a few minutes", mainWindow);
setStakingText();
}
}
}

bool fBlockNextBtnLockSignal = false;
Expand Down

0 comments on commit 2207ed0

Please sign in to comment.