54925f2855f68ab8516130f8989f89811a64d12a
[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     enum DateEnum
28     {
29         All,
30         Today,
31         ThisWeek,
32         ThisMonth,
33         LastMonth,
34         ThisYear,
35         Range
36     };
37
38 private:
39     WalletModel *model;
40     TransactionFilterProxy *transactionProxyModel;
41     QTableView *transactionView;
42
43     QComboBox *dateWidget;
44     QComboBox *typeWidget;
45     QLineEdit *addressWidget;
46     QLineEdit *amountWidget;
47
48     QMenu *contextMenu;
49
50     QFrame *dateRangeWidget;
51     QDateTimeEdit *dateFrom;
52     QDateTimeEdit *dateTo;
53
54     QWidget *createDateRangeWidget();
55
56 private slots:
57     void contextualMenu(const QPoint &);
58     void dateRangeChanged();
59
60 signals:
61     void doubleClicked(const QModelIndex&);
62
63 public slots:
64     void chooseDate(int idx);
65     void chooseType(int idx);
66     void changedPrefix(const QString &prefix);
67     void changedAmount(const QString &amount);
68     void exportClicked();
69     void showDetails();
70     void copyAddress();
71     void editLabel();
72     void copyLabel();
73
74 };
75
76 #endif // TRANSACTIONVIEW_H