aboutsummaryrefslogtreecommitdiff
path: root/src/qt/clientmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qt/clientmodel.cpp')
-rw-r--r--src/qt/clientmodel.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp
index 8885b4cb5b..c147aa5a6e 100644
--- a/src/qt/clientmodel.cpp
+++ b/src/qt/clientmodel.cpp
@@ -10,7 +10,8 @@
#include <QDateTime>
ClientModel::ClientModel(CWallet *wallet, QObject *parent) :
- QObject(parent), wallet(wallet), optionsModel(0)
+ QObject(parent), wallet(wallet), optionsModel(0),
+ cachedNumConnections(0), cachedNumBlocks(0)
{
// Until signal notifications is built into the bitcoin core,
// simply update everything after polling using a timer.
@@ -38,11 +39,16 @@ QDateTime ClientModel::getLastBlockDate() const
void ClientModel::update()
{
- // Plainly emit all signals for now. To be more efficient this should check
- // whether the values actually changed first, although it'd be even better if these
- // were events coming in from the bitcoin core.
- emit numConnectionsChanged(getNumConnections());
- emit numBlocksChanged(getNumBlocks());
+ int newNumConnections = getNumConnections();
+ int newNumBlocks = getNumBlocks();
+
+ if(cachedNumConnections != newNumConnections)
+ emit numConnectionsChanged(newNumConnections);
+ if(cachedNumBlocks != newNumBlocks)
+ emit numBlocksChanged(newNumBlocks);
+
+ cachedNumConnections = newNumConnections;
+ cachedNumBlocks = newNumBlocks;
}
bool ClientModel::isTestNet() const