Bitcoin Core  22.99.0
P2P Digital Currency
coincontroldialog.h
Go to the documentation of this file.
1 // Copyright (c) 2011-2020 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_COINCONTROLDIALOG_H
6 #define BITCOIN_QT_COINCONTROLDIALOG_H
7 
8 #include <consensus/amount.h>
9 
10 #include <QAbstractButton>
11 #include <QAction>
12 #include <QDialog>
13 #include <QList>
14 #include <QMenu>
15 #include <QPoint>
16 #include <QString>
17 #include <QTreeWidgetItem>
18 
19 class PlatformStyle;
20 class WalletModel;
21 
22 class CCoinControl;
23 
24 namespace Ui {
25  class CoinControlDialog;
26 }
27 
28 #define ASYMP_UTF8 "\xE2\x89\x88"
29 
30 class CCoinControlWidgetItem : public QTreeWidgetItem
31 {
32 public:
33  explicit CCoinControlWidgetItem(QTreeWidget *parent, int type = Type) : QTreeWidgetItem(parent, type) {}
34  explicit CCoinControlWidgetItem(QTreeWidgetItem *parent, int type = Type) : QTreeWidgetItem(parent, type) {}
35 
36  bool operator<(const QTreeWidgetItem &other) const override;
37 };
38 
39 
40 class CoinControlDialog : public QDialog
41 {
42  Q_OBJECT
43 
44 public:
45  explicit CoinControlDialog(CCoinControl& coin_control, WalletModel* model, const PlatformStyle *platformStyle, QWidget *parent = nullptr);
47 
48  // static because also called from sendcoinsdialog
49  static void updateLabels(CCoinControl& m_coin_control, WalletModel*, QDialog*);
50 
51  static QList<CAmount> payAmounts;
53 
54 protected:
55  void changeEvent(QEvent* e) override;
56 
57 private:
58  Ui::CoinControlDialog *ui;
62  Qt::SortOrder sortOrder;
63 
64  QMenu *contextMenu;
65  QTreeWidgetItem *contextMenuItem;
67  QAction *lockAction;
68  QAction *unlockAction;
69 
71 
72  void sortView(int, Qt::SortOrder);
73  void updateView();
74 
75  enum
76  {
83  };
84 
85  enum
86  {
87  TxHashRole = Qt::UserRole,
89  };
90 
91  friend class CCoinControlWidgetItem;
92 
93 private Q_SLOTS:
94  void showMenu(const QPoint &);
95  void copyAmount();
96  void copyLabel();
97  void copyAddress();
99  void lockCoin();
100  void unlockCoin();
101  void clipboardQuantity();
102  void clipboardAmount();
103  void clipboardFee();
104  void clipboardAfterFee();
105  void clipboardBytes();
106  void clipboardLowOutput();
107  void clipboardChange();
108  void radioTreeMode(bool);
109  void radioListMode(bool);
110  void viewItemChanged(QTreeWidgetItem*, int);
111  void headerSectionClicked(int);
112  void buttonBoxClicked(QAbstractButton*);
113  void buttonSelectAllClicked();
114  void updateLabelLocked();
115 };
116 
117 #endif // BITCOIN_QT_COINCONTROLDIALOG_H
CoinControlDialog::unlockAction
QAction * unlockAction
Definition: coincontroldialog.h:68
CoinControlDialog::lockCoin
void lockCoin()
Definition: coincontroldialog.cpp:242
CoinControlDialog::platformStyle
const PlatformStyle * platformStyle
Definition: coincontroldialog.h:70
CoinControlDialog::payAmounts
static QList< CAmount > payAmounts
Definition: coincontroldialog.h:51
CoinControlDialog::viewItemChanged
void viewItemChanged(QTreeWidgetItem *, int)
Definition: coincontroldialog.cpp:351
WalletModel
Interface to Bitcoin wallet from Qt view code.
Definition: walletmodel.h:51
CoinControlDialog::showMenu
void showMenu(const QPoint &)
Definition: coincontroldialog.cpp:173
CoinControlDialog::updateView
void updateView()
Definition: coincontroldialog.cpp:578
CCoinControlWidgetItem::CCoinControlWidgetItem
CCoinControlWidgetItem(QTreeWidget *parent, int type=Type)
Definition: coincontroldialog.h:33
CCoinControl
Coin Control Features.
Definition: coincontrol.h:28
CoinControlDialog
Definition: coincontroldialog.h:40
CoinControlDialog::m_coin_control
CCoinControl & m_coin_control
Definition: coincontroldialog.h:59
CoinControlDialog::sortColumn
int sortColumn
Definition: coincontroldialog.h:61
CoinControlDialog::clipboardChange
void clipboardChange()
Definition: coincontroldialog.cpp:301
CoinControlDialog::copyTransactionOutpoint
void copyTransactionOutpoint()
Definition: coincontroldialog.cpp:232
CoinControlDialog::updateLabels
static void updateLabels(CCoinControl &m_coin_control, WalletModel *, QDialog *)
Definition: coincontroldialog.cpp:383
CoinControlDialog::radioListMode
void radioListMode(bool)
Definition: coincontroldialog.cpp:344
CoinControlDialog::model
WalletModel * model
Definition: coincontroldialog.h:60
CoinControlDialog::headerSectionClicked
void headerSectionClicked(int)
Definition: coincontroldialog.cpp:316
CoinControlDialog::clipboardLowOutput
void clipboardLowOutput()
Definition: coincontroldialog.cpp:295
CoinControlDialog::copyLabel
void copyLabel()
Definition: coincontroldialog.cpp:214
CoinControlDialog::fSubtractFeeFromAmount
static bool fSubtractFeeFromAmount
Definition: coincontroldialog.h:52
CoinControlDialog::buttonSelectAllClicked
void buttonSelectAllClicked()
Definition: coincontroldialog.cpp:151
CoinControlDialog::sortView
void sortView(int, Qt::SortOrder)
Definition: coincontroldialog.cpp:307
CoinControlDialog::contextMenuItem
QTreeWidgetItem * contextMenuItem
Definition: coincontroldialog.h:65
CoinControlDialog::clipboardAmount
void clipboardAmount()
Definition: coincontroldialog.cpp:271
CoinControlDialog::buttonBoxClicked
void buttonBoxClicked(QAbstractButton *)
Definition: coincontroldialog.cpp:144
CoinControlDialog::clipboardAfterFee
void clipboardAfterFee()
Definition: coincontroldialog.cpp:283
CCoinControlWidgetItem::CCoinControlWidgetItem
CCoinControlWidgetItem(QTreeWidgetItem *parent, int type=Type)
Definition: coincontroldialog.h:34
CoinControlDialog::clipboardBytes
void clipboardBytes()
Definition: coincontroldialog.cpp:289
CoinControlDialog::~CoinControlDialog
~CoinControlDialog()
Definition: coincontroldialog.cpp:133
CoinControlDialog::updateLabelLocked
void updateLabelLocked()
Definition: coincontroldialog.cpp:371
CoinControlDialog::TxHashRole
@ TxHashRole
Definition: coincontroldialog.h:87
CoinControlDialog::lockAction
QAction * lockAction
Definition: coincontroldialog.h:67
CoinControlDialog::CoinControlDialog
CoinControlDialog(CCoinControl &coin_control, WalletModel *model, const PlatformStyle *platformStyle, QWidget *parent=nullptr)
Definition: coincontroldialog.cpp:44
CCoinControlWidgetItem::operator<
bool operator<(const QTreeWidgetItem &other) const override
Definition: coincontroldialog.cpp:37
CoinControlDialog::unlockCoin
void unlockCoin()
Definition: coincontroldialog.cpp:255
CoinControlDialog::m_copy_transaction_outpoint_action
QAction * m_copy_transaction_outpoint_action
Definition: coincontroldialog.h:66
CoinControlDialog::ui
Ui::CoinControlDialog * ui
Definition: coincontroldialog.h:58
CCoinControlWidgetItem
Definition: coincontroldialog.h:30
Ui
Definition: addressbookpage.h:14
CoinControlDialog::changeEvent
void changeEvent(QEvent *e) override
Definition: coincontroldialog.cpp:569
CoinControlDialog::clipboardQuantity
void clipboardQuantity()
Definition: coincontroldialog.cpp:265
CoinControlDialog::COLUMN_DATE
@ COLUMN_DATE
Definition: coincontroldialog.h:81
CoinControlDialog::COLUMN_AMOUNT
@ COLUMN_AMOUNT
Definition: coincontroldialog.h:78
CoinControlDialog::radioTreeMode
void radioTreeMode(bool)
Definition: coincontroldialog.cpp:337
CoinControlDialog::contextMenu
QMenu * contextMenu
Definition: coincontroldialog.h:64
CoinControlDialog::COLUMN_ADDRESS
@ COLUMN_ADDRESS
Definition: coincontroldialog.h:80
CoinControlDialog::copyAddress
void copyAddress()
Definition: coincontroldialog.cpp:223
CoinControlDialog::copyAmount
void copyAmount()
Definition: coincontroldialog.cpp:208
CoinControlDialog::COLUMN_CHECKBOX
@ COLUMN_CHECKBOX
Definition: coincontroldialog.h:77
CoinControlDialog::sortOrder
Qt::SortOrder sortOrder
Definition: coincontroldialog.h:62
CoinControlDialog::COLUMN_LABEL
@ COLUMN_LABEL
Definition: coincontroldialog.h:79
PlatformStyle
Definition: platformstyle.h:13
CoinControlDialog::clipboardFee
void clipboardFee()
Definition: coincontroldialog.cpp:277
CoinControlDialog::VOutRole
@ VOutRole
Definition: coincontroldialog.h:88
amount.h
CoinControlDialog::COLUMN_CONFIRMATIONS
@ COLUMN_CONFIRMATIONS
Definition: coincontroldialog.h:82