git / moonbite-core / src/qt/coincontroldialog.h · raw
// Copyright (c) 2011-2018 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_COINCONTROLDIALOG_H#define BITCOIN_QT_COINCONTROLDIALOG_H#include <amount.h>#include <wallet/coinselection.h>#include <QAbstractButton>#include <QAction>#include <QDialog>#include <QList>#include <QMenu>#include <QPoint>#include <QString>#include <QTreeWidgetItem>class PlatformStyle;class WalletModel;class CCoinControl;namespace Ui { class CoinControlDialog;}#define ASYMP_UTF8 "\xE2\x89\x88"class CCoinControlWidgetItem : public QTreeWidgetItem{public: explicit CCoinControlWidgetItem(QTreeWidget *parent, int type = Type) : QTreeWidgetItem(parent, type) {} explicit CCoinControlWidgetItem(QTreeWidgetItem *parent, int type = Type) : QTreeWidgetItem(parent, type) {} bool operator<(const QTreeWidgetItem &other) const override;};class CoinControlDialog : public QDialog{ Q_OBJECTpublic: explicit CoinControlDialog(CCoinControl& coin_control, WalletModel* model, const PlatformStyle *platformStyle, QWidget *parent = nullptr); ~CoinControlDialog(); // static because also called from sendcoinsdialog static void updateLabels(CCoinControl& m_coin_control, WalletModel*, QDialog*); static QList<CAmount> payAmounts; static bool fSubtractFeeFromAmount;private: Ui::CoinControlDialog *ui; CCoinControl& m_coin_control; WalletModel *model; int sortColumn; Qt::SortOrder sortOrder; QMenu *contextMenu; QTreeWidgetItem *contextMenuItem; QAction *copyTransactionHashAction; QAction *lockAction; QAction *unlockAction; const PlatformStyle *platformStyle; CInputCoin BuildInputCoin(QTreeWidgetItem* item); OutputIndex BuildOutputIndex(QTreeWidgetItem* item); bool IsMWEB(QTreeWidgetItem* item); bool IsCanonical(QTreeWidgetItem* item); void sortView(int, Qt::SortOrder); void updateView(); enum { COLUMN_CHECKBOX = 0, COLUMN_AMOUNT, COLUMN_LABEL, COLUMN_ADDRESS, COLUMN_DATE, COLUMN_CONFIRMATIONS, }; enum { TxHashRole = Qt::UserRole, VOutRole, PubKeyRole, MWEBOutRole }; friend class CCoinControlWidgetItem;private Q_SLOTS: void showMenu(const QPoint &); void copyAmount(); void copyLabel(); void copyAddress(); void copyTransactionHash(); void lockCoin(); void unlockCoin(); void clipboardQuantity(); void clipboardAmount(); void clipboardFee(); void clipboardAfterFee(); void clipboardBytes(); void clipboardLowOutput(); void clipboardChange(); void radioTreeMode(bool); void radioListMode(bool); void viewItemChanged(QTreeWidgetItem*, int); void headerSectionClicked(int); void buttonBoxClicked(QAbstractButton*); void buttonSelectAllClicked(); void updateLabelLocked();};#endif // BITCOIN_QT_COINCONTROLDIALOG_H