#include <QWidget>
-class TransactionTableModel;
+class WalletModel;
class TransactionFilterProxy;
QT_BEGIN_NAMESPACE
class QComboBox;
class QLineEdit;
class QModelIndex;
+class QSignalMapper;
+class QMenu;
+class QFrame;
+class QDateTimeEdit;
QT_END_NAMESPACE
+/** Widget showing the transaction list for a wallet, including a filter row.
+ Using the filter row, the user can view or export a subset of the transactions.
+ */
class TransactionView : public QWidget
{
Q_OBJECT
public:
explicit TransactionView(QWidget *parent = 0);
- void setModel(TransactionTableModel *model);
+ void setModel(WalletModel *model, bool fShoudAddThirdPartyURL = true);
+ // Date ranges for filter
enum DateEnum
{
All,
};
private:
- TransactionTableModel *model;
+ WalletModel *model;
TransactionFilterProxy *transactionProxyModel;
QTableView *transactionView;
QLineEdit *addressWidget;
QLineEdit *amountWidget;
+ QMenu *contextMenu;
+ QSignalMapper *mapperThirdPartyTxUrls;
+
+ QFrame *dateRangeWidget;
+ QDateTimeEdit *dateFrom;
+ QDateTimeEdit *dateTo;
+
+ QWidget *createDateRangeWidget();
+
+private slots:
+ void contextualMenu(const QPoint &);
+ void dateRangeChanged();
+ void showDetails();
+ void copyAddress();
+ void editLabel();
+ void copyLabel();
+ void copyAmount();
+ void copyTxID();
+ void clearOrphans();
+ void openThirdPartyTxUrl(QString url);
+
signals:
void doubleClicked(const QModelIndex&);
void changedPrefix(const QString &prefix);
void changedAmount(const QString &amount);
void exportClicked();
+ void focusTransaction(const QModelIndex&);
};