]> Git Repo - VerusCoin.git/blob - src/qt/sendcoinsdialog.h
15d39782a1ed65c6488350e04b38218431a7c68c
[VerusCoin.git] / src / qt / sendcoinsdialog.h
1 // Copyright (c) 2011-2013 The Bitcoin developers
2 // Distributed under the MIT/X11 software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5 #ifndef BITCOIN_QT_SENDCOINSDIALOG_H
6 #define BITCOIN_QT_SENDCOINSDIALOG_H
7
8 #include "walletmodel.h"
9
10 #include <QDialog>
11 #include <QString>
12
13 class ClientModel;
14 class OptionsModel;
15 class SendCoinsEntry;
16 class SendCoinsRecipient;
17
18 namespace Ui {
19     class SendCoinsDialog;
20 }
21
22 QT_BEGIN_NAMESPACE
23 class QUrl;
24 QT_END_NAMESPACE
25
26 /** Dialog for sending bitcoins */
27 class SendCoinsDialog : public QDialog
28 {
29     Q_OBJECT
30
31 public:
32     explicit SendCoinsDialog(QWidget *parent = 0);
33     ~SendCoinsDialog();
34
35     void setClientModel(ClientModel *clientModel);
36     void setModel(WalletModel *model);
37
38     /** Set up the tab chain manually, as Qt messes up the tab chain by default in some cases (issue https://bugreports.qt-project.org/browse/QTBUG-10907).
39      */
40     QWidget *setupTabChain(QWidget *prev);
41
42     void setAddress(const QString &address);
43     void pasteEntry(const SendCoinsRecipient &rv);
44     bool handlePaymentRequest(const SendCoinsRecipient &recipient);
45
46 public slots:
47     void clear();
48     void reject();
49     void accept();
50     SendCoinsEntry *addEntry();
51     void updateTabsAndLabels();
52     void setBalance(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance,
53                     const CAmount& watchOnlyBalance, const CAmount& watchUnconfBalance, const CAmount& watchImmatureBalance);
54
55 private:
56     Ui::SendCoinsDialog *ui;
57     ClientModel *clientModel;
58     WalletModel *model;
59     bool fNewRecipientAllowed;
60     bool fFeeMinimized;
61
62     // Process WalletModel::SendCoinsReturn and generate a pair consisting
63     // of a message and message flags for use in emit message().
64     // Additional parameter msgArg can be used via .arg(msgArg).
65     void processSendCoinsReturn(const WalletModel::SendCoinsReturn &sendCoinsReturn, const QString &msgArg = QString());
66     void minimizeFeeSection(bool fMinimize);
67     void updateFeeMinimizedLabel();
68
69 private slots:
70     void on_sendButton_clicked();
71     void on_buttonChooseFee_clicked();
72     void on_buttonMinimizeFee_clicked();
73     void removeEntry(SendCoinsEntry* entry);
74     void updateDisplayUnit();
75     void coinControlFeatureChanged(bool);
76     void coinControlButtonClicked();
77     void coinControlChangeChecked(int);
78     void coinControlChangeEdited(const QString &);
79     void coinControlUpdateLabels();
80     void coinControlClipboardQuantity();
81     void coinControlClipboardAmount();
82     void coinControlClipboardFee();
83     void coinControlClipboardAfterFee();
84     void coinControlClipboardBytes();
85     void coinControlClipboardPriority();
86     void coinControlClipboardLowOutput();
87     void coinControlClipboardChange();
88     void setMinimumFee();
89     void updateFeeSectionControls();
90     void updateMinFeeLabel();
91     void updateSmartFeeLabel();
92     void updateGlobalFeeVariables();
93
94 signals:
95     // Fired when a message should be reported to the user
96     void message(const QString &title, const QString &message, unsigned int style);
97 };
98
99 #endif // BITCOIN_QT_SENDCOINSDIALOG_H
This page took 0.019649 seconds and 2 git commands to generate.