diff options
-rw-r--r-- | examples/widgets/painting/fontsampler/mainwindow.cpp | 6 | ||||
-rw-r--r-- | src/gui/text/qfontdatabase.cpp | 8 |
2 files changed, 9 insertions, 5 deletions
diff --git a/examples/widgets/painting/fontsampler/mainwindow.cpp b/examples/widgets/painting/fontsampler/mainwindow.cpp index 516ba5e2bc..bb7b7c7c28 100644 --- a/examples/widgets/painting/fontsampler/mainwindow.cpp +++ b/examples/widgets/painting/fontsampler/mainwindow.cpp @@ -143,7 +143,9 @@ void MainWindow::showFont(QTreeWidgetItem *item) QString oldText = textEdit->toPlainText().trimmed(); bool modified = textEdit->document()->isModified(); textEdit->clear(); - textEdit->document()->setDefaultFont(QFont(family, 32, weight, italic)); + QFont font(family, 32, weight, italic); + font.setStyleName(style); + textEdit->document()->setDefaultFont(font); QTextCursor cursor = textEdit->textCursor(); QTextBlockFormat blockFormat; @@ -324,6 +326,7 @@ void MainWindow::printPage(int index, QPainter *painter, QPrinter *printer) // Calculate the maximum width and total height of the text. foreach (int size, sampleSizes) { QFont font(family, size, weight, italic); + font.setStyleName(style); font = QFont(font, painter->device()); QFontMetricsF fontMetrics(font); QRectF rect = fontMetrics.boundingRect( @@ -357,6 +360,7 @@ void MainWindow::printPage(int index, QPainter *painter, QPrinter *printer) // Draw each line of text. foreach (int size, sampleSizes) { QFont font(family, size, weight, italic); + font.setStyleName(style); font = QFont(font, painter->device()); QFontMetricsF fontMetrics(font); QRectF rect = fontMetrics.boundingRect(QString("%1 %2").arg( diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index 86a0bf1066..7aa5af8a98 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -931,7 +931,7 @@ static unsigned int bestFoundry(int script, unsigned int score, int styleStrategy, const QtFontFamily *family, const QString &foundry_name, QtFontStyle::Key styleKey, int pixelSize, char pitch, - QtFontDesc *desc, int force_encoding_id) + QtFontDesc *desc, int force_encoding_id, QString styleName = QString()) { Q_UNUSED(force_encoding_id); Q_UNUSED(script); @@ -953,7 +953,7 @@ unsigned int bestFoundry(int script, unsigned int score, int styleStrategy, FM_DEBUG(" looking for matching style in foundry '%s' %d", foundry->name.isEmpty() ? "-- none --" : foundry->name.toLatin1().constData(), foundry->count); - QtFontStyle *style = bestStyle(foundry, styleKey); + QtFontStyle *style = bestStyle(foundry, styleKey, styleName); if (!style->smoothScalable && (styleStrategy & QFont::ForceOutline)) { FM_DEBUG(" ForceOutline set, but not smoothly scalable"); @@ -1140,13 +1140,13 @@ static int match(int script, const QFontDef &request, unsigned int newscore = bestFoundry(script, score, request.styleStrategy, test.family, foundry_name, styleKey, request.pixelSize, pitch, - &test, force_encoding_id); + &test, force_encoding_id, request.styleName); if (test.foundry == 0) { // the specific foundry was not found, so look for // any foundry matching our requirements newscore = bestFoundry(script, score, request.styleStrategy, test.family, QString(), styleKey, request.pixelSize, - pitch, &test, force_encoding_id); + pitch, &test, force_encoding_id, request.styleName); } if (newscore < score) { |