Add context menu on transaction list: copy label, copy address, edit label, show...
[novacoin.git] / src / qt / bitcoingui.h
index f6241a4..b82818a 100644 (file)
@@ -6,7 +6,11 @@
 
 class TransactionTableModel;
 class ClientModel;
+class WalletModel;
 class TransactionView;
+class OverviewPage;
+class AddressBookPage;
+class SendCoinsDialog;
 
 QT_BEGIN_NAMESPACE
 class QLabel;
@@ -15,6 +19,7 @@ class QTableView;
 class QAbstractItemModel;
 class QModelIndex;
 class QProgressBar;
+class QStackedWidget;
 QT_END_NAMESPACE
 
 class BitcoinGUI : public QMainWindow
@@ -22,7 +27,8 @@ class BitcoinGUI : public QMainWindow
     Q_OBJECT
 public:
     explicit BitcoinGUI(QWidget *parent = 0);
-    void setModel(ClientModel *model);
+    void setClientModel(ClientModel *clientModel);
+    void setWalletModel(WalletModel *walletModel);
     
     /* Transaction table tab indices */
     enum {
@@ -37,24 +43,33 @@ protected:
     void closeEvent(QCloseEvent *event);
 
 private:
-    ClientModel *model;
+    ClientModel *clientModel;
+    WalletModel *walletModel;
+
+    QStackedWidget *centralWidget;
+
+    OverviewPage *overviewPage;
+    QWidget *transactionsPage;
+    AddressBookPage *addressBookPage;
+    AddressBookPage *receiveCoinsPage;
+    SendCoinsDialog *sendCoinsPage;
 
-    QLineEdit *address;
-    QLabel *labelBalance;
     QLabel *labelConnections;
     QLabel *labelConnectionsIcon;
     QLabel *labelBlocks;
-    QLabel *labelTransactions;
     QLabel *progressBarLabel;
     QProgressBar *progressBar;
 
-    QAction *quit;
-    QAction *sendcoins;
-    QAction *addressbook;
-    QAction *about;
-    QAction *receivingAddresses;
-    QAction *options;
-    QAction *openBitcoin;
+    QAction *overviewAction;
+    QAction *historyAction;
+    QAction *quitAction;
+    QAction *sendCoinsAction;
+    QAction *addressBookAction;
+    QAction *aboutAction;
+    QAction *receiveCoinsAction;
+    QAction *optionsAction;
+    QAction *openBitcoinAction;
+    QAction *exportAction;
 
     QSystemTrayIcon *trayIcon;
     TransactionView *transactionView;
@@ -65,7 +80,6 @@ private:
 
 public slots:
     void setBalance(qint64 balance);
-    void setAddress(const QString &address);
     void setNumConnections(int count);
     void setNumBlocks(int count);
     void setNumTransactions(int count);
@@ -77,16 +91,19 @@ public slots:
     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 receivingAddressesClicked();
     void aboutClicked();
-    void newAddressClicked();
-    void copyClipboardClicked();
     void trayIconActivated(QSystemTrayIcon::ActivationReason reason);
-    void transactionDetails(const QModelIndex& idx);
     void incomingTransaction(const QModelIndex & parent, int start, int end);
+    void exportClicked();
 };
 
 #endif