Master Core  v0.0.9 - 49a5c0d97abf09ef2911ddfe8d9551df59f9efd3-dirty
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
bitcoingui.h
Go to the documentation of this file.
1 // Copyright (c) 2011-2014 The Bitcoin developers
2 // Distributed under the MIT/X11 software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #ifndef BITCOINGUI_H
6 #define BITCOINGUI_H
7 
8 #if defined(HAVE_CONFIG_H)
9 #include "bitcoin-config.h"
10 #endif
11 
12 #include <QMainWindow>
13 #include <QMap>
14 #include <QSystemTrayIcon>
15 
16 class ClientModel;
17 class Notificator;
18 class RPCConsole;
19 class SendCoinsRecipient;
20 class WalletFrame;
21 class WalletModel;
22 
23 class CWallet;
24 
25 QT_BEGIN_NAMESPACE
26 class QAction;
27 class QLabel;
28 class QProgressBar;
29 QT_END_NAMESPACE
30 
35 class BitcoinGUI : public QMainWindow
36 {
37  Q_OBJECT
38 
39 public:
40  static const QString DEFAULT_WALLET;
41 
42  explicit BitcoinGUI(bool fIsTestnet = false, QWidget *parent = 0);
43  ~BitcoinGUI();
44 
49 
50 #ifdef ENABLE_WALLET
51 
55  bool addWallet(const QString& name, WalletModel *walletModel);
56  bool setCurrentWallet(const QString& name);
57  void removeAllWallets();
58 #endif
59 
60 protected:
61  void changeEvent(QEvent *e);
62  void closeEvent(QCloseEvent *event);
63  void dragEnterEvent(QDragEnterEvent *event);
64  void dropEvent(QDropEvent *event);
65  bool eventFilter(QObject *object, QEvent *event);
66 
67 private:
70 
75  QProgressBar *progressBar;
76 
77  QMenuBar *appMenuBar;
78  QAction *overviewAction;
79  QAction *balancesAction;
80  QAction *historyAction;
81  QAction *quitAction;
82  QAction *sendCoinsAction;
87  QAction *aboutAction;
89  QAction *optionsAction;
90  QAction *toggleHideAction;
94  QAction *aboutQtAction;
96  QAction *openAction;
98 
99  QSystemTrayIcon *trayIcon;
102 
106 
108  void createActions(bool fIsTestnet);
110  void createMenuBar();
112  void createToolBars();
114  void createTrayIcon(bool fIsTestnet);
116  void createTrayIconMenu();
117 
119  void setWalletActionsEnabled(bool enabled);
120 
122  void subscribeToCoreSignals();
125 
126 signals:
128  void receivedURI(const QString &uri);
129 
130 public slots:
132  void setNumConnections(int count);
134  void setNumBlocks(int count);
135 
143  void message(const QString &title, const QString &message, unsigned int style, bool *ret = NULL);
144 
145 #ifdef ENABLE_WALLET
146 
150  void setEncryptionStatus(int status);
151 
152  bool handlePaymentRequest(const SendCoinsRecipient& recipient);
153 
155  void incomingTransaction(const QString& date, int unit, qint64 amount, const QString& type, const QString& address);
156 #endif
157 
158 private slots:
159 #ifdef ENABLE_WALLET
160 
161  void gotoOverviewPage();
163  void gotoBalancesPage();
165  void gotoHistoryPage();
167  void gotoReceiveCoinsPage();
169  void gotoSendCoinsPage(QString addr = "");
170 
172  void gotoSignMessageTab(QString addr = "");
174  void gotoVerifyMessageTab(QString addr = "");
175 
177  void openClicked();
178 #endif
179 
180  void optionsClicked();
182  void aboutClicked();
184  void showHelpMessageClicked();
185 #ifndef Q_OS_MAC
186 
187  void trayIconActivated(QSystemTrayIcon::ActivationReason reason);
188 #endif
189 
191  void showNormalIfMinimized(bool fToggleHidden = false);
193  void toggleHidden();
194 
196  void detectShutdown();
197 };
198 
199 #endif // BITCOINGUI_H
void subscribeToCoreSignals()
Connect core signals to GUI client.
Definition: bitcoingui.cpp:983
void unsubscribeFromCoreSignals()
Disconnect core signals from GUI client.
Definition: bitcoingui.cpp:989
QAction * receiveCoinsAction
Definition: bitcoingui.h:88
Local Bitcoin RPC console.
Definition: rpcconsole.h:17
QMenuBar * appMenuBar
Definition: bitcoingui.h:77
static const QString DEFAULT_WALLET
Definition: bitcoingui.h:40
QAction * signMessageAction
Definition: bitcoingui.h:85
void receivedURI(const QString &uri)
Signal raised when a URI was entered or dragged to the GUI.
QAction * aboutAction
Definition: bitcoingui.h:87
void showNormalIfMinimized(bool fToggleHidden=false)
Show window if hidden, unminimize when minimized, rise when obscured or show if hidden and fToggleHid...
Definition: bitcoingui.cpp:932
void createTrayIcon(bool fIsTestnet)
Create system tray icon and notification.
Definition: bitcoingui.cpp:474
ClientModel * clientModel
Definition: bitcoingui.h:68
void createToolBars()
Create the toolbars.
Definition: bitcoingui.cpp:388
void createTrayIconMenu()
Create system tray menu (or setup the dock menu)
Definition: bitcoingui.cpp:496
RPCConsole * rpcConsole
Definition: bitcoingui.h:101
QAction * overviewAction
Definition: bitcoingui.h:78
QAction * verifyMessageAction
Definition: bitcoingui.h:86
QAction * quitAction
Definition: bitcoingui.h:81
void dropEvent(QDropEvent *event)
Definition: bitcoingui.cpp:864
QAction * historyAction
Definition: bitcoingui.h:80
BitcoinGUI(bool fIsTestnet=false, QWidget *parent=0)
Definition: bitcoingui.cpp:60
void setWalletActionsEnabled(bool enabled)
Enable or disable all wallet-related actions.
Definition: bitcoingui.cpp:457
QAction * aboutQtAction
Definition: bitcoingui.h:94
Bitcoin GUI main class.
Definition: bitcoingui.h:35
QLabel * progressBarLabel
Definition: bitcoingui.h:74
QSystemTrayIcon * trayIcon
Definition: bitcoingui.h:99
QAction * showHelpMessageAction
Definition: bitcoingui.h:97
QAction * backupWalletAction
Definition: bitcoingui.h:92
QLabel * labelConnectionsIcon
Definition: bitcoingui.h:72
void createActions(bool fIsTestnet)
Create the main UI actions.
Definition: bitcoingui.cpp:218
QAction * usedReceivingAddressesAction
Definition: bitcoingui.h:84
void setClientModel(ClientModel *clientModel)
Set the client model.
Definition: bitcoingui.cpp:403
QAction * toggleHideAction
Definition: bitcoingui.h:90
void optionsClicked()
Show configuration dialog.
Definition: bitcoingui.cpp:544
bool eventFilter(QObject *object, QEvent *event)
Definition: bitcoingui.cpp:876
QLabel * labelBlocksIcon
Definition: bitcoingui.h:73
WalletFrame * walletFrame
Definition: bitcoingui.h:69
QAction * usedSendingAddressesAction
Definition: bitcoingui.h:83
QAction * openRPCConsoleAction
Definition: bitcoingui.h:95
void detectShutdown()
called by a timer to check if fRequestShutdown has been set
Definition: bitcoingui.cpp:959
Cross-platform desktop notification client.
Definition: notificator.h:24
void showHelpMessageClicked()
Show help message dialog.
Definition: bitcoingui.cpp:564
void dragEnterEvent(QDragEnterEvent *event)
Definition: bitcoingui.cpp:857
Notificator * notificator
Definition: bitcoingui.h:100
Model for Bitcoin network client.
Definition: clientmodel.h:36
QAction * sendCoinsAction
Definition: bitcoingui.h:82
QAction * openAction
Definition: bitcoingui.h:96
void trayIconActivated(QSystemTrayIcon::ActivationReason reason)
Handle tray icon clicked.
Definition: bitcoingui.cpp:534
QAction * changePassphraseAction
Definition: bitcoingui.h:93
void closeEvent(QCloseEvent *event)
Definition: bitcoingui.cpp:826
Interface to Bitcoin wallet from Qt view code.
Definition: walletmodel.h:96
QAction * balancesAction
Definition: bitcoingui.h:79
void changeEvent(QEvent *e)
Definition: bitcoingui.cpp:807
int prevBlocks
Keep track of previous number of blocks, to detect progress.
Definition: bitcoingui.h:104
void toggleHidden()
Simply calls showNormalIfMinimized(true) for use in SLOT() macro.
Definition: bitcoingui.cpp:954
int spinnerFrame
Definition: bitcoingui.h:105
A CWallet is an extension of a keystore, which also maintains a set of transactions and balances...
Definition: wallet.h:100
QProgressBar * progressBar
Definition: bitcoingui.h:75
void setNumConnections(int count)
Set number of connections shown in the UI.
Definition: bitcoingui.cpp:622
QAction * optionsAction
Definition: bitcoingui.h:89
QAction * encryptWalletAction
Definition: bitcoingui.h:91
void aboutClicked()
Show about dialog.
Definition: bitcoingui.cpp:554
void message(const QString &title, const QString &message, unsigned int style, bool *ret=NULL)
Notify the user of an event from the core network or transaction handling code.
Definition: bitcoingui.cpp:744
QLabel * labelEncryptionIcon
Definition: bitcoingui.h:71
void createMenuBar()
Create the menu bar and sub-menus.
Definition: bitcoingui.cpp:343
void setNumBlocks(int count)
Set number of blocks shown in the UI.
Definition: bitcoingui.cpp:637