Accept "bitcoin:" URL drops from browsers
[novacoin.git] / src / qt / sendcoinsentry.cpp
index 6e87e9c..e97f675 100644 (file)
@@ -1,8 +1,10 @@
 #include "sendcoinsentry.h"
 #include "ui_sendcoinsentry.h"
 #include "guiutil.h"
+#include "bitcoinunits.h"
 #include "addressbookpage.h"
 #include "walletmodel.h"
+#include "optionsmodel.h"
 #include "addresstablemodel.h"
 
 #include "qapplication.h"
@@ -68,8 +70,12 @@ void SendCoinsEntry::clear()
 {
     ui->payTo->clear();
     ui->addAsLabel->clear();
-    ui->payAmount->setText(QString());
+    ui->payAmount->clear();
     ui->payTo->setFocus();
+    if(model)
+    {
+        ui->payAmount->setDisplayUnit(model->getOptionsModel()->getDisplayUnit());
+    }
 }
 
 void SendCoinsEntry::on_deleteButton_clicked()
@@ -86,6 +92,15 @@ bool SendCoinsEntry::validate()
     {
         retval = false;
     }
+    else
+    {
+        if(ui->payAmount->value() <= 0)
+        {
+            // Cannot send 0 coins or less
+            ui->payAmount->setValid(false);
+            retval = false;
+        }
+    }
 
     if(!ui->payTo->hasAcceptableInput() ||
        (model && !model->validateAddress(ui->payTo->text())))
@@ -103,7 +118,7 @@ SendCoinsRecipient SendCoinsEntry::getValue()
 
     rv.address = ui->payTo->text();
     rv.label = ui->addAsLabel->text();
-    GUIUtil::parseMoney(ui->payAmount->text(), &rv.amount);
+    rv.amount = ui->payAmount->value();
 
     return rv;
 }
@@ -117,3 +132,16 @@ QWidget *SendCoinsEntry::setupTabChain(QWidget *prev)
     QWidget::setTabOrder(ui->deleteButton, ui->addAsLabel);
     return ui->payAmount->setupTabChain(ui->addAsLabel);
 }
+
+void SendCoinsEntry::setValue(const SendCoinsRecipient &value)
+{
+    ui->payTo->setText(value.address);
+    ui->addAsLabel->setText(value.label);
+    ui->payAmount->setValue(value.amount);
+}
+
+bool SendCoinsEntry::isClear()
+{
+    return ui->payTo->text().isEmpty();
+}
+