Split off WalletModel from ClientModel, to be able to support multi-wallets in future

This commit is contained in:
Wladimir J. van der Laan
2011-06-30 18:05:29 +02:00
parent 929eb9dc6c
commit ef079e183b
10 changed files with 261 additions and 162 deletions

View File

@@ -8,52 +8,35 @@ class AddressTableModel;
class TransactionTableModel;
class CWallet;
// Interface to Bitcoin network client
class ClientModel : public QObject
{
Q_OBJECT
public:
// The only reason that this constructor takes a wallet is because
// the global client settings are stored in the main wallet.
explicit ClientModel(CWallet *wallet, QObject *parent = 0);
enum StatusCode
{
OK,
InvalidAmount,
InvalidAddress,
AmountExceedsBalance,
AmountWithFeeExceedsBalance,
Aborted,
MiscError
};
OptionsModel *getOptionsModel();
AddressTableModel *getAddressTableModel();
TransactionTableModel *getTransactionTableModel();
qint64 getBalance() const;
int getNumConnections() const;
int getNumBlocks() const;
int getNumTransactions() const;
/* Return true if core is doing initial block download */
// Return true if core is doing initial block download
bool inInitialBlockDownload() const;
/* Return conservative estimate of total number of blocks, or 0 if unknown */
// Return conservative estimate of total number of blocks, or 0 if unknown
int getTotalBlocksEstimate() const;
/* Send coins */
StatusCode sendCoins(const QString &payTo, qint64 payAmount, const QString &addToAddressBookAs=QString());
private:
CWallet *wallet;
OptionsModel *optionsModel;
AddressTableModel *addressTableModel;
TransactionTableModel *transactionTableModel;
signals:
void balanceChanged(qint64 balance);
void numConnectionsChanged(int count);
void numBlocksChanged(int count);
void numTransactionsChanged(int count);
/* Asynchronous error notification */
// Asynchronous error notification
void error(const QString &title, const QString &message);
public slots: