X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fqt%2Fguiutil.cpp;fp=src%2Fqt%2Fguiutil.cpp;h=29ef554ac3de7c5d12796b85c23beb092b01aa1b;hb=cce89ead184c6b61a3361e598cc7553512730a72;hp=22d9cc7384852ea5c04f8ef7e9799825cba74d66;hpb=328b26d40b2ea046144a487a6b4927a630e91fb9;p=novacoin.git diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 22d9cc7..29ef554 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -56,19 +56,36 @@ bool GUIUtil::parseBitcoinURL(const QUrl *url, SendCoinsRecipient *out) 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 + rv.amount = 0; + QList > items = url->queryItems(); + for (QList >::iterator i = items.begin(); i != items.end(); i++) { - if(!BitcoinUnits::parse(BitcoinUnits::BTC, amount, &rv.amount)) + bool fShouldReturnFalse = false; + if (i->first.startsWith("req-")) { - return false; + i->first.remove(0, 4); + fShouldReturnFalse = true; } + + if (i->first == "label") + { + rv.label = i->second; + fShouldReturnFalse = false; + } + else if (i->first == "amount") + { + if(!i->second.isEmpty()) + { + if(!BitcoinUnits::parse(BitcoinUnits::BTC, i->second, &rv.amount)) + { + return false; + } + } + fShouldReturnFalse = false; + } + + if (fShouldReturnFalse) + return false; } if(out) {