Handle unspendable inputs correctly.
[novacoin.git] / src / qt / sendcoinsdialog.h
index 206a854..6810ff4 100644 (file)
@@ -2,32 +2,69 @@
 #define SENDCOINSDIALOG_H
 
 #include <QDialog>
+#include <QString>
 
 namespace Ui {
     class SendCoinsDialog;
 }
-class ClientModel;
+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(ClientModel *model);
+    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;
-    ClientModel *model;
+    WalletModel *model;
+    bool fNewRecipientAllowed;
 
 private slots:
-    void on_addToAddressBook_toggled(bool checked);
-    void on_buttonBox_rejected();
-    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