Merge pull request #72 from UdjinM6/110x_fix_sending_locking

fix wallet locking after sending coins
This commit is contained in:
evan82 2014-12-14 07:49:38 -07:00
commit 3a7f3f8dba
2 changed files with 20 additions and 5 deletions

View File

@ -203,15 +203,29 @@ void SendCoinsDialog::on_sendButton_clicked()
fNewRecipientAllowed = false;
WalletModel::UnlockContext ctx(model->requestUnlock(true));
if(!ctx.isValid())
// request unlock only if was locked or unlocked for mixing:
// this way we let users unlock by walletpassphrase or by menu
// and make many transactions while unlocking through this dialog
// will call relock
WalletModel::EncryptionStatus encStatus = model->getEncryptionStatus();
if(encStatus == model->Locked || encStatus == model->UnlockedForAnonymizationOnly)
{
// Unlock wallet was cancelled
fNewRecipientAllowed = true;
WalletModel::UnlockContext ctx(model->requestUnlock(true));
if(!ctx.isValid())
{
// Unlock wallet was cancelled
fNewRecipientAllowed = true;
return;
}
send(recipients, strFee, formatted);
return;
}
// already unlocked or not encrypted at all
send(recipients, strFee, formatted);
}
void SendCoinsDialog::send(QList<SendCoinsRecipient> recipients, QString strFee, QStringList formatted)
{
// prepare transaction for getting txFee earlier
WalletModelTransaction currentTransaction(recipients);
WalletModel::SendCoinsReturn prepareStatus;

View File

@ -53,6 +53,7 @@ private:
Ui::SendCoinsDialog *ui;
WalletModel *model;
bool fNewRecipientAllowed;
void send(QList<SendCoinsRecipient> recipients, QString strFee, QStringList formatted);
// Process WalletModel::SendCoinsReturn and generate a pair consisting
// of a message and message flags for use in emit message().