From a41d5fe01947f2f878c055670986a165af800f9a Mon Sep 17 00:00:00 2001 From: Gavin Andresen Date: Mon, 22 Jul 2013 16:50:39 +1000 Subject: 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. --- src/qt/bitcoingui.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'src/qt/bitcoingui.cpp') 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 #if QT_VERSION < 0x050000 #include +#include #endif #include #include @@ -707,7 +708,8 @@ void BitcoinGUI::dropEvent(QDropEvent *event) QList 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) -- cgit v1.2.3