1 // Copyright (c) 2011-2015 The Bitcoin Core developers 2 // Distributed under the MIT software license, see the accompanying 3 // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 5 #ifndef BITCOIN_QT_WALLETFRAME_H 6 #define BITCOIN_QT_WALLETFRAME_H 7 8 #include <QFrame> 9 #include <QMap> 10 11 class BitcoinGUI; 12 class ClientModel; 13 class PlatformStyle; 14 class SendCoinsRecipient; 15 class WalletModel; 16 class WalletView; 17 18 QT_BEGIN_NAMESPACE 19 class QStackedWidget; 20 QT_END_NAMESPACE 21 22 class WalletFrame : public QFrame 23 { 24 Q_OBJECT 25 26 public: 27 explicit WalletFrame(const PlatformStyle *platformStyle, BitcoinGUI *_gui = 0); 28 ~WalletFrame(); 29 30 void setClientModel(ClientModel *clientModel); 31 32 bool addWallet(const QString& name, WalletModel *walletModel); 33 bool setCurrentWallet(const QString& name); 34 bool removeWallet(const QString &name); 35 void removeAllWallets(); 36 37 bool handlePaymentRequest(const SendCoinsRecipient& recipient); 38 39 void showOutOfSyncWarning(bool fShow); 40 41 private: 42 QStackedWidget *walletStack; 43 BitcoinGUI *gui; 44 ClientModel *clientModel; 45 QMap<QString, WalletView*> mapWalletViews; 46 47 bool bOutOfSync; 48 49 const PlatformStyle *platformStyle; 50 51 WalletView *currentWalletView(); 52 53 public Q_SLOTS: 54 /** Switch to overview (home) page */ 55 void gotoOverviewPage(); 56 /** Switch to history (transactions) page */ 57 void gotoHistoryPage(); 58 /** Switch to receive coins page */ 59 void gotoReceiveCoinsPage(); 60 /** Switch to send coins page */ 61 void gotoSendCoinsPage(QString addr = ""); 62 63 /** Show Sign/Verify Message dialog and switch to sign message tab */ 64 void gotoSignMessageTab(QString addr = ""); 65 /** Show Sign/Verify Message dialog and switch to verify message tab */ 66 void gotoVerifyMessageTab(QString addr = ""); 67 68 /** Encrypt the wallet */ 69 void encryptWallet(bool status); 70 /** Backup the wallet */ 71 void backupWallet(); 72 /** Change encrypted wallet passphrase */ 73 void changePassphrase(); 74 /** Ask for passphrase to unlock wallet temporarily */ 75 void unlockWallet(); 76 77 /** Show used sending addresses */ 78 void usedSendingAddresses(); 79 /** Show used receiving addresses */ 80 void usedReceivingAddresses(); 81 }; 82 83 #endif // BITCOIN_QT_WALLETFRAME_H 84