6 #include "ui_receiverequestdialog.h"
18 #include <QMouseEvent>
20 #if QT_VERSION < 0x050000
24 #if defined(HAVE_CONFIG_H)
25 #include "config/bitcoin-config.h"
33 QLabel(parent), contextMenu(0)
36 QAction *saveImageAction =
new QAction(tr(
"&Save Image..."),
this);
37 connect(saveImageAction, SIGNAL(triggered()),
this, SLOT(
saveImage()));
39 QAction *copyImageAction =
new QAction(tr(
"&Copy Image"),
this);
40 connect(copyImageAction, SIGNAL(triggered()),
this, SLOT(
copyImage()));
48 return pixmap()->toImage();
53 if(event->button() == Qt::LeftButton && pixmap())
56 QMimeData *mimeData =
new QMimeData;
59 QDrag *drag =
new QDrag(
this);
60 drag->setMimeData(mimeData);
63 QLabel::mousePressEvent(event);
100 ui->btnSaveAs->setVisible(
false);
101 ui->lblQRCode->setVisible(
false);
104 connect(
ui->btnSaveAs, SIGNAL(clicked()),
ui->lblQRCode, SLOT(saveImage()));
114 this->
model = _model;
117 connect(_model, SIGNAL(displayUnitChanged(
int)),
this, SLOT(
update()));
136 setWindowTitle(tr(
"Request payment to %1").arg(target));
139 ui->btnSaveAs->setEnabled(
false);
141 html +=
"<html><font face='verdana, arial, helvetica, sans-serif'>";
142 html +=
"<b>"+tr(
"Payment information")+
"</b><br>";
143 html +=
"<b>"+tr(
"URI")+
"</b>: ";
152 ui->outUri->setText(html);
155 ui->lblQRCode->setText(
"");
159 if (uri.length() > MAX_URI_LENGTH)
161 ui->lblQRCode->setText(tr(
"Resulting URI too long, try to reduce the text for label / message."));
163 QRcode *code = QRcode_encodeString(uri.toUtf8().constData(), 0, QR_ECLEVEL_L, QR_MODE_8, 1);
166 ui->lblQRCode->setText(tr(
"Error encoding URI into QR Code."));
169 QImage qrImage = QImage(code->width + 8, code->width + 8, QImage::Format_RGB32);
170 qrImage.fill(0xffffff);
171 unsigned char *p = code->data;
172 for (
int y = 0; y < code->width; y++)
174 for (
int x = 0; x < code->width; x++)
176 qrImage.setPixel(x + 4, y + 4, ((*p & 1) ? 0x0 : 0xffffff));
183 qrAddrImage.fill(0xffffff);
184 QPainter painter(&qrAddrImage);
187 font.setPixelSize(12);
188 painter.setFont(font);
189 QRect paddedRect = qrAddrImage.rect();
191 painter.drawText(paddedRect, Qt::AlignBottom|Qt::AlignCenter,
info.
address);
194 ui->lblQRCode->setPixmap(QPixmap::fromImage(qrAddrImage));
195 ui->btnSaveAs->setEnabled(
true);
static QString formatHtmlWithUnit(int unit, const CAmount &amount, bool plussign=false, SeparatorStyle separators=separatorStandard)
Format as HTML string (with unit)
Interface from Qt to configuration data structure for Bitcoin client.
Ui::ReceiveRequestDialog * ui
void setInfo(const SendCoinsRecipient &info)
void on_btnCopyAddress_clicked()
void on_btnCopyURI_clicked()
void setModel(OptionsModel *model)
ReceiveRequestDialog(QWidget *parent=0)
QString HtmlEscape(const QString &str, bool fMultiLine)
QString getSaveFileName(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedSuffixOut)
Get save filename, mimics QFileDialog::getSaveFileName, except that it appends a default suffix when ...
QString formatBitcoinURI(const SendCoinsRecipient &info)
void setClipboard(const QString &str)