Feathercoin  0.5.0
P2P Digital Currency
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
bitcoingui.h
Go to the documentation of this file.
1 #ifndef BITCOINGUI_H
2 #define BITCOINGUI_H
3 
4 #include <QMainWindow>
5 #include <QSystemTrayIcon>
6 #include <QMap>
7 
9 class WalletFrame;
10 class WalletView;
11 class ClientModel;
12 class WalletModel;
13 class WalletStack;
14 class TransactionView;
15 class OverviewPage;
16 class AddressBookPage;
17 class SendCoinsDialog;
19 class Notificator;
20 class RPCConsole;
21 
22 class CWallet;
23 
24 QT_BEGIN_NAMESPACE
25 class QLabel;
26 class QModelIndex;
27 class QProgressBar;
28 class QStackedWidget;
29 class QUrl;
30 class QListWidget;
31 class QPushButton;
32 class QAction;
33 QT_END_NAMESPACE
34 
39 class BitcoinGUI : public QMainWindow
40 {
41  Q_OBJECT
42 
43 public:
44  static const QString DEFAULT_WALLET;
45 
46  explicit BitcoinGUI(QWidget *parent = 0);
47  ~BitcoinGUI();
48 
58  bool addWallet(const QString& name, WalletModel *walletModel);
59  bool setCurrentWallet(const QString& name);
60 
61  void removeAllWallets();
62 
64  // Todo: Use Qt signals for these
65  QAction * getOverviewAction() { return overviewAction; }
66  QAction * getHistoryAction() { return historyAction; }
67  QAction * getAddressBookAction() { return addressBookAction; }
68  QAction * getReceiveCoinsAction() { return receiveCoinsAction; }
69  QAction * getSendCoinsAction() { return sendCoinsAction; }
70 
71 protected:
72  void changeEvent(QEvent *e);
73  void closeEvent(QCloseEvent *event);
74  void dragEnterEvent(QDragEnterEvent *event);
75  void dropEvent(QDropEvent *event);
76  bool eventFilter(QObject *object, QEvent *event);
77 
78 private:
81 
84  QLabel *labelBlocksIcon;
86  QProgressBar *progressBar;
87 
88  QMenuBar *appMenuBar;
89  QAction *overviewAction;
90  QAction *historyAction;
91  QAction *quitAction;
92  QAction *sendCoinsAction;
96  QAction *aboutAction;
98  QAction *optionsAction;
99  QAction *toggleHideAction;
103  QAction *aboutQtAction;
105 
106  QSystemTrayIcon *trayIcon;
110 
111  QMovie *syncIconMovie;
114 
116  void createActions();
118  void createMenuBar();
120  void createToolBars();
122  void createTrayIcon();
124  void createTrayIconMenu();
126  void saveWindowGeometry();
128  void restoreWindowGeometry();
130  void setWalletActionsEnabled(bool enabled);
131 
132 public slots:
134  void setNumConnections(int count);
136  void setNumBlocks(int count, int nTotalBlocks);
141  void setEncryptionStatus(int status);
142 
150  void message(const QString &title, const QString &message, unsigned int style, bool *ret = NULL);
159  void askFee(qint64 nFeeRequired, bool *payFee);
160  void handleURI(QString strURI);
161 
163  void incomingTransaction(const QString& date, int unit, qint64 amount, const QString& type, const QString& address);
164 
165 private slots:
167  void gotoOverviewPage();
169  void gotoHistoryPage();
171  void gotoAddressBookPage();
173  void gotoReceiveCoinsPage();
175  void gotoSendCoinsPage(QString addr = "");
176 
178  void gotoSignMessageTab(QString addr = "");
180  void gotoVerifyMessageTab(QString addr = "");
181 
183  void optionsClicked();
185  void aboutClicked();
186 #ifndef Q_OS_MAC
187 
188  void trayIconActivated(QSystemTrayIcon::ActivationReason reason);
189 #endif
190 
192  void showNormalIfMinimized(bool fToggleHidden = false);
194  void toggleHidden();
195 
197  void detectShutdown();
198 };
199 
200 #endif // BITCOINGUI_H
QAction * receiveCoinsAction
Definition: bitcoingui.h:97
Local Bitcoin RPC console.
Definition: rpcconsole.h:12
QMenuBar * appMenuBar
Definition: bitcoingui.h:88
static const QString DEFAULT_WALLET
Definition: bitcoingui.h:44
void gotoSendCoinsPage(QString addr="")
Switch to send coins page.
Definition: bitcoingui.cpp:495
QAction * signMessageAction
Definition: bitcoingui.h:94
QAction * aboutAction
Definition: bitcoingui.h:96
void showNormalIfMinimized(bool fToggleHidden=false)
Show window if hidden, unminimize when minimized, rise when obscured or show if hidden and fToggleHid...
Definition: bitcoingui.cpp:808
void handleURI(QString strURI)
Definition: bitcoingui.cpp:771
void createTrayIcon()
Create system tray icon and notification.
Definition: bitcoingui.cpp:376
bool setCurrentWallet(const QString &name)
Definition: bitcoingui.cpp:351
ClientModel * clientModel
Definition: bitcoingui.h:79
void createToolBars()
Create the toolbars.
Definition: bitcoingui.cpp:289
QAction * getHistoryAction()
Definition: bitcoingui.h:66
void createTrayIconMenu()
Create system tray menu (or setup the dock menu)
Definition: bitcoingui.cpp:389
RPCConsole * rpcConsole
Definition: bitcoingui.h:109
QAction * overviewAction
Definition: bitcoingui.h:89
QAction * verifyMessageAction
Definition: bitcoingui.h:95
QAction * quitAction
Definition: bitcoingui.h:91
void dropEvent(QDropEvent *event)
Definition: bitcoingui.cpp:736
QAction * historyAction
Definition: bitcoingui.h:90
void setWalletActionsEnabled(bool enabled)
Enable or disable all wallet-related actions.
Definition: bitcoingui.cpp:362
QAction * aboutQtAction
Definition: bitcoingui.h:103
Bitcoin GUI main class.
Definition: bitcoingui.h:39
QLabel * progressBarLabel
Definition: bitcoingui.h:85
QSystemTrayIcon * trayIcon
Definition: bitcoingui.h:106
QMovie * syncIconMovie
Definition: bitcoingui.h:111
QAction * backupWalletAction
Definition: bitcoingui.h:101
QLabel * labelConnectionsIcon
Definition: bitcoingui.h:83
void saveWindowGeometry()
Save window size and position.
Definition: bitcoingui.cpp:437
void gotoOverviewPage()
Switch to overview (home) page.
Definition: bitcoingui.cpp:475
void setClientModel(ClientModel *clientModel)
Set the client model.
Definition: bitcoingui.cpp:300
QAction * toggleHideAction
Definition: bitcoingui.h:99
QAction * getOverviewAction()
Used by WalletView to allow access to needed QActions.
Definition: bitcoingui.h:65
QAction * addressBookAction
Definition: bitcoingui.h:93
void optionsClicked()
Show configuration dialog.
Definition: bitcoingui.cpp:459
bool eventFilter(QObject *object, QEvent *event)
Definition: bitcoingui.cpp:759
QLabel * labelBlocksIcon
Definition: bitcoingui.h:84
WalletFrame * walletFrame
Definition: bitcoingui.h:80
Widget showing the transaction list for a wallet, including a filter row.
void incomingTransaction(const QString &date, int unit, qint64 amount, const QString &type, const QString &address)
Show incoming transaction notification for new transactions.
Definition: bitcoingui.cpp:715
QAction * openRPCConsoleAction
Definition: bitcoingui.h:104
Dialog for sending bitcoins.
void detectShutdown()
called by a timer to check if fRequestShutdown has been set
Definition: bitcoingui.cpp:835
Cross-platform desktop notification client.
Definition: notificator.h:15
bool addWallet(const QString &name, WalletModel *walletModel)
Set the wallet model.
Definition: bitcoingui.cpp:345
void gotoSignMessageTab(QString addr="")
Show Sign/Verify Message dialog and switch to sign message tab.
Definition: bitcoingui.cpp:500
void gotoReceiveCoinsPage()
Switch to receive coins page.
Definition: bitcoingui.cpp:490
BitcoinGUI(QWidget *parent=0)
Definition: bitcoingui.cpp:60
void dragEnterEvent(QDragEnterEvent *event)
Definition: bitcoingui.cpp:729
Widget that shows a list of sending or receiving addresses.
Notificator * notificator
Definition: bitcoingui.h:107
UI model for the transaction table of a wallet.
QAction * getReceiveCoinsAction()
Definition: bitcoingui.h:68
Model for Bitcoin network client.
Definition: clientmodel.h:24
QAction * sendCoinsAction
Definition: bitcoingui.h:92
QAction * getAddressBookAction()
Definition: bitcoingui.h:67
void gotoAddressBookPage()
Switch to address book page.
Definition: bitcoingui.cpp:485
void trayIconActivated(QSystemTrayIcon::ActivationReason reason)
Handle tray icon clicked.
Definition: bitcoingui.cpp:427
QAction * changePassphraseAction
Definition: bitcoingui.h:102
void closeEvent(QCloseEvent *event)
Definition: bitcoingui.cpp:689
void setEncryptionStatus(int status)
Set the encryption status as shown in the UI.
Definition: bitcoingui.cpp:779
Interface to Bitcoin wallet from Qt view code.
Definition: walletmodel.h:36
void changeEvent(QEvent *e)
Definition: bitcoingui.cpp:670
int prevBlocks
Keep track of previous number of blocks, to detect progress.
Definition: bitcoingui.h:113
void toggleHidden()
Simply calls showNormalIfMinimized(true) for use in SLOT() macro.
Definition: bitcoingui.cpp:830
A CWallet is an extension of a keystore, which also maintains a set of transactions and balances...
Definition: wallet.h:69
void gotoVerifyMessageTab(QString addr="")
Show Sign/Verify Message dialog and switch to verify message tab.
Definition: bitcoingui.cpp:505
QProgressBar * progressBar
Definition: bitcoingui.h:86
void setNumConnections(int count)
Set number of connections shown in the UI.
Definition: bitcoingui.cpp:510
void createActions()
Create the main UI actions.
Definition: bitcoingui.cpp:165
QAction * optionsAction
Definition: bitcoingui.h:98
QAction * encryptWalletAction
Definition: bitcoingui.h:100
void aboutClicked()
Show about dialog.
Definition: bitcoingui.cpp:468
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:619
void restoreWindowGeometry()
Restore window size and position.
Definition: bitcoingui.cpp:444
QLabel * labelEncryptionIcon
Definition: bitcoingui.h:82
TransactionView * transactionView
Definition: bitcoingui.h:108
Overview ("home") page widget.
Definition: overviewpage.h:19
void askFee(qint64 nFeeRequired, bool *payFee)
Asks the user whether to pay the transaction fee or to cancel the transaction.
Definition: bitcoingui.cpp:704
void gotoHistoryPage()
Switch to history (transactions) page.
Definition: bitcoingui.cpp:480
void createMenuBar()
Create the menu bar and sub-menus.
Definition: bitcoingui.cpp:258
void removeAllWallets()
Definition: bitcoingui.cpp:356
const char * name
Definition: testharness.cc:18
QAction * getSendCoinsAction()
Definition: bitcoingui.h:69
void setNumBlocks(int count, int nTotalBlocks)
Set number of blocks shown in the UI.
Definition: bitcoingui.cpp:525