|
|
|
@ -36,6 +36,7 @@ WalletModel::WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *p
@@ -36,6 +36,7 @@ WalletModel::WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *p
|
|
|
|
|
{ |
|
|
|
|
fProcessingQueuedTransactions = false; |
|
|
|
|
fHaveWatchOnly = wallet->HaveWatchOnly(); |
|
|
|
|
fForceCheckBalanceChanged = false; |
|
|
|
|
|
|
|
|
|
addressTableModel = new AddressTableModel(wallet, this); |
|
|
|
|
transactionTableModel = new TransactionTableModel(wallet, this); |
|
|
|
@ -121,8 +122,10 @@ void WalletModel::pollBalanceChanged()
@@ -121,8 +122,10 @@ void WalletModel::pollBalanceChanged()
|
|
|
|
|
if(!lockWallet) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
if(chainActive.Height() != cachedNumBlocks) |
|
|
|
|
if(fForceCheckBalanceChanged || chainActive.Height() != cachedNumBlocks) |
|
|
|
|
{ |
|
|
|
|
fForceCheckBalanceChanged = false; |
|
|
|
|
|
|
|
|
|
// Balance and number of transactions might have changed
|
|
|
|
|
cachedNumBlocks = chainActive.Height(); |
|
|
|
|
|
|
|
|
@ -167,7 +170,7 @@ void WalletModel::updateTransaction(const QString &hash, int status)
@@ -167,7 +170,7 @@ void WalletModel::updateTransaction(const QString &hash, int status)
|
|
|
|
|
transactionTableModel->updateTransaction(hash, status); |
|
|
|
|
|
|
|
|
|
// Balance and number of transactions might have changed
|
|
|
|
|
checkBalanceChanged(); |
|
|
|
|
fForceCheckBalanceChanged = true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void WalletModel::updateAddressBook(const QString &address, const QString &label, |
|
|
|
@ -344,6 +347,7 @@ WalletModel::SendCoinsReturn WalletModel::sendCoins(WalletModelTransaction &tran
@@ -344,6 +347,7 @@ WalletModel::SendCoinsReturn WalletModel::sendCoins(WalletModelTransaction &tran
|
|
|
|
|
} |
|
|
|
|
emit coinsSent(wallet, rcp, transaction_array); |
|
|
|
|
} |
|
|
|
|
checkBalanceChanged(); // update balance immediately, otherwise there could be a short noticeable delay until pollBalanceChanged hits
|
|
|
|
|
|
|
|
|
|
return SendCoinsReturn(OK); |
|
|
|
|
} |
|
|
|
@ -473,11 +477,6 @@ static void NotifyTransactionChanged(WalletModel *walletmodel, CWallet *wallet,
@@ -473,11 +477,6 @@ static void NotifyTransactionChanged(WalletModel *walletmodel, CWallet *wallet,
|
|
|
|
|
|
|
|
|
|
static void ShowProgress(WalletModel *walletmodel, const std::string &title, int nProgress) |
|
|
|
|
{ |
|
|
|
|
// emits signal "showProgress"
|
|
|
|
|
QMetaObject::invokeMethod(walletmodel, "showProgress", Qt::QueuedConnection, |
|
|
|
|
Q_ARG(QString, QString::fromStdString(title)), |
|
|
|
|
Q_ARG(int, nProgress)); |
|
|
|
|
|
|
|
|
|
if (nProgress == 0) |
|
|
|
|
fQueueNotifications = true; |
|
|
|
|
|
|
|
|
@ -495,6 +494,11 @@ static void ShowProgress(WalletModel *walletmodel, const std::string &title, int
@@ -495,6 +494,11 @@ static void ShowProgress(WalletModel *walletmodel, const std::string &title, int
|
|
|
|
|
} |
|
|
|
|
std::vector<std::pair<uint256, ChangeType> >().swap(vQueueNotifications); // clear
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// emits signal "showProgress"
|
|
|
|
|
QMetaObject::invokeMethod(walletmodel, "showProgress", Qt::QueuedConnection, |
|
|
|
|
Q_ARG(QString, QString::fromStdString(title)), |
|
|
|
|
Q_ARG(int, nProgress)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void NotifyWatchonlyChanged(WalletModel *walletmodel, bool fHaveWatchonly) |
|
|
|
|