Revert "Use standard C99 (and Qt) types for 64-bit integers"
[novacoin.git] / src / qt / guiutil.cpp
index 31b2802..158b84a 100644 (file)
@@ -1,5 +1,7 @@
 #include "guiutil.h"
 #include "bitcoinaddressvalidator.h"
+#include "walletmodel.h"
+#include "bitcoinunits.h"
 
 #include "headers.h"
 
 #include <QDoubleValidator>
 #include <QFont>
 #include <QLineEdit>
+#include <QUrl>
 
-QString GUIUtil::DateTimeStr(qint64 nTime)
+QString GUIUtil::dateTimeStr(qint64 nTime)
+{
+    return dateTimeStr(QDateTime::fromTime_t((qint32)nTime));
+}
+
+QString GUIUtil::dateTimeStr(const QDateTime &date)
 {
-    QDateTime date = QDateTime::fromTime_t((qint32)nTime);
     return date.date().toString(Qt::SystemLocaleShortDate) + QString(" ") + date.toString("hh:mm");
 }
 
@@ -38,12 +45,30 @@ void GUIUtil::setupAmountWidget(QLineEdit *widget, QWidget *parent)
     widget->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
 }
 
-bool GUIUtil::parseMoney(const QString &amount, qint64 *val_out)
+bool GUIUtil::parseBitcoinURL(const QUrl *url, SendCoinsRecipient *out)
 {
-    return ParseMoney(amount.toStdString(), *val_out);
-}
+    if(url->scheme() != QString("bitcoin"))
+        return false;
 
-QString GUIUtil::formatMoney(qint64 amount, bool plussign)
-{
-    return QString::fromStdString(FormatMoney(amount, plussign));
+    SendCoinsRecipient rv;
+    rv.address = url->path();
+    rv.label = url->queryItemValue("label");
+
+    QString amount = url->queryItemValue("amount");
+    if(amount.isEmpty())
+    {
+        rv.amount = 0;
+    }
+    else // Amount is non-empty
+    {
+        if(!BitcoinUnits::parse(BitcoinUnits::BTC, amount, &rv.amount))
+        {
+            return false;
+        }
+    }
+    if(out)
+    {
+        *out = rv;
+    }
+    return true;
 }