Line data Source code
1 : // Copyright (c) 2011-2018 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_RECEIVECOINSDIALOG_H 6 : #define BITCOIN_QT_RECEIVECOINSDIALOG_H 7 : 8 : #include <qt/guiutil.h> 9 : 10 : #include <QDialog> 11 : #include <QHeaderView> 12 : #include <QItemSelection> 13 : #include <QKeyEvent> 14 : #include <QMenu> 15 : #include <QPoint> 16 : #include <QVariant> 17 : 18 : class PlatformStyle; 19 : class WalletModel; 20 : 21 : namespace Ui { 22 : class ReceiveCoinsDialog; 23 : } 24 : 25 : QT_BEGIN_NAMESPACE 26 : class QModelIndex; 27 : QT_END_NAMESPACE 28 : 29 : /** Dialog for requesting payment of bitcoins */ 30 : class ReceiveCoinsDialog : public QDialog 31 : { 32 0 : Q_OBJECT 33 : 34 : public: 35 : enum ColumnWidths { 36 : DATE_COLUMN_WIDTH = 130, 37 : LABEL_COLUMN_WIDTH = 120, 38 : AMOUNT_MINIMUM_COLUMN_WIDTH = 180, 39 : MINIMUM_COLUMN_WIDTH = 130 40 : }; 41 : 42 : explicit ReceiveCoinsDialog(const PlatformStyle *platformStyle, QWidget *parent = nullptr); 43 : ~ReceiveCoinsDialog(); 44 : 45 : void setModel(WalletModel *model); 46 : 47 : public Q_SLOTS: 48 : void clear(); 49 : void reject() override; 50 : void accept() override; 51 : 52 : private: 53 : Ui::ReceiveCoinsDialog *ui; 54 : GUIUtil::TableViewLastColumnResizingFixer *columnResizingFixer; 55 : WalletModel *model; 56 : QMenu *contextMenu; 57 : const PlatformStyle *platformStyle; 58 : 59 : QModelIndex selectedRow(); 60 : void copyColumnToClipboard(int column); 61 : virtual void resizeEvent(QResizeEvent *event) override; 62 : 63 : private Q_SLOTS: 64 : void on_receiveButton_clicked(); 65 : void on_showRequestButton_clicked(); 66 : void on_removeRequestButton_clicked(); 67 : void on_recentRequestsView_doubleClicked(const QModelIndex &index); 68 : void recentRequestsView_selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); 69 : void updateDisplayUnit(); 70 : void showMenu(const QPoint &point); 71 : void copyURI(); 72 : void copyLabel(); 73 : void copyMessage(); 74 : void copyAmount(); 75 : }; 76 : 77 : #endif // BITCOIN_QT_RECEIVECOINSDIALOG_H