5
5
#include < qt/qrimagewidget.h>
6
6
7
7
#include < qt/guiutil.h>
8
+ #include < qt/optionsmodel.h>
8
9
9
10
#include < QApplication>
10
11
#include < QClipboard>
@@ -31,7 +32,7 @@ QRImageWidget::QRImageWidget(QWidget* parent)
31
32
contextMenu->addAction (tr (" &Copy Image" ), this , &QRImageWidget::copyImage);
32
33
}
33
34
34
- bool QRImageWidget::setQR (const QString& data, const QString& text)
35
+ bool QRImageWidget::setQR (const QString& data, const QString& text, const OptionsModel::FontChoice& fontchoice )
35
36
{
36
37
#ifdef USE_QRCODE
37
38
setText (" " );
@@ -72,11 +73,22 @@ bool QRImageWidget::setQR(const QString& data, const QString& text)
72
73
QRect paddedRect = qrAddrImage.rect ();
73
74
paddedRect.setHeight (QR_IMAGE_SIZE + QR_IMAGE_TEXT_MARGIN);
74
75
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
+ }
80
92
81
93
painter.setFont (font);
82
94
painter.drawText (paddedRect, Qt::AlignBottom | Qt::AlignCenter, text);
@@ -92,6 +104,11 @@ bool QRImageWidget::setQR(const QString& data, const QString& text)
92
104
#endif
93
105
}
94
106
107
+ bool QRImageWidget::setQR (const QString& data)
108
+ {
109
+ return setQR (data, " " , OptionsModel::FontChoiceAbstract::EmbeddedFont);
110
+ }
111
+
95
112
QImage QRImageWidget::exportImage ()
96
113
{
97
114
return GUIUtil::GetImage (this );
0 commit comments