diff options
Diffstat (limited to 'src/qt/qrcodedialog.cpp')
-rw-r--r-- | src/qt/qrcodedialog.cpp | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/src/qt/qrcodedialog.cpp b/src/qt/qrcodedialog.cpp index 82959831de..bf132ad013 100644 --- a/src/qt/qrcodedialog.cpp +++ b/src/qt/qrcodedialog.cpp @@ -8,7 +8,7 @@ #include <qrencode.h> -#define EXPORT_IMAGE_SIZE 256 +#define EXPORT_IMAGE_SIZE 256 QRCodeDialog::QRCodeDialog(const QString &title, const QString &addr, const QString &label, bool enableReq, QWidget *parent) : QDialog(parent), @@ -24,7 +24,9 @@ QRCodeDialog::QRCodeDialog(const QString &title, const QString &addr, const QStr ui->lblAm1->setVisible(enableReq); ui->lblAm2->setVisible(enableReq); - ui->lnLabel->setText(label); + // don't display "(no label)" if there IS no label, as this is confusing in the QR dialog + if(label != tr("(no label)")) + ui->lnLabel->setText(label); genCode(); } @@ -37,13 +39,14 @@ QRCodeDialog::~QRCodeDialog() void QRCodeDialog::genCode() { QString uri = getURI(); - //qDebug() << "Encoding:" << uri.toUtf8().constData(); QRcode *code = QRcode_encodeString(uri.toUtf8().constData(), 0, QR_ECLEVEL_L, QR_MODE_8, 1); myImage = QImage(code->width + 8, code->width + 8, QImage::Format_RGB32); myImage.fill(0xffffff); unsigned char *p = code->data; - for(int y = 0; y < code->width; y++) { - for(int x = 0; x < code->width; x++) { + for (int y = 0; y < code->width; y++) + { + for (int x = 0; x < code->width; x++) + { myImage.setPixel(x + 4, y + 4, ((*p & 1) ? 0x0 : 0xffffff)); p++; } @@ -57,22 +60,26 @@ QString QRCodeDialog::getURI() QString ret = QString("bitcoin:%1").arg(address); int paramCount = 0; - if(ui->chkReq->isChecked() && ui->lnReqAmount->text().isEmpty() == false) { - bool ok= false; - double amount = ui->lnReqAmount->text().toDouble(&ok); - if(ok) { - ret += QString("?amount=%1X8").arg(ui->lnReqAmount->text()); + if (ui->chkReq->isChecked() && !ui->lnReqAmount->text().isEmpty()) + { + bool ok = false; + ui->lnReqAmount->text().toDouble(&ok); + if (ok) + { + ret += QString("?amount=%1").arg(ui->lnReqAmount->text()); paramCount++; } } - if(ui->lnLabel->text().isEmpty() == false) { + if (!ui->lnLabel->text().isEmpty()) + { QString lbl(QUrl::toPercentEncoding(ui->lnLabel->text())); ret += QString("%1label=%2").arg(paramCount == 0 ? "?" : "&").arg(lbl); paramCount++; } - if(ui->lnMessage->text().isEmpty() == false) { + if (!ui->lnMessage->text().isEmpty()) + { QString msg(QUrl::toPercentEncoding(ui->lnMessage->text())); ret += QString("%1message=%2").arg(paramCount == 0 ? "?" : "&").arg(msg); paramCount++; @@ -99,9 +106,8 @@ void QRCodeDialog::on_lnMessage_textChanged(const QString &) void QRCodeDialog::on_btnSaveAs_clicked() { QString fn = GUIUtil::getSaveFileName(this, tr("Save Image..."), QString(), tr("PNG Images (*.png)")); - if(!fn.isEmpty()) { + if (!fn.isEmpty()) myImage.scaled(EXPORT_IMAGE_SIZE, EXPORT_IMAGE_SIZE).save(fn); - } } void QRCodeDialog::on_chkReq_toggled(bool) |