Handle unspendable inputs correctly.
[novacoin.git] / src / qt / sendcoinsdialog.h
index 46814af..6810ff4 100644 (file)
@@ -2,36 +2,69 @@
 #define SENDCOINSDIALOG_H
 
 #include <QDialog>
+#include <QString>
 
 namespace Ui {
     class SendCoinsDialog;
 }
 class WalletModel;
+class SendCoinsEntry;
+class SendCoinsRecipient;
 
+QT_BEGIN_NAMESPACE
+class QUrl;
+QT_END_NAMESPACE
+
+/** Dialog for sending bitcoins */
 class SendCoinsDialog : public QDialog
 {
     Q_OBJECT
 
 public:
-    explicit SendCoinsDialog(QWidget *parent = 0, const QString &address = "");
+    explicit SendCoinsDialog(QWidget *parent = 0);
     ~SendCoinsDialog();
 
     void setModel(WalletModel *model);
 
+    /** 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).
+     */
+    QWidget *setupTabChain(QWidget *prev);
+
+    void pasteEntry(const SendCoinsRecipient &rv);
+    bool handleURI(const QString &uri);
+
 public slots:
     void clear();
     void reject();
     void accept();
+    SendCoinsEntry *addEntry();
+    void updateRemoveEnabled();
+    void setBalance(qint64 total, qint64 watchOnly, qint64 stake, qint64 unconfirmedBalance, qint64 immatureBalance);
+
+    void on_addressBookButton_clicked();
+    void on_pasteButton_clicked();
 
 private:
     Ui::SendCoinsDialog *ui;
     WalletModel *model;
+    bool fNewRecipientAllowed;
 
 private slots:
-    void on_payTo_textChanged(const QString &address);
-    void on_addressBookButton_clicked();
-    void on_pasteButton_clicked();
     void on_sendButton_clicked();
+    void removeEntry(SendCoinsEntry* entry);
+    void updateDisplayUnit();
+    void coinControlFeatureChanged(bool);
+    void coinControlButtonClicked();
+    void coinControlChangeChecked(int);
+    void coinControlUpdateLabels();
+    void coinControlClipboardQuantity();
+    void coinControlClipboardAmount();
+    void coinControlClipboardFee();
+    void coinControlClipboardAfterFee();
+    void coinControlClipboardBytes();
+    void coinControlClipboardPriority();
+    void coinControlClipboardLowOutput();
+    void coinControlClipboardChange();
 };
 
 #endif // SENDCOINSDIALOG_H