<NME> clientmodel.cpp
<BEF> ADDFILE
<MSG> core initialisation, client model binding

<DFF> @@ -0,0 +1,58 @@
+#include "clientmodel.h"
+#include "main.h"
+
+#include <QTimer>
+
+/* milliseconds between model updates */
+const int MODEL_UPDATE_DELAY = 250;
+
+ClientModel::ClientModel(QObject *parent) :
+    QObject(parent)
+{
+    /* Until we build signal notifications into the bitcoin core,
+       simply update everything using a timer.
+    */
+    QTimer *timer = new QTimer(this);
+    connect(timer, SIGNAL(timeout()), this, SLOT(update()));
+    timer->start(MODEL_UPDATE_DELAY);
+}
+
+double ClientModel::getBalance()
+{
+    return GetBalance();
+}
+
+QString ClientModel::getAddress()
+{
+    std::vector<unsigned char> vchPubKey;
+    if (CWalletDB("r").ReadDefaultKey(vchPubKey))
+    {
+        return QString::fromStdString(PubKeyToAddress(vchPubKey));
+    } else {
+        return QString();
+    }
+}
+
+int ClientModel::getNumConnections()
+{
+    return vNodes.size();
+}
+
+int ClientModel::getNumBlocks()
+{
+    return nBestHeight;
+}
+
+int ClientModel::getNumTransactions()
+{
+    return 0;
+}
+
+void ClientModel::update()
+{
+    emit balanceChanged(getBalance());
+    emit addressChanged(getAddress());
+    emit numConnectionsChanged(getNumConnections());
+    emit numBlocksChanged(getNumBlocks());
+    emit numTransactionsChanged(getNumTransactions());
+}

{'addition_count': 58, 'commit_subject': 'core initialisation, client model binding', 'deletion_count': 0, 'file_extension': '.cpp', 'lang': 'cpp', 'license': 'mit', 'repo_name': 'miguelfreitas/twister-core'}