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