QtUI code cleanup / comment improvements
[novacoin.git] / src / qt / transactionview.h
1 #ifndef TRANSACTIONVIEW_H
2 #define TRANSACTIONVIEW_H
3
4 #include <QWidget>
5
6 class WalletModel;
7 class TransactionFilterProxy;
8
9 QT_BEGIN_NAMESPACE
10 class QTableView;
11 class QComboBox;
12 class QLineEdit;
13 class QModelIndex;
14 class QMenu;
15 class QFrame;
16 class QDateTimeEdit;
17 QT_END_NAMESPACE
18
19 class TransactionView : public QWidget
20 {
21     Q_OBJECT
22 public:
23     explicit TransactionView(QWidget *parent = 0);
24
25     void setModel(WalletModel *model);
26
27     // Date ranges for filter
28     enum DateEnum
29     {
30         All,
31         Today,
32         ThisWeek,
33         ThisMonth,
34         LastMonth,
35         ThisYear,
36         Range
37     };
38
39 private:
40     WalletModel *model;
41     TransactionFilterProxy *transactionProxyModel;
42     QTableView *transactionView;
43
44     QComboBox *dateWidget;
45     QComboBox *typeWidget;
46     QLineEdit *addressWidget;
47     QLineEdit *amountWidget;
48
49     QMenu *contextMenu;
50
51     QFrame *dateRangeWidget;
52     QDateTimeEdit *dateFrom;
53     QDateTimeEdit *dateTo;
54
55     QWidget *createDateRangeWidget();
56
57 private slots:
58     void contextualMenu(const QPoint &);
59     void dateRangeChanged();
60
61 signals:
62     void doubleClicked(const QModelIndex&);
63
64 public slots:
65     void chooseDate(int idx);
66     void chooseType(int idx);
67     void changedPrefix(const QString &prefix);
68     void changedAmount(const QString &amount);
69     void exportClicked();
70     void showDetails();
71     void copyAddress();
72     void editLabel();
73     void copyLabel();
74
75 };
76
77 #endif // TRANSACTIONVIEW_H