git / moonbite-core / src/qt/transactionview.h · raw

// Copyright (c) 2011-2019 The Bitcoin Core developers// Distributed under the MIT software license, see the accompanying// file COPYING or http://www.opensource.org/licenses/mit-license.php.#ifndef BITCOIN_QT_TRANSACTIONVIEW_H#define BITCOIN_QT_TRANSACTIONVIEW_H#include <qt/guiutil.h>#include <uint256.h>#include <QWidget>#include <QKeyEvent>class PlatformStyle;class TransactionFilterProxy;class WalletModel;QT_BEGIN_NAMESPACEclass QComboBox;class QDateTimeEdit;class QFrame;class QLineEdit;class QMenu;class QModelIndex;class QTableView;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_OBJECTpublic:    explicit TransactionView(const PlatformStyle *platformStyle, QWidget *parent = nullptr);    void setModel(WalletModel *model);    // Date ranges for filter    enum DateEnum    {        All,        Today,        ThisWeek,        ThisMonth,        LastMonth,        ThisYear,        Range    };    enum ColumnWidths {        STATUS_COLUMN_WIDTH = 30,        WATCHONLY_COLUMN_WIDTH = 23,        DATE_COLUMN_WIDTH = 120,        TYPE_COLUMN_WIDTH = 113,        AMOUNT_MINIMUM_COLUMN_WIDTH = 120,        MINIMUM_COLUMN_WIDTH = 23    };private:    WalletModel *model{nullptr};    TransactionFilterProxy *transactionProxyModel{nullptr};    QTableView *transactionView{nullptr};    QComboBox *dateWidget;    QComboBox *typeWidget;    QComboBox *watchOnlyWidget;    QLineEdit *search_widget;    QLineEdit *amountWidget;    QMenu *contextMenu;    QFrame *dateRangeWidget;    QDateTimeEdit *dateFrom;    QDateTimeEdit *dateTo;    QAction *abandonAction{nullptr};    QAction *bumpFeeAction{nullptr};    QAction *rebroadcastAction{nullptr};    QAction *copyAddressAction{nullptr};    QAction *copyLabelAction{nullptr};    QWidget *createDateRangeWidget();    GUIUtil::TableViewLastColumnResizingFixer *columnResizingFixer{nullptr};    virtual void resizeEvent(QResizeEvent* event) override;    bool eventFilter(QObject *obj, QEvent *event) override;private Q_SLOTS:    void contextualMenu(const QPoint &);    void dateRangeChanged();    void showDetails();    void copyAddress();    void editLabel();    void copyLabel();    void copyAmount();    void copyTxID();    void copyTxHex();    void copyTxPlainText();    void openThirdPartyTxUrl(QString url);    void updateWatchOnlyColumn(bool fHaveWatchOnly);    void abandonTx();    void bumpFee();    void rebroadcastTx();Q_SIGNALS:    void doubleClicked(const QModelIndex&);    /**  Fired when a message should be reported to the user */    void message(const QString &title, const QString &message, unsigned int style);    void bumpedFee(const uint256& txid);public Q_SLOTS:    void chooseDate(int idx);    void chooseType(int idx);    void chooseWatchonly(int idx);    void changedAmount();    void changedSearch();    void exportClicked();    void focusTransaction(const QModelIndex&);    void focusTransaction(const uint256& txid);};#endif // BITCOIN_QT_TRANSACTIONVIEW_H