1 #include "clientmodel.h"
2 #include "guiconstants.h"
3 #include "optionsmodel.h"
4 #include "addresstablemodel.h"
5 #include "transactiontablemodel.h"
12 ClientModel::ClientModel(OptionsModel *optionsModel, QObject *parent) :
13 QObject(parent), optionsModel(optionsModel),
14 cachedNumConnections(0), cachedNumBlocks(0)
16 // Until signal notifications is built into the bitcoin core,
17 // simply update everything after polling using a timer.
18 QTimer *timer = new QTimer(this);
19 connect(timer, SIGNAL(timeout()), this, SLOT(update()));
20 timer->start(MODEL_UPDATE_DELAY);
22 numBlocksAtStartup = -1;
25 int ClientModel::getNumConnections() const
30 int ClientModel::getNumBlocks() const
35 int ClientModel::getNumBlocksAtStartup()
37 if (numBlocksAtStartup == -1) numBlocksAtStartup = getNumBlocks();
38 return numBlocksAtStartup;
41 QDateTime ClientModel::getLastBlockDate() const
43 return QDateTime::fromTime_t(pindexBest->GetBlockTime());
46 void ClientModel::update()
48 int newNumConnections = getNumConnections();
49 int newNumBlocks = getNumBlocks();
51 if(cachedNumConnections != newNumConnections)
52 emit numConnectionsChanged(newNumConnections);
53 if(cachedNumBlocks != newNumBlocks)
54 emit numBlocksChanged(newNumBlocks);
56 cachedNumConnections = newNumConnections;
57 cachedNumBlocks = newNumBlocks;
60 bool ClientModel::isTestNet() const
65 bool ClientModel::inInitialBlockDownload() const
67 return IsInitialBlockDownload();
70 int ClientModel::getNumBlocksOfPeers() const
72 return GetNumBlocksOfPeers();
75 QString ClientModel::getStatusBarWarnings() const
77 return QString::fromStdString(GetWarnings("statusbar"));
80 OptionsModel *ClientModel::getOptionsModel()
85 QString ClientModel::formatFullVersion() const
87 return QString::fromStdString(FormatFullVersion());