LCOV - code coverage report
Current view: top level - src/qt - transactionview.h (source / functions) Hit Total Coverage
Test: total_coverage.info Lines: 0 2 0.0 %
Date: 2020-09-26 01:30:44 Functions: 0 4 0.0 %

          Line data    Source code
       1             : // Copyright (c) 2011-2019 The Bitcoin Core developers
       2             : // Distributed under the MIT software license, see the accompanying
       3             : // file COPYING or http://www.opensource.org/licenses/mit-license.php.
       4             : 
       5             : #ifndef BITCOIN_QT_TRANSACTIONVIEW_H
       6             : #define BITCOIN_QT_TRANSACTIONVIEW_H
       7             : 
       8             : #include <qt/guiutil.h>
       9             : 
      10             : #include <uint256.h>
      11             : 
      12             : #include <QWidget>
      13             : #include <QKeyEvent>
      14             : 
      15             : class PlatformStyle;
      16             : class TransactionFilterProxy;
      17             : class WalletModel;
      18             : 
      19             : QT_BEGIN_NAMESPACE
      20             : class QComboBox;
      21             : class QDateTimeEdit;
      22             : class QFrame;
      23             : class QLineEdit;
      24             : class QMenu;
      25             : class QModelIndex;
      26             : class QTableView;
      27             : QT_END_NAMESPACE
      28             : 
      29             : /** Widget showing the transaction list for a wallet, including a filter row.
      30             :     Using the filter row, the user can view or export a subset of the transactions.
      31             :   */
      32           0 : class TransactionView : public QWidget
      33             : {
      34           0 :     Q_OBJECT
      35             : 
      36             : public:
      37             :     explicit TransactionView(const PlatformStyle *platformStyle, QWidget *parent = nullptr);
      38             : 
      39             :     void setModel(WalletModel *model);
      40             : 
      41             :     // Date ranges for filter
      42             :     enum DateEnum
      43             :     {
      44             :         All,
      45             :         Today,
      46             :         ThisWeek,
      47             :         ThisMonth,
      48             :         LastMonth,
      49             :         ThisYear,
      50             :         Range
      51             :     };
      52             : 
      53             :     enum ColumnWidths {
      54             :         STATUS_COLUMN_WIDTH = 30,
      55             :         WATCHONLY_COLUMN_WIDTH = 23,
      56             :         DATE_COLUMN_WIDTH = 120,
      57             :         TYPE_COLUMN_WIDTH = 113,
      58             :         AMOUNT_MINIMUM_COLUMN_WIDTH = 120,
      59             :         MINIMUM_COLUMN_WIDTH = 23
      60             :     };
      61             : 
      62             : private:
      63             :     WalletModel *model{nullptr};
      64             :     TransactionFilterProxy *transactionProxyModel{nullptr};
      65             :     QTableView *transactionView{nullptr};
      66             : 
      67             :     QComboBox *dateWidget;
      68             :     QComboBox *typeWidget;
      69             :     QComboBox *watchOnlyWidget;
      70             :     QLineEdit *search_widget;
      71             :     QLineEdit *amountWidget;
      72             : 
      73             :     QMenu *contextMenu;
      74             : 
      75             :     QFrame *dateRangeWidget;
      76             :     QDateTimeEdit *dateFrom;
      77             :     QDateTimeEdit *dateTo;
      78             :     QAction *abandonAction{nullptr};
      79             :     QAction *bumpFeeAction{nullptr};
      80             :     QAction *copyAddressAction{nullptr};
      81             :     QAction *copyLabelAction{nullptr};
      82             : 
      83             :     QWidget *createDateRangeWidget();
      84             : 
      85             :     GUIUtil::TableViewLastColumnResizingFixer *columnResizingFixer{nullptr};
      86             : 
      87             :     virtual void resizeEvent(QResizeEvent* event) override;
      88             : 
      89             :     bool eventFilter(QObject *obj, QEvent *event) override;
      90             : 
      91             : private Q_SLOTS:
      92             :     void contextualMenu(const QPoint &);
      93             :     void dateRangeChanged();
      94             :     void showDetails();
      95             :     void copyAddress();
      96             :     void editLabel();
      97             :     void copyLabel();
      98             :     void copyAmount();
      99             :     void copyTxID();
     100             :     void copyTxHex();
     101             :     void copyTxPlainText();
     102             :     void openThirdPartyTxUrl(QString url);
     103             :     void updateWatchOnlyColumn(bool fHaveWatchOnly);
     104             :     void abandonTx();
     105             :     void bumpFee();
     106             : 
     107             : Q_SIGNALS:
     108             :     void doubleClicked(const QModelIndex&);
     109             : 
     110             :     /**  Fired when a message should be reported to the user */
     111             :     void message(const QString &title, const QString &message, unsigned int style);
     112             : 
     113             :     void bumpedFee(const uint256& txid);
     114             : 
     115             : public Q_SLOTS:
     116             :     void chooseDate(int idx);
     117             :     void chooseType(int idx);
     118             :     void chooseWatchonly(int idx);
     119             :     void changedAmount();
     120             :     void changedSearch();
     121             :     void exportClicked();
     122             :     void focusTransaction(const QModelIndex&);
     123             :     void focusTransaction(const uint256& txid);
     124             : };
     125             : 
     126             : #endif // BITCOIN_QT_TRANSACTIONVIEW_H

Generated by: LCOV version 1.15