Handle unspendable inputs correctly.
[novacoin.git] / src / qt / sendcoinsdialog.h
1 #ifndef SENDCOINSDIALOG_H
2 #define SENDCOINSDIALOG_H
3
4 #include <QDialog>
5 #include <QString>
6
7 namespace Ui {
8     class SendCoinsDialog;
9 }
10 class WalletModel;
11 class SendCoinsEntry;
12 class SendCoinsRecipient;
13
14 QT_BEGIN_NAMESPACE
15 class QUrl;
16 QT_END_NAMESPACE
17
18 /** Dialog for sending bitcoins */
19 class SendCoinsDialog : public QDialog
20 {
21     Q_OBJECT
22
23 public:
24     explicit SendCoinsDialog(QWidget *parent = 0);
25     ~SendCoinsDialog();
26
27     void setModel(WalletModel *model);
28
29     /** 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).
30      */
31     QWidget *setupTabChain(QWidget *prev);
32
33     void pasteEntry(const SendCoinsRecipient &rv);
34     bool handleURI(const QString &uri);
35
36 public slots:
37     void clear();
38     void reject();
39     void accept();
40     SendCoinsEntry *addEntry();
41     void updateRemoveEnabled();
42     void setBalance(qint64 total, qint64 watchOnly, qint64 stake, qint64 unconfirmedBalance, qint64 immatureBalance);
43
44     void on_addressBookButton_clicked();
45     void on_pasteButton_clicked();
46
47 private:
48     Ui::SendCoinsDialog *ui;
49     WalletModel *model;
50     bool fNewRecipientAllowed;
51
52 private slots:
53     void on_sendButton_clicked();
54     void removeEntry(SendCoinsEntry* entry);
55     void updateDisplayUnit();
56     void coinControlFeatureChanged(bool);
57     void coinControlButtonClicked();
58     void coinControlChangeChecked(int);
59     void coinControlUpdateLabels();
60     void coinControlClipboardQuantity();
61     void coinControlClipboardAmount();
62     void coinControlClipboardFee();
63     void coinControlClipboardAfterFee();
64     void coinControlClipboardBytes();
65     void coinControlClipboardPriority();
66     void coinControlClipboardLowOutput();
67     void coinControlClipboardChange();
68 };
69
70 #endif // SENDCOINSDIALOG_H