X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fqt%2Fclientmodel.h;h=c8d30f620562bacd5b35e97b470a8d6da48962b3;hb=dfb7a23711b260ff9232f9d878b82804eac19c4c;hp=da3e52e20ef15618089c1395dc56144c7b495411;hpb=38deedc1b52e915f2eac733e0fd7f5112361241b;p=novacoin.git diff --git a/src/qt/clientmodel.h b/src/qt/clientmodel.h index da3e52e..c8d30f6 100644 --- a/src/qt/clientmodel.h +++ b/src/qt/clientmodel.h @@ -6,57 +6,73 @@ class OptionsModel; class AddressTableModel; class TransactionTableModel; +class CWallet; +QT_BEGIN_NAMESPACE +class QDateTime; +class QTimer; +QT_END_NAMESPACE + +/** Model for Bitcoin network client. */ class ClientModel : public QObject { Q_OBJECT public: - explicit ClientModel(QObject *parent = 0); - - enum StatusCode - { - OK, - InvalidAmount, - InvalidAddress, - AmountExceedsBalance, - AmountWithFeeExceedsBalance, - Aborted, - MiscError - }; + explicit ClientModel(OptionsModel *optionsModel, QObject *parent = 0); + ~ClientModel(); OptionsModel *getOptionsModel(); - AddressTableModel *getAddressTableModel(); - TransactionTableModel *getTransactionTableModel(); - qint64 getBalance() const; + double getPoSKernelPS(); + double getDifficulty(bool fProofofStake); + int getNumConnections() const; int getNumBlocks() const; - int getNumTransactions() const; + int getNumBlocksAtStartup(); + + quint64 getTotalBytesRecv() const; + quint64 getTotalBytesSent() const; - /* Return true if core is doing initial block download */ + QDateTime getLastBlockDate() const; + + //! Return true if client connected to testnet + bool isTestNet() const; + //! Return true if core is doing initial block download bool inInitialBlockDownload() const; - /* Return conservative estimate of total number of blocks, or 0 if unknown */ - int getTotalBlocksEstimate() const; + //! Return conservative estimate of total number of blocks, or 0 if unknown + int getNumBlocksOfPeers() const; + //! Return warnings to be displayed in status bar + QString getStatusBarWarnings() const; + + QString formatFullVersion() const; + QString formatBuildDate() const; + QString clientName() const; + QString formatClientStartupTime() const; - /* Send coins */ - StatusCode sendCoins(const QString &payTo, qint64 payAmount, const QString &addToAddressBookAs=QString()); private: OptionsModel *optionsModel; - AddressTableModel *addressTableModel; - TransactionTableModel *transactionTableModel; + int cachedNumBlocks; + int cachedNumBlocksOfPeers; + + int numBlocksAtStartup; + + QTimer *pollTimer; + + void subscribeToCoreSignals(); + void unsubscribeFromCoreSignals(); signals: - void balanceChanged(qint64 balance); void numConnectionsChanged(int count); - void numBlocksChanged(int count); - void numTransactionsChanged(int count); - /* Asynchronous error notification */ - void error(const QString &title, const QString &message); + void numBlocksChanged(int count, int countOfPeers); + void bytesChanged(quint64 totalBytesIn, quint64 totalBytesOut); -public slots: + //! Asynchronous error notification + void error(const QString &title, const QString &message, bool modal); -private slots: - void update(); +public slots: + void updateTimer(); + void updateNumConnections(int numConnections); + void updateAlert(const QString &hash, int status); }; #endif // CLIENTMODEL_H