Accept "bitcoin:" URL drops from browsers
[novacoin.git] / src / qt / guiutil.cpp
index a81cc14..3516d4f 100644 (file)
@@ -1,15 +1,24 @@
 #include "guiutil.h"
 #include "bitcoinaddressvalidator.h"
+#include "walletmodel.h"
+#include "bitcoinunits.h"
+
+#include "headers.h"
 
 #include <QString>
 #include <QDateTime>
 #include <QDoubleValidator>
 #include <QFont>
 #include <QLineEdit>
+#include <QUrl>
 
 QString GUIUtil::DateTimeStr(qint64 nTime)
 {
-    QDateTime date = QDateTime::fromMSecsSinceEpoch(nTime*1000);
+    return DateTimeStr(QDateTime::fromTime_t((qint32)nTime));
+}
+
+QString GUIUtil::DateTimeStr(const QDateTime &date)
+{
     return date.date().toString(Qt::SystemLocaleShortDate) + QString(" ") + date.toString("hh:mm");
 }
 
@@ -36,3 +45,21 @@ void GUIUtil::setupAmountWidget(QLineEdit *widget, QWidget *parent)
     widget->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
 }
 
+bool GUIUtil::parseBitcoinURL(const QUrl *url, SendCoinsRecipient *out)
+{
+    if(url->scheme() != QString("bitcoin"))
+        return false;
+
+    SendCoinsRecipient rv;
+    rv.address = url->path();
+    rv.label = url->queryItemValue("label");
+    if(!BitcoinUnits::parse(BitcoinUnits::BTC, url->queryItemValue("amount"), &rv.amount))
+    {
+        return false;
+    }
+    if(out)
+    {
+        *out = rv;
+    }
+    return true;
+}