Minimal architectural changes necessary to support multiple wallets in bitcoin-qt

- This commit is a minimal restructuring necessary to support multiple wallets in the UI. Please see multiwallet-qt.txt for details.
This commit is contained in:
Eric Lombrozo
2013-03-22 10:32:49 -07:00
parent dfd71bb450
commit 67155d9299
11 changed files with 1097 additions and 226 deletions

73
src/qt/walletframe.h Normal file
View File

@@ -0,0 +1,73 @@
/*
* Qt4 bitcoin GUI.
*
* W.J. van der Laan 2011-2012
* The Bitcoin Developers 2011-2013
*/
#ifndef WALLETFRAME_H
#define WALLETFRAME_H
#include <QFrame>
class BitcoinGUI;
class ClientModel;
class WalletModel;
class WalletStack;
class WalletFrame : public QFrame
{
Q_OBJECT
public:
explicit WalletFrame(BitcoinGUI *_gui);
~WalletFrame();
void setClientModel(ClientModel *clientModel);
bool addWallet(const QString& name, WalletModel *walletModel);
bool setCurrentWallet(const QString& name);
void removeAllWallets();
bool handleURI(const QString &uri);
void showOutOfSyncWarning(bool fShow);
private:
BitcoinGUI *gui;
ClientModel *clientModel;
WalletStack *walletStack;
public slots:
/** Switch to overview (home) page */
void gotoOverviewPage();
/** Switch to history (transactions) page */
void gotoHistoryPage();
/** Switch to address book page */
void gotoAddressBookPage();
/** Switch to receive coins page */
void gotoReceiveCoinsPage();
/** Switch to send coins page */
void gotoSendCoinsPage();
/** Show Sign/Verify Message dialog and switch to sign message tab */
void gotoSignMessageTab(QString addr = "");
/** Show Sign/Verify Message dialog and switch to verify message tab */
void gotoVerifyMessageTab(QString addr = "");
/** Encrypt the wallet */
void encryptWallet(bool status);
/** Backup the wallet */
void backupWallet();
/** Change encrypted wallet passphrase */
void changePassphrase();
/** Ask for passphrase to unlock wallet temporarily */
void unlockWallet();
/** Set the encryption status as shown in the UI.
@param[in] status current encryption status
@see WalletModel::EncryptionStatus
*/
void setEncryptionStatus();
};
#endif // WALLETFRAME_H