55#include < qt/qrimagewidget.h>
66
77#include < qt/guiutil.h>
8+ #include < qt/optionsmodel.h>
89
910#include < QApplication>
1011#include < QClipboard>
@@ -31,7 +32,7 @@ QRImageWidget::QRImageWidget(QWidget* parent)
3132 contextMenu->addAction (tr (" &Copy Image" ), this , &QRImageWidget::copyImage);
3233}
3334
34- bool QRImageWidget::setQR (const QString& data, const QString& text)
35+ bool QRImageWidget::setQR (const QString& data, const QString& text, const OptionsModel::FontChoice& fontchoice )
3536{
3637#ifdef USE_QRCODE
3738 setText (" " );
@@ -72,11 +73,22 @@ bool QRImageWidget::setQR(const QString& data, const QString& text)
7273 QRect paddedRect = qrAddrImage.rect ();
7374 paddedRect.setHeight (QR_IMAGE_SIZE + QR_IMAGE_TEXT_MARGIN);
7475
75- QFont font = GUIUtil::fixedPitchFont ();
76- font.setStretch (QFont::SemiCondensed);
77- font.setLetterSpacing (QFont::AbsoluteSpacing, 1 );
78- const qreal font_size = GUIUtil::calculateIdealFontSize (paddedRect.width () - 2 * QR_IMAGE_TEXT_MARGIN, text, font);
79- font.setPointSizeF (font_size);
76+ QFont font;
77+
78+ // Determine font to use
79+ if (std::holds_alternative<OptionsModel::FontChoiceAbstract>(fontchoice)) {
80+ font = GUIUtil::fixedPitchFont (fontchoice != OptionsModel::UseBestSystemFont);
81+ font.setWeight (QFont::Bold);
82+ font.setStretch (QFont::SemiCondensed);
83+ font.setLetterSpacing (QFont::AbsoluteSpacing, 1 );
84+
85+ const auto qr_image_width = paddedRect.width ();
86+ const int max_text_width = qr_image_width - (2 * QR_IMAGE_TEXT_MARGIN);
87+ const qreal font_size = GUIUtil::calculateIdealFontSize (max_text_width, text, font);
88+ font.setPointSizeF (font_size);
89+ } else {
90+ font = std::get<QFont>(fontchoice);
91+ }
8092
8193 painter.setFont (font);
8294 painter.drawText (paddedRect, Qt::AlignBottom | Qt::AlignCenter, text);
@@ -92,6 +104,11 @@ bool QRImageWidget::setQR(const QString& data, const QString& text)
92104#endif
93105}
94106
107+ bool QRImageWidget::setQR (const QString& data)
108+ {
109+ return setQR (data, " " , OptionsModel::FontChoiceAbstract::EmbeddedFont);
110+ }
111+
95112QImage QRImageWidget::exportImage ()
96113{
97114 return GUIUtil::GetImage (this );
0 commit comments