|
|
|
@ -36,6 +36,7 @@ WalletModel::WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *p
@@ -36,6 +36,7 @@ WalletModel::WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *p
|
|
|
|
|
cachedNumBlocks(0) |
|
|
|
|
{ |
|
|
|
|
fProcessingQueuedTransactions = false; |
|
|
|
|
fHaveWatchOnly = wallet->HaveWatchOnly(); |
|
|
|
|
|
|
|
|
|
addressTableModel = new AddressTableModel(wallet, this); |
|
|
|
|
transactionTableModel = new TransactionTableModel(wallet, this); |
|
|
|
@ -81,6 +82,11 @@ qint64 WalletModel::getImmatureBalance() const
@@ -81,6 +82,11 @@ qint64 WalletModel::getImmatureBalance() const
|
|
|
|
|
return wallet->GetImmatureBalance(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool WalletModel::haveWatchOnly() const |
|
|
|
|
{ |
|
|
|
|
return fHaveWatchOnly; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
qint64 WalletModel::getWatchBalance() const |
|
|
|
|
{ |
|
|
|
|
return wallet->GetWatchOnlyBalance(); |
|
|
|
@ -144,9 +150,15 @@ void WalletModel::checkBalanceChanged()
@@ -144,9 +150,15 @@ void WalletModel::checkBalanceChanged()
|
|
|
|
|
qint64 newBalance = getBalance(); |
|
|
|
|
qint64 newUnconfirmedBalance = getUnconfirmedBalance(); |
|
|
|
|
qint64 newImmatureBalance = getImmatureBalance(); |
|
|
|
|
qint64 newWatchOnlyBalance = getWatchBalance(); |
|
|
|
|
qint64 newWatchUnconfBalance = getWatchUnconfirmedBalance(); |
|
|
|
|
qint64 newWatchImmatureBalance = getWatchImmatureBalance(); |
|
|
|
|
qint64 newWatchOnlyBalance = 0; |
|
|
|
|
qint64 newWatchUnconfBalance = 0; |
|
|
|
|
qint64 newWatchImmatureBalance = 0; |
|
|
|
|
if (haveWatchOnly()) |
|
|
|
|
{ |
|
|
|
|
newWatchOnlyBalance = getWatchBalance(); |
|
|
|
|
newWatchUnconfBalance = getWatchUnconfirmedBalance(); |
|
|
|
|
newWatchImmatureBalance = getWatchImmatureBalance(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(cachedBalance != newBalance || cachedUnconfirmedBalance != newUnconfirmedBalance || cachedImmatureBalance != newImmatureBalance || |
|
|
|
|
cachedWatchOnlyBalance != newWatchOnlyBalance || cachedWatchUnconfBalance != newWatchUnconfBalance || cachedWatchImmatureBalance != newWatchImmatureBalance) |
|
|
|
@ -185,6 +197,12 @@ void WalletModel::updateAddressBook(const QString &address, const QString &label
@@ -185,6 +197,12 @@ void WalletModel::updateAddressBook(const QString &address, const QString &label
|
|
|
|
|
addressTableModel->updateEntry(address, label, isMine, purpose, status); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void WalletModel::updateWatchOnlyFlag(bool fHaveWatchonly) |
|
|
|
|
{ |
|
|
|
|
fHaveWatchOnly = fHaveWatchonly; |
|
|
|
|
emit notifyWatchonlyChanged(fHaveWatchonly); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool WalletModel::validateAddress(const QString &address) |
|
|
|
|
{ |
|
|
|
|
CBitcoinAddress addressParsed(address.toStdString()); |
|
|
|
@ -499,6 +517,12 @@ static void ShowProgress(WalletModel *walletmodel, const std::string &title, int
@@ -499,6 +517,12 @@ static void ShowProgress(WalletModel *walletmodel, const std::string &title, int
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void NotifyWatchonlyChanged(WalletModel *walletmodel, bool fHaveWatchonly) |
|
|
|
|
{ |
|
|
|
|
QMetaObject::invokeMethod(walletmodel, "updateWatchOnlyFlag", Qt::QueuedConnection, |
|
|
|
|
Q_ARG(bool, fHaveWatchonly)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void WalletModel::subscribeToCoreSignals() |
|
|
|
|
{ |
|
|
|
|
// Connect signals to wallet
|
|
|
|
@ -506,6 +530,7 @@ void WalletModel::subscribeToCoreSignals()
@@ -506,6 +530,7 @@ void WalletModel::subscribeToCoreSignals()
|
|
|
|
|
wallet->NotifyAddressBookChanged.connect(boost::bind(NotifyAddressBookChanged, this, _1, _2, _3, _4, _5, _6)); |
|
|
|
|
wallet->NotifyTransactionChanged.connect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3)); |
|
|
|
|
wallet->ShowProgress.connect(boost::bind(ShowProgress, this, _1, _2)); |
|
|
|
|
wallet->NotifyWatchonlyChanged.connect(boost::bind(NotifyWatchonlyChanged, this, _1)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void WalletModel::unsubscribeFromCoreSignals() |
|
|
|
@ -515,6 +540,7 @@ void WalletModel::unsubscribeFromCoreSignals()
@@ -515,6 +540,7 @@ void WalletModel::unsubscribeFromCoreSignals()
|
|
|
|
|
wallet->NotifyAddressBookChanged.disconnect(boost::bind(NotifyAddressBookChanged, this, _1, _2, _3, _4, _5, _6)); |
|
|
|
|
wallet->NotifyTransactionChanged.disconnect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3)); |
|
|
|
|
wallet->ShowProgress.disconnect(boost::bind(ShowProgress, this, _1, _2)); |
|
|
|
|
wallet->NotifyWatchonlyChanged.disconnect(boost::bind(NotifyWatchonlyChanged, this, _1)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// WalletModel::UnlockContext implementation
|
|
|
|
|