X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fqt%2Fclientmodel.h;h=43c863d577771fab36699e3e4c97eb09e3698740;hb=0604b1b226eb02834b82d3873baa67b60e2e7398;hp=f5f12fcfd908ae9b6c5a416859585e2249e7ebee;hpb=7df70c000a5f687953335a5ab397ab4c74a40dd4;p=novacoin.git diff --git a/src/qt/clientmodel.h b/src/qt/clientmodel.h index f5f12fc..43c863d 100644 --- a/src/qt/clientmodel.h +++ b/src/qt/clientmodel.h @@ -6,59 +6,69 @@ 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; - QString getAddress() const; + double getPoSKernelPS(); + double getDifficulty(bool fProofofStake); + int getNumConnections() const; int getNumBlocks() const; - int getNumTransactions() const; + int getNumBlocksAtStartup(); + + QDateTime getLastBlockDate() const; - /* Return true if core is doing initial block download */ + //! 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 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; - /* Set default address */ - void setAddress(const QString &defaultAddress); - /* Send coins */ - StatusCode sendCoins(const QString &payTo, qint64 payAmount); 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 addressChanged(const QString &address); 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); -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