diff options
author | Gavin Andresen <gavinandresen@gmail.com> | 2013-07-22 16:50:39 +1000 |
---|---|---|
committer | Gavin Andresen <gavinandresen@gmail.com> | 2013-08-22 16:18:25 +1000 |
commit | a41d5fe01947f2f878c055670986a165af800f9a (patch) | |
tree | 40eeada1ebc180f8e3669a7d164104686dc0c618 /src/qt/bitcoingui.cpp | |
parent | 47d0534368fbf0e3fb2cad7d05d60501d29f62aa (diff) |
Payment Protocol: X509-validated payment requests
Add support for a Payment Protocol to Bitcoin-Qt.
Payment messages are protocol-buffer encoded and communicated over
http(s), so this adds a dependency on the Google protocol buffer
library, and requires Qt with OpenSSL support.
Diffstat (limited to 'src/qt/bitcoingui.cpp')
-rw-r--r-- | src/qt/bitcoingui.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 8ec2f03fad..ad32c9ea68 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -45,6 +45,7 @@ #include <QDragEnterEvent> #if QT_VERSION < 0x050000 #include <QUrl> +#include <QTextDocument> #endif #include <QMimeData> #include <QStyle> @@ -707,7 +708,8 @@ void BitcoinGUI::dropEvent(QDropEvent *event) QList<QUrl> uris = event->mimeData()->urls(); foreach(const QUrl &uri, uris) { - if (walletFrame->handleURI(uri.toString())) + SendCoinsRecipient r; + if (GUIUtil::parseBitcoinURI(uri, &r) && walletFrame->handlePaymentRequest(r)) nValidUrisFound++; } @@ -734,12 +736,18 @@ bool BitcoinGUI::eventFilter(QObject *object, QEvent *event) return QMainWindow::eventFilter(object, event); } -void BitcoinGUI::handleURI(QString strURI) +void BitcoinGUI::handlePaymentRequest(const SendCoinsRecipient& recipient) { - // URI has to be valid - if (!walletFrame->handleURI(strURI)) - message(tr("URI handling"), tr("URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters."), - CClientUIInterface::ICON_WARNING); + walletFrame->handlePaymentRequest(recipient); +} + +void BitcoinGUI::showPaymentACK(QString msg) +{ +#if QT_VERSION < 0x050000 + message(tr("Payment acknowledged"), Qt::escape(msg), CClientUIInterface::MODAL); +#else + message(tr("Payment acknowledged"), msg.toHtmlEscaped(), CClientUIInterface::MODAL); +#endif } void BitcoinGUI::setEncryptionStatus(int status) |