paymentserver: style fixes / cleanup

- rename reportError() into message() to be in line with our default
  message() signal/slot naming (and can be used for all types of messages)
- rename some QStrings to not collide with message() function
- add a missing message for malformed URIs that IS also used in BitcoinGUI
- fix / extend some comments and misc style fixes
This commit is contained in:
Philip Kaufmann 2013-10-18 11:44:05 +02:00
parent e11107f234
commit 95d4a2be95
3 changed files with 34 additions and 26 deletions

View File

@ -333,8 +333,8 @@ int main(int argc, char *argv[])
paymentServer, SLOT(fetchPaymentACK(CWallet*,const SendCoinsRecipient&,QByteArray))); paymentServer, SLOT(fetchPaymentACK(CWallet*,const SendCoinsRecipient&,QByteArray)));
QObject::connect(paymentServer, SIGNAL(receivedPaymentACK(QString)), QObject::connect(paymentServer, SIGNAL(receivedPaymentACK(QString)),
&window, SLOT(showPaymentACK(QString))); &window, SLOT(showPaymentACK(QString)));
QObject::connect(paymentServer, SIGNAL(reportError(QString, QString, unsigned int)), QObject::connect(paymentServer, SIGNAL(message(QString,QString,unsigned int)),
guiref, SLOT(message(QString, QString, unsigned int))); guiref, SLOT(message(QString,QString,unsigned int)));
QTimer::singleShot(100, paymentServer, SLOT(uiReady())); QTimer::singleShot(100, paymentServer, SLOT(uiReady()));
app.exec(); app.exec();

View File

@ -189,7 +189,7 @@ bool PaymentServer::ipcSendCommandLine(int argc, char* argv[])
if (arg.startsWith("-")) if (arg.startsWith("-"))
continue; continue;
if (arg.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // bitcoin: if (arg.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // bitcoin: URI
{ {
savedPaymentRequests.append(arg); savedPaymentRequests.append(arg);
@ -220,9 +220,9 @@ bool PaymentServer::ipcSendCommandLine(int argc, char* argv[])
} }
else else
{ {
qDebug() << "PaymentServer::ipcSendCommandLine : Payment request file does not exist: " << argv[i];
// Printing to debug.log is about the best we can do here, the // Printing to debug.log is about the best we can do here, the
// GUI hasn't started yet so we can't pop up a message box. // GUI hasn't started yet so we can't pop up a message box.
qDebug() << "PaymentServer::ipcSendCommandLine : Payment request file does not exist: " << arg;
} }
} }
@ -246,6 +246,7 @@ bool PaymentServer::ipcSendCommandLine(int argc, char* argv[])
delete socket; delete socket;
fResult = true; fResult = true;
} }
return fResult; return fResult;
} }
@ -255,7 +256,9 @@ PaymentServer::PaymentServer(QObject* parent, bool startLocalServer) : QObject(p
// compatible with the version of the headers we compiled against. // compatible with the version of the headers we compiled against.
GOOGLE_PROTOBUF_VERIFY_VERSION; GOOGLE_PROTOBUF_VERIFY_VERSION;
// Install global event filter to catch QFileOpenEvents on the mac (sent when you click bitcoin: links) // Install global event filter to catch QFileOpenEvents
// on Mac: sent when you click bitcoin: links
// other OSes: helpful when dealing with payment-request files (in the future)
if (parent) if (parent)
parent->installEventFilter(this); parent->installEventFilter(this);
@ -310,7 +313,7 @@ void PaymentServer::initNetManager()
if (netManager != NULL) if (netManager != NULL)
delete netManager; delete netManager;
// netManager is used to fetch paymentrequests given in bitcoin: URI's // netManager is used to fetch paymentrequests given in bitcoin: URIs
netManager = new QNetworkAccessManager(this); netManager = new QNetworkAccessManager(this);
// Use proxy settings from optionsModel: // Use proxy settings from optionsModel:
@ -360,7 +363,8 @@ void PaymentServer::handleURIOrFile(const QString& s)
#endif #endif
if (uri.hasQueryItem("request")) if (uri.hasQueryItem("request"))
{ {
QByteArray temp; temp.append(uri.queryItemValue("request")); QByteArray temp;
temp.append(uri.queryItemValue("request"));
QString decoded = QUrl::fromPercentEncoding(temp); QString decoded = QUrl::fromPercentEncoding(temp);
QUrl fetchUrl(decoded, QUrl::StrictMode); QUrl fetchUrl(decoded, QUrl::StrictMode);
@ -370,13 +374,17 @@ void PaymentServer::handleURIOrFile(const QString& s)
if (fetchUrl.isValid()) if (fetchUrl.isValid())
fetchRequest(fetchUrl); fetchRequest(fetchUrl);
else else
qDebug() << "PaymentServer::handleURIOrFile : Invalid url: " << fetchUrl; qDebug() << "PaymentServer::handleURIOrFile : Invalid URL: " << fetchUrl;
return; return;
} }
SendCoinsRecipient recipient; SendCoinsRecipient recipient;
if (GUIUtil::parseBitcoinURI(s, &recipient)) if (GUIUtil::parseBitcoinURI(s, &recipient))
emit receivedPaymentRequest(recipient); emit receivedPaymentRequest(recipient);
else
emit 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);
return; return;
} }
@ -408,10 +416,10 @@ void PaymentServer::handleURIConnection()
if (clientConnection->bytesAvailable() < (int)sizeof(quint16)) { if (clientConnection->bytesAvailable() < (int)sizeof(quint16)) {
return; return;
} }
QString message; QString msg;
in >> message; in >> msg;
handleURIOrFile(message); handleURIOrFile(msg);
} }
bool PaymentServer::readPaymentRequest(const QString& filename, PaymentRequestPlus& request) bool PaymentServer::readPaymentRequest(const QString& filename, PaymentRequestPlus& request)
@ -444,11 +452,11 @@ bool PaymentServer::processPaymentRequest(PaymentRequestPlus& request, QList<Sen
foreach(const PAIRTYPE(CScript, qint64)& sendingTo, sendingTos) { foreach(const PAIRTYPE(CScript, qint64)& sendingTo, sendingTos) {
CTxOut txOut(sendingTo.second, sendingTo.first); CTxOut txOut(sendingTo.second, sendingTo.first);
if (txOut.IsDust(CTransaction::nMinRelayTxFee)) { if (txOut.IsDust(CTransaction::nMinRelayTxFee)) {
QString message = QObject::tr("Requested payment amount (%1) too small") QString msg = QObject::tr("Requested payment amount (%1) too small")
.arg(BitcoinUnits::formatWithUnit(optionsModel->getDisplayUnit(), sendingTo.second)); .arg(BitcoinUnits::formatWithUnit(optionsModel->getDisplayUnit(), sendingTo.second));
qDebug() << "PaymentServer::processPaymentRequest : " << message; qDebug() << "PaymentServer::processPaymentRequest : " << msg;
emit reportError(tr("Payment request error"), message, CClientUIInterface::MODAL); emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR);
return false; return false;
} }
@ -485,9 +493,9 @@ bool PaymentServer::processPaymentRequest(PaymentRequestPlus& request, QList<Sen
// Insecure payments to custom bitcoin addresses are not supported // Insecure payments to custom bitcoin addresses are not supported
// (there is no good way to tell the user where they are paying in a way // (there is no good way to tell the user where they are paying in a way
// they'd have a chance of understanding). // they'd have a chance of understanding).
emit reportError(tr("Payment request error"), emit message(tr("Payment request error"),
tr("Insecure requests to custom payment scripts unsupported"), tr("Insecure requests to custom payment scripts unsupported"),
CClientUIInterface::MODAL); CClientUIInterface::MSG_ERROR);
return false; return false;
} }
} }
@ -566,11 +574,11 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
reply->deleteLater(); reply->deleteLater();
if (reply->error() != QNetworkReply::NoError) if (reply->error() != QNetworkReply::NoError)
{ {
QString message = QObject::tr("Error communicating with %1: %2") QString msg = QObject::tr("Error communicating with %1: %2")
.arg(reply->request().url().toString()) .arg(reply->request().url().toString())
.arg(reply->errorString()); .arg(reply->errorString());
qDebug() << "PaymentServer::netRequestFinished : " << message; qDebug() << "PaymentServer::netRequestFinished : " << msg;
emit reportError(tr("Network request error"), message, CClientUIInterface::MODAL); emit message(tr("Network request error"), msg, CClientUIInterface::MSG_ERROR);
return; return;
} }
@ -595,10 +603,10 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
payments::PaymentACK paymentACK; payments::PaymentACK paymentACK;
if (!paymentACK.ParseFromArray(data.data(), data.size())) if (!paymentACK.ParseFromArray(data.data(), data.size()))
{ {
QString message = QObject::tr("Bad response from server %1") QString msg = QObject::tr("Bad response from server %1")
.arg(reply->request().url().toString()); .arg(reply->request().url().toString());
qDebug() << "PaymentServer::netRequestFinished : " << message; qDebug() << "PaymentServer::netRequestFinished : " << msg;
emit reportError(tr("Network request error"), message, CClientUIInterface::MODAL); emit message(tr("Network request error"), msg, CClientUIInterface::MSG_ERROR);
} }
else { else {
emit receivedPaymentACK(QString::fromStdString(paymentACK.memo())); emit receivedPaymentACK(QString::fromStdString(paymentACK.memo()));
@ -615,7 +623,7 @@ void PaymentServer::reportSslErrors(QNetworkReply* reply, const QList<QSslError>
qDebug() << "PaymentServer::reportSslErrors : " << err; qDebug() << "PaymentServer::reportSslErrors : " << err;
errString += err.errorString() + "\n"; errString += err.errorString() + "\n";
} }
emit reportError(tr("Network request error"), errString, CClientUIInterface::MODAL); emit message(tr("Network request error"), errString, CClientUIInterface::MSG_ERROR);
} }
void PaymentServer::setOptionsModel(OptionsModel *optionsModel) void PaymentServer::setOptionsModel(OptionsModel *optionsModel)

View File

@ -90,8 +90,8 @@ signals:
// Fired when a valid PaymentACK is received // Fired when a valid PaymentACK is received
void receivedPaymentACK(QString); void receivedPaymentACK(QString);
// Fired when an error should be reported to the user // Fired when a message should be reported to the user
void reportError(QString, QString, unsigned int); void message(const QString &title, const QString &message, unsigned int style);
public slots: public slots:
// Signal this when the main window's UI is ready // Signal this when the main window's UI is ready