mirror of
https://github.com/dashpay/dash.git
synced 2024-12-29 13:59:06 +01:00
Use flexible font size for QRCode image address
This commit is contained in:
parent
0910cbe4ef
commit
59f9e2aaf3
@ -995,6 +995,18 @@ QString formatBytes(uint64_t bytes)
|
|||||||
return QString(QObject::tr("%1 GB")).arg(bytes / 1024 / 1024 / 1024);
|
return QString(QObject::tr("%1 GB")).arg(bytes / 1024 / 1024 / 1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qreal calculateIdealFontSize(int width, const QString& text, QFont font, qreal minPointSize, qreal font_size) {
|
||||||
|
while(font_size >= minPointSize) {
|
||||||
|
font.setPointSizeF(font_size);
|
||||||
|
QFontMetrics fm(font);
|
||||||
|
if (fm.width(text) < width) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
font_size -= 0.5;
|
||||||
|
}
|
||||||
|
return font_size;
|
||||||
|
}
|
||||||
|
|
||||||
void ClickableLabel::mouseReleaseEvent(QMouseEvent *event)
|
void ClickableLabel::mouseReleaseEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
Q_EMIT clicked(event->pos());
|
Q_EMIT clicked(event->pos());
|
||||||
|
@ -201,6 +201,8 @@ namespace GUIUtil
|
|||||||
|
|
||||||
QString formatBytes(uint64_t bytes);
|
QString formatBytes(uint64_t bytes);
|
||||||
|
|
||||||
|
qreal calculateIdealFontSize(int width, const QString& text, QFont font, qreal minPointSize = 4, qreal startPointSize = 14);
|
||||||
|
|
||||||
class ClickableLabel : public QLabel
|
class ClickableLabel : public QLabel
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -183,9 +183,13 @@ void ReceiveRequestDialog::update()
|
|||||||
QPainter painter(&qrAddrImage);
|
QPainter painter(&qrAddrImage);
|
||||||
painter.drawImage(0, 0, qrImage.scaled(QR_IMAGE_SIZE, QR_IMAGE_SIZE));
|
painter.drawImage(0, 0, qrImage.scaled(QR_IMAGE_SIZE, QR_IMAGE_SIZE));
|
||||||
QFont font = GUIUtil::fixedPitchFont();
|
QFont font = GUIUtil::fixedPitchFont();
|
||||||
font.setPixelSize(12);
|
|
||||||
painter.setFont(font);
|
|
||||||
QRect paddedRect = qrAddrImage.rect();
|
QRect paddedRect = qrAddrImage.rect();
|
||||||
|
|
||||||
|
// calculate ideal font size
|
||||||
|
qreal font_size = GUIUtil::calculateIdealFontSize(paddedRect.width() - 20, info.address, font);
|
||||||
|
font.setPointSizeF(font_size);
|
||||||
|
|
||||||
|
painter.setFont(font);
|
||||||
paddedRect.setHeight(QR_IMAGE_SIZE+12);
|
paddedRect.setHeight(QR_IMAGE_SIZE+12);
|
||||||
painter.drawText(paddedRect, Qt::AlignBottom|Qt::AlignCenter, info.address);
|
painter.drawText(paddedRect, Qt::AlignBottom|Qt::AlignCenter, info.address);
|
||||||
painter.end();
|
painter.end();
|
||||||
|
Loading…
Reference in New Issue
Block a user