20 #include <QFontMetricsF>
26 , m_fontMetrics(m_font)
27 , m_initialFontMetrics(m_fontMetrics)
28 , m_scalingFactor(1.0)
44 m_initialFontMetrics = m_fontMetrics;
50 m_scalingFactor *= factor;
53 if (factor > 0.99 && factor < 1.000)
58 if (m_font.
pixelSize() > 2 && factor > 0.99 && factor < 1.000)
64 qDebug() <<
" applyAdditionalScalingFactor" << factor <<
"combined factor:" << m_scalingFactor <<
"pointSize:" << m_font.
pointSizeF() <<
"pixelSize:" << m_font.
pixelSize();
71 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
72 return fm.
width(text);
86 qDebug() <<
" FontScaler::setFactorForHeight" << wantedHeight;
88 Q_ASSERT(wantedHeight > 0);
89 qreal height = m_fontMetrics.
height();
92 while (height > wantedHeight && height > 3.0 ) {
93 const qreal factor = wantedHeight / height;
95 qreal prevHeight = height;
96 height = m_fontMetrics.
height();
98 qDebug() <<
" FontScaler: height=" << height << factor << m_scalingFactor;
100 if (++iterations > 10 && height == prevHeight) {
114 qDebug() <<
" FontScaler::setFactorForWidth" << wantedFactor;
120 const qreal wantedWidth = initialWidth * wantedFactor;
123 qDebug() <<
" FontScaler: sampleText with initialFontMetrics:" << initialWidth <<
"with current fontMetrics:" << width <<
"wanted:" << wantedWidth;
128 while (width > wantedWidth) {
129 qreal factor = wantedWidth / width;
131 qreal prevWidth = width;
134 qDebug() <<
" FontScaler: width=" << width <<
"factor=" << factor <<
"m_scalingFactor=" << m_scalingFactor;
136 if (++iterations > 10 && width == prevWidth) {