aboutsummaryrefslogtreecommitdiff
path: root/src/qt/clientmodel.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2011-07-17 14:06:43 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2011-07-17 14:17:13 +0200
commit5df0b03c950184b2e2fdbfc6e9f8075dcf81c75c (patch)
tree889d52734e8e4a0a096289d52d03aa02d66f8292 /src/qt/clientmodel.cpp
parentb5f918cbd69e02f1e955fe90a13444a15a7de43f (diff)
make initial block download reporting somewhat better by tracking version responses
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