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.cpp71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp
new file mode 100644
index 0000000000..8885b4cb5b
--- /dev/null
+++ b/src/qt/clientmodel.cpp
@@ -0,0 +1,71 @@
+#include "clientmodel.h"
+#include "guiconstants.h"
+#include "optionsmodel.h"
+#include "addresstablemodel.h"
+#include "transactiontablemodel.h"
+
+#include "headers.h"
+
+#include <QTimer>
+#include <QDateTime>
+
+ClientModel::ClientModel(CWallet *wallet, QObject *parent) :
+ QObject(parent), wallet(wallet), optionsModel(0)
+{
+ // Until signal notifications is built into the bitcoin core,
+ // simply update everything after polling using a timer.
+ QTimer *timer = new QTimer(this);
+ connect(timer, SIGNAL(timeout()), this, SLOT(update()));
+ timer->start(MODEL_UPDATE_DELAY);
+
+ optionsModel = new OptionsModel(wallet, this);
+}
+
+int ClientModel::getNumConnections() const
+{
+ return vNodes.size();
+}
+
+int ClientModel::getNumBlocks() const
+{
+ return nBestHeight;
+}
+
+QDateTime ClientModel::getLastBlockDate() const
+{
+ return QDateTime::fromTime_t(pindexBest->GetBlockTime());
+}
+
+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());
+}
+
+bool ClientModel::isTestNet() const
+{
+ return fTestNet;
+}
+
+bool ClientModel::inInitialBlockDownload() const
+{
+ return IsInitialBlockDownload();
+}
+
+int ClientModel::getTotalBlocksEstimate() const
+{
+ return GetTotalBlocksEstimate();
+}
+
+OptionsModel *ClientModel::getOptionsModel()
+{
+ return optionsModel;
+}
+
+QString ClientModel::formatFullVersion() const
+{
+ return QString::fromStdString(FormatFullVersion());
+}