X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fqt%2Fwalletmodel.h;h=324d7f3cce11a396dd18dd8f8507c05ec1ddadc2;hb=84a4a7763f386934da90e2bd1e355b70023fa9ca;hp=6a85abd6d5bfa1aec0dc280a776ef616c28abc31;hpb=98e61758744ed34e8b7f59b37edb6d09b33d5517;p=novacoin.git diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h index 6a85abd..324d7f3 100644 --- a/src/qt/walletmodel.h +++ b/src/qt/walletmodel.h @@ -3,13 +3,17 @@ #include -#include "util.h" +#include "allocators.h" /* for SecureString */ class OptionsModel; class AddressTableModel; class TransactionTableModel; class CWallet; +QT_BEGIN_NAMESPACE +class QTimer; +QT_END_NAMESPACE + class SendCoinsRecipient { public: @@ -24,6 +28,7 @@ class WalletModel : public QObject Q_OBJECT public: explicit WalletModel(CWallet *wallet, OptionsModel *optionsModel, QObject *parent = 0); + ~WalletModel(); enum StatusCode // Returned by sendCoins { @@ -35,8 +40,7 @@ public: DuplicateAddress, TransactionCreationFailed, // Error returned when wallet is still locked TransactionCommitFailed, - Aborted, - MiscError + Aborted }; enum EncryptionStatus @@ -51,7 +55,9 @@ public: TransactionTableModel *getTransactionTableModel(); qint64 getBalance() const; + qint64 getStake() const; qint64 getUnconfirmedBalance() const; + qint64 getImmatureBalance() const; int getNumTransactions() const; EncryptionStatus getEncryptionStatus() const; @@ -115,13 +121,22 @@ private: // Cache some values to be able to detect changes qint64 cachedBalance; + qint64 cachedStake; qint64 cachedUnconfirmedBalance; + qint64 cachedImmatureBalance; qint64 cachedNumTransactions; EncryptionStatus cachedEncryptionStatus; + int cachedNumBlocks; + + QTimer *pollTimer; + + void subscribeToCoreSignals(); + void unsubscribeFromCoreSignals(); + void checkBalanceChanged(); signals: // Signal that balance in wallet changed - void balanceChanged(qint64 balance, qint64 unconfirmedBalance); + void balanceChanged(qint64 balance, qint64 stake, qint64 unconfirmedBalance, qint64 immatureBalance); // Number of transactions in wallet changed void numTransactionsChanged(int count); @@ -135,11 +150,17 @@ signals: void requireUnlock(); // Asynchronous error notification - void error(const QString &title, const QString &message); + void error(const QString &title, const QString &message, bool modal); public slots: - void update(); - void updateAddressList(); + /* Wallet status might have changed */ + void updateStatus(); + /* New transaction, or transaction changed status */ + void updateTransaction(const QString &hash, int status); + /* New, updated or removed address book entry */ + void updateAddressBook(const QString &address, const QString &label, bool isMine, int status); + /* Current, immature or unconfirmed balance might have changed - emit 'balanceChanged' if so */ + void pollBalanceChanged(); };