class WalletModel;
class TransactionView;
class OverviewPage;
+class AddressBookPage;
+class SendCoinsDialog;
+class Notificator;
QT_BEGIN_NAMESPACE
class QLabel;
class QModelIndex;
class QProgressBar;
class QStackedWidget;
+class QUrl;
QT_END_NAMESPACE
class BitcoinGUI : public QMainWindow
Q_OBJECT
public:
explicit BitcoinGUI(QWidget *parent = 0);
+ ~BitcoinGUI();
+
void setClientModel(ClientModel *clientModel);
void setWalletModel(WalletModel *walletModel);
protected:
void changeEvent(QEvent *e);
void closeEvent(QCloseEvent *event);
+ void dragEnterEvent(QDragEnterEvent *event);
+ void dropEvent(QDropEvent *event);
private:
ClientModel *clientModel;
WalletModel *walletModel;
QStackedWidget *centralWidget;
+
OverviewPage *overviewPage;
QWidget *transactionsPage;
+ AddressBookPage *addressBookPage;
+ AddressBookPage *receiveCoinsPage;
+ SendCoinsDialog *sendCoinsPage;
- QLabel *labelConnections;
+ QLabel *labelEncryptionIcon;
QLabel *labelConnectionsIcon;
- QLabel *labelBlocks;
- QLabel *labelTransactions;
+ QLabel *labelBlocksIcon;
QLabel *progressBarLabel;
QProgressBar *progressBar;
+ QMenuBar *appMenuBar;
QAction *overviewAction;
QAction *historyAction;
- QAction *quit;
- QAction *sendCoins;
- QAction *addressbook;
- QAction *about;
- QAction *receiveCoins;
- QAction *options;
- QAction *openBitcoin;
+ QAction *quitAction;
+ QAction *sendCoinsAction;
+ QAction *addressBookAction;
+ QAction *aboutAction;
+ QAction *receiveCoinsAction;
+ QAction *optionsAction;
+ QAction *openBitcoinAction;
+ QAction *exportAction;
+ QAction *encryptWalletAction;
+ QAction *changePassphraseAction;
+ QAction *aboutQtAction;
QSystemTrayIcon *trayIcon;
+ Notificator *notificator;
TransactionView *transactionView;
+ QMovie *syncIconMovie;
+
void createActions();
+ void createMenuBar();
+ void createToolBars();
QWidget *createTabs();
void createTrayIcon();
public slots:
- void setBalance(qint64 balance);
void setNumConnections(int count);
void setNumBlocks(int count);
- void setNumTransactions(int count);
- void error(const QString &title, const QString &message);
+ void setEncryptionStatus(int status);
+ /** Set the status bar text if there are any warnings (removes sync progress bar if applicable) */
+ void refreshStatusBar();
+
+ void error(const QString &title, const QString &message, bool modal = false);
/* It is currently not possible to pass a return value to another thread through
BlockingQueuedConnection, so use an indirected pointer.
http://bugreports.qt.nokia.com/browse/QTBUG-10440
void askFee(qint64 nFeeRequired, bool *payFee);
private slots:
- void sendCoinsClicked();
- void addressbookClicked();
+ // UI pages
+ void gotoOverviewPage();
+ void gotoHistoryPage();
+ void gotoAddressBookPage();
+ void gotoReceiveCoinsPage();
+ void gotoSendCoinsPage();
+
+ // Misc actions
void optionsClicked();
- void receiveCoinsClicked();
void aboutClicked();
+#ifndef Q_WS_MAC
void trayIconActivated(QSystemTrayIcon::ActivationReason reason);
- void transactionDetails(const QModelIndex& idx);
+#endif
void incomingTransaction(const QModelIndex & parent, int start, int end);
-
- void gotoOverviewTab();
- void gotoHistoryTab();
+ void encryptWallet(bool status);
+ void changePassphrase();
+ void unlockWallet();
};
#endif