summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/painting/qpainter.cpp2
-rw-r--r--src/gui/text/coretext/qfontengine_coretext.mm2
-rw-r--r--src/gui/text/freetype/qfontengine_ft.cpp6
-rw-r--r--src/gui/text/qcssparser.cpp1
-rw-r--r--src/gui/text/qfont.cpp156
-rw-r--r--src/gui/text/qfont.h1
-rw-r--r--src/gui/text/qfont_p.h4
-rw-r--r--src/gui/text/qfontdatabase.cpp48
-rw-r--r--src/gui/text/qfontengine.cpp21
-rw-r--r--src/gui/text/qfontsubset.cpp2
-rw-r--r--src/gui/text/qrawfont.cpp2
-rw-r--r--src/gui/text/qtextdocument.cpp6
-rw-r--r--src/gui/text/qtextformat.cpp15
-rw-r--r--src/gui/text/qtextformat.h12
-rw-r--r--src/gui/text/qtexthtmlparser.cpp5
-rw-r--r--src/gui/text/qtextmarkdownimporter.cpp10
-rw-r--r--src/gui/text/unix/qfontconfigdatabase.cpp2
-rw-r--r--src/gui/text/windows/qwindowsdirectwritefontdatabase.cpp4
-rw-r--r--src/gui/text/windows/qwindowsfontdatabase.cpp30
-rw-r--r--src/gui/text/windows/qwindowsfontdatabase_ft.cpp4
-rw-r--r--src/gui/text/windows/qwindowsfontdatabasebase.cpp4
-rw-r--r--src/gui/text/windows/qwindowsfontengine.cpp8
-rw-r--r--src/plugins/platforms/cocoa/qcocoamenu.mm2
-rw-r--r--src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp2
-rw-r--r--src/plugins/styles/windowsvista/qwindowsvistastyle.cpp4
-rw-r--r--src/tools/uic/cpp/cppwriteinitialization.cpp4
-rw-r--r--src/widgets/accessible/qaccessiblewidgets.cpp2
-rw-r--r--src/widgets/dialogs/qfontdialog.cpp4
-rw-r--r--src/widgets/widgets/qfontcombobox.cpp12
-rw-r--r--tests/auto/gui/text/qfont/tst_qfont.cpp19
-rw-r--r--tests/auto/gui/text/qfontcache/tst_qfontcache.cpp32
-rw-r--r--tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp4
-rw-r--r--tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp9
-rw-r--r--tests/auto/gui/text/qtextformat/tst_qtextformat.cpp11
-rw-r--r--tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp8
-rw-r--r--tests/auto/widgets/widgets/qfontcombobox/tst_qfontcombobox.cpp6
36 files changed, 255 insertions, 209 deletions
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 6bc440b5b3..853de39e73 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -3876,7 +3876,7 @@ void QPainter::setFont(const QFont &font)
#ifdef QT_DEBUG_DRAW
if (qt_show_painter_debug_output)
- printf("QPainter::setFont(), family=%s, pointSize=%d\n", font.family().toLatin1().constData(), font.pointSize());
+ printf("QPainter::setFont(), family=%s, pointSize=%d\n", font.families().first().toLatin1().constData(), font.pointSize());
#endif
if (!d->engine) {
diff --git a/src/gui/text/coretext/qfontengine_coretext.mm b/src/gui/text/coretext/qfontengine_coretext.mm
index d066d6f5a1..0070e18ade 100644
--- a/src/gui/text/coretext/qfontengine_coretext.mm
+++ b/src/gui/text/coretext/qfontengine_coretext.mm
@@ -224,7 +224,7 @@ void QCoreTextFontEngine::init()
face_id.filename = QString::fromCFString(name).toUtf8();
QCFString family = CTFontCopyFamilyName(ctfont);
- fontDef.family = family;
+ fontDef.families = QStringList(family);
QCFString styleName = (CFStringRef) CTFontCopyAttribute(ctfont, kCTFontStyleNameAttribute);
fontDef.styleName = styleName;
diff --git a/src/gui/text/freetype/qfontengine_ft.cpp b/src/gui/text/freetype/qfontengine_ft.cpp
index 42cf147901..9644149754 100644
--- a/src/gui/text/freetype/qfontengine_ft.cpp
+++ b/src/gui/text/freetype/qfontengine_ft.cpp
@@ -629,7 +629,7 @@ namespace {
void updateFamilyNameAndStyle()
{
- fontDef.family = QString::fromLatin1(freetype->face->family_name);
+ fontDef.families = QStringList(QString::fromLatin1(freetype->face->family_name));
if (freetype->face->style_flags & FT_STYLE_FLAG_ITALIC)
fontDef.style = QFont::StyleItalic;
@@ -734,7 +734,7 @@ bool QFontEngineFT::init(FaceId faceId, bool antialias, GlyphFormat format,
PS_FontInfoRec psrec;
// don't assume that type1 fonts are symbol fonts by default
if (FT_Get_PS_Font_Info(freetype->face, &psrec) == FT_Err_Ok) {
- symbol = bool(fontDef.family.contains(QLatin1String("symbol"), Qt::CaseInsensitive));
+ symbol = bool(fontDef.families.first().contains(QLatin1String("symbol"), Qt::CaseInsensitive));
}
freetype->computeSize(fontDef, &xsize, &ysize, &defaultGlyphSet.outline_drawing, &scalableBitmapScaleFactor);
@@ -1210,7 +1210,7 @@ QFontEngine::Properties QFontEngineFT::properties() const
{
Properties p = freetype->properties();
if (p.postscriptName.isEmpty()) {
- p.postscriptName = QFontEngine::convertToPostscriptFontFamilyName(fontDef.family.toUtf8());
+ p.postscriptName = QFontEngine::convertToPostscriptFontFamilyName(fontDef.families.first().toUtf8());
}
return freetype->properties();
diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp
index 9670568792..05a5ec4420 100644
--- a/src/gui/text/qcssparser.cpp
+++ b/src/gui/text/qcssparser.cpp
@@ -1230,7 +1230,6 @@ static bool setFontFamilyFromValues(const QList<QCss::Value> &values, QFont *fon
families << family;
if (families.isEmpty())
return false;
- font->setFamily(families.at(0));
font->setFamilies(families);
return true;
}
diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp
index 53344418a0..0e680a3c6d 100644
--- a/src/gui/text/qfont.cpp
+++ b/src/gui/text/qfont.cpp
@@ -116,37 +116,14 @@ bool QFontDef::exactMatch(const QFontDef &other) const
if (stretch != 0 && other.stretch != 0 && stretch != other.stretch)
return false;
- // If either families or other.families just has 1 entry and the other has 0 then
- // we will fall back to using the family in that case
- const int sizeDiff = qAbs(families.size() - other.families.size());
- if (sizeDiff > 1)
- return false;
- if (sizeDiff == 1 && (families.size() > 1 || other.families.size() > 1))
- return false;
-
- QStringList origFamilies = families;
- QStringList otherFamilies = other.families;
- if (sizeDiff != 0) {
- if (origFamilies.size() != 1)
- origFamilies << family;
- else
- otherFamilies << other.family;
- }
-
QString this_family, this_foundry, other_family, other_foundry;
- for (int i = 0; i < origFamilies.size(); ++i) {
- QFontDatabasePrivate::parseFontName(origFamilies.at(i), this_foundry, this_family);
- QFontDatabasePrivate::parseFontName(otherFamilies.at(i), other_foundry, other_family);
+ for (int i = 0; i < families.size(); ++i) {
+ QFontDatabasePrivate::parseFontName(families.at(i), this_foundry, this_family);
+ QFontDatabasePrivate::parseFontName(other.families.at(i), other_foundry, other_family);
if (this_family != other_family || this_foundry != other_foundry)
return false;
}
- // Check family only if families is not set
- if (origFamilies.size() == 0) {
- QFontDatabasePrivate::parseFontName(family, this_foundry, this_family);
- QFontDatabasePrivate::parseFontName(other.family, other_foundry, other_family);
- }
-
return (styleHint == other.styleHint
&& styleStrategy == other.styleStrategy
&& weight == other.weight
@@ -225,6 +202,24 @@ static int convertWeights(int weight, bool inverted)
return result;
}
+// Splits the family string on a comma and returns the list based on that
+static QStringList splitIntoFamilies(const QString &family)
+{
+ QStringList familyList;
+ const auto list = QStringView{family}.split(QLatin1Char(','));
+ const int numFamilies = list.size();
+ familyList.reserve(numFamilies);
+ for (int i = 0; i < numFamilies; ++i) {
+ auto str = list.at(i).trimmed();
+ if ((str.startsWith(QLatin1Char('"')) && str.endsWith(QLatin1Char('"')))
+ || (str.startsWith(QLatin1Char('\'')) && str.endsWith(QLatin1Char('\'')))) {
+ str = str.mid(1, str.length() - 2);
+ }
+ familyList << str.toString();
+ }
+ return familyList;
+}
+
/* Converts from legacy Qt font weight (Qt < 6.0) to OpenType font weight (Qt >= 6.0) */
Q_GUI_EXPORT int qt_legacyToOpenTypeWeight(int weight)
{
@@ -326,16 +321,8 @@ void QFontPrivate::resolve(uint mask, const QFontPrivate *other)
if ((mask & QFont::AllPropertiesResolved) == QFont::AllPropertiesResolved) return;
// assign the unset-bits with the set-bits of the other font def
- if (! (mask & QFont::FamilyResolved))
- request.family = other->request.family;
-
- if (!(mask & QFont::FamiliesResolved)) {
+ if (!(mask & QFont::FamiliesResolved))
request.families = other->request.families;
- // Prepend the family explicitly set so it will be given
- // preference in this case
- if (mask & QFont::FamilyResolved)
- request.families.prepend(request.family);
- }
if (! (mask & QFont::StyleNameResolved))
request.styleName = other->request.styleName;
@@ -709,6 +696,7 @@ QFont::QFont()
}
/*!
+ \obsolete
Constructs a font object with the specified \a family, \a
pointSize, \a weight and \a italic settings.
@@ -723,11 +711,15 @@ QFont::QFont()
available a family will be set using the \l{QFont}{font matching}
algorithm.
+ This will split the family string on a comma and call setFamilies() with the
+ resulting list. To preserve a font that uses a comma in its name, use
+ the constructor that takes a QStringList.
+
\sa Weight, setFamily(), setPointSize(), setWeight(), setItalic(),
- setStyleHint(), QGuiApplication::font()
+ setStyleHint(), setFamilies(), QGuiApplication::font()
*/
QFont::QFont(const QString &family, int pointSize, int weight, bool italic)
- : d(new QFontPrivate()), resolve_mask(QFont::FamilyResolved)
+ : d(new QFontPrivate()), resolve_mask(QFont::FamiliesResolved)
{
if (pointSize <= 0) {
pointSize = 12;
@@ -744,7 +736,48 @@ QFont::QFont(const QString &family, int pointSize, int weight, bool italic)
if (italic)
resolve_mask |= QFont::StyleResolved;
- d->request.family = family;
+ d->request.families = splitIntoFamilies(family);
+ d->request.pointSize = qreal(pointSize);
+ d->request.pixelSize = -1;
+ d->request.weight = weight;
+ d->request.style = italic ? QFont::StyleItalic : QFont::StyleNormal;
+}
+
+/*!
+ Constructs a font object with the specified \a families, \a
+ pointSize, \a weight and \a italic settings.
+
+ If \a pointSize is zero or negative, the point size of the font
+ is set to a system-dependent default value. Generally, this is
+ 12 points.
+
+ Each family name entry in \a families may optionally also include
+ a foundry name, e.g. "Helvetica [Cronyx]". If the family is
+ available from more than one foundry and the foundry isn't
+ specified, an arbitrary foundry is chosen. If the family isn't
+ available a family will be set using the \l{QFont}{font matching}
+ algorithm.
+
+ \sa Weight, setPointSize(), setWeight(), setItalic(),
+ setStyleHint(), setFamilies(), QGuiApplication::font()
+ */
+QFont::QFont(const QStringList &families, int pointSize, int weight, bool italic)
+ : d(new QFontPrivate()), resolve_mask(QFont::FamiliesResolved)
+{
+ if (pointSize <= 0)
+ pointSize = 12;
+ else
+ resolve_mask |= QFont::SizeResolved;
+
+ if (weight < 0)
+ weight = Normal;
+ else
+ resolve_mask |= QFont::WeightResolved | QFont::StyleResolved;
+
+ if (italic)
+ resolve_mask |= QFont::StyleResolved;
+
+ d->request.families = families;
d->request.pointSize = qreal(pointSize);
d->request.pixelSize = -1;
d->request.weight = weight;
@@ -785,14 +818,14 @@ QFont &QFont::operator=(const QFont &font)
*/
/*!
- Returns the requested font family name, i.e. the name set in the
- constructor or the last setFont() call.
+ Returns the requested font family name. This will always be the same
+ as the first entry in the families() call.
- \sa setFamily(), substitutes(), substitute()
+ \sa setFamily(), substitutes(), substitute(), setFamilies(), families()
*/
QString QFont::family() const
{
- return d->request.family;
+ return d->request.families.first();
}
/*!
@@ -806,18 +839,22 @@ QString QFont::family() const
available a family will be set using the \l{QFont}{font matching}
algorithm.
- \sa family(), setStyleHint(), QFontInfo
+ This will split the family string on a comma and call setFamilies() with the
+ resulting list. To preserve a font that uses a comma in it's name then use
+ setFamilies() directly. From Qt 6.2 this behavior will no longer happen and
+ \a family will be passed as a single family.
+
+ \sa family(), setStyleHint(), setFamilies(), families(), QFontInfo
*/
void QFont::setFamily(const QString &family)
{
- if ((resolve_mask & QFont::FamilyResolved) && d->request.family == family)
- return;
-
- detach();
-
- d->request.family = family;
-
- resolve_mask |= QFont::FamilyResolved;
+#ifdef QT_DEBUG
+ if (family.contains(QLatin1Char(','))) {
+ qWarning("From Qt 6.2, QFont::setFamily() will no long split the family string on the comma"
+ " and will keep it as a single family");
+ }
+#endif
+ setFamilies(splitIntoFamilies(family));
}
/*!
@@ -1795,7 +1832,6 @@ bool QFont::operator<(const QFont &f) const
if (r1.styleHint != r2.styleHint) return r1.styleHint < r2.styleHint;
if (r1.styleStrategy != r2.styleStrategy) return r1.styleStrategy < r2.styleStrategy;
if (r1.families != r2.families) return r1.families < r2.families;
- if (r1.family != r2.family) return r1.family < r2.family;
if (f.d->capital != d->capital) return f.d->capital < d->capital;
if (f.d->letterSpacingIsAbsolute != d->letterSpacingIsAbsolute) return f.d->letterSpacingIsAbsolute < d->letterSpacingIsAbsolute;
@@ -2282,9 +2318,9 @@ void QFont::setFamilies(const QStringList &families)
QDataStream &operator<<(QDataStream &s, const QFont &font)
{
if (s.version() == 1) {
- s << font.d->request.family.toLatin1();
+ s << font.d->request.families.first().toLatin1();
} else {
- s << font.d->request.family;
+ s << font.d->request.families.first();
if (s.version() >= QDataStream::Qt_5_4)
s << font.d->request.styleName;
}
@@ -2359,9 +2395,11 @@ QDataStream &operator>>(QDataStream &s, QFont &font)
if (s.version() == 1) {
QByteArray fam;
s >> fam;
- font.d->request.family = QString::fromLatin1(fam);
+ font.d->request.families = QStringList(QString::fromLatin1(fam));
} else {
- s >> font.d->request.family;
+ QString fam;
+ s >> fam;
+ font.d->request.families = QStringList(fam);
if (s.version() >= QDataStream::Qt_5_4)
s >> font.d->request.styleName;
}
@@ -2561,7 +2599,7 @@ QString QFontInfo::family() const
{
QFontEngine *engine = d->engineForScript(QChar::Script_Common);
Q_ASSERT(engine != nullptr);
- return engine->fontDef.family;
+ return engine->fontDef.families.first();
}
/*!
@@ -3199,7 +3237,7 @@ QDebug operator<<(QDebug stream, const QFont &font)
const QFont defaultFont(new QFontPrivate);
- for (int property = QFont::FamilyResolved; property < QFont::AllPropertiesResolved; property <<= 1) {
+ for (int property = QFont::SizeResolved; property < QFont::AllPropertiesResolved; property <<= 1) {
const bool resolved = (font.resolve_mask & property) != 0;
if (!resolved && stream.verbosity() == QDebug::MinimumVerbosity)
continue;
@@ -3211,8 +3249,6 @@ QDebug operator<<(QDebug stream, const QFont &font)
QDebugStateSaver saver(debug);
switch (property) {
- case QFont::FamilyResolved:
- debug << font.family(); break;
case QFont::SizeResolved:
if (font.pointSizeF() >= 0)
debug << font.pointSizeF() << "pt";
diff --git a/src/gui/text/qfont.h b/src/gui/text/qfont.h
index 97b62b385e..f9af52f537 100644
--- a/src/gui/text/qfont.h
+++ b/src/gui/text/qfont.h
@@ -168,6 +168,7 @@ public:
QFont();
QFont(const QString &family, int pointSize = -1, int weight = -1, bool italic = false);
+ QFont(const QStringList &families, int pointSize = -1, int weight = -1, bool italic = false);
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
QFont(const QFont &font, QPaintDevice *pd);
#endif
diff --git a/src/gui/text/qfont_p.h b/src/gui/text/qfont_p.h
index abf6d000e7..f285111c4a 100644
--- a/src/gui/text/qfont_p.h
+++ b/src/gui/text/qfont_p.h
@@ -87,7 +87,6 @@ struct QFontDef
{
}
- QString family;
QStringList families;
QString styleName;
@@ -119,7 +118,6 @@ struct QFontDef
&& styleHint == other.styleHint
&& styleStrategy == other.styleStrategy
&& ignorePitch == other.ignorePitch && fixedPitch == other.fixedPitch
- && family == other.family
&& families == other.families
&& styleName == other.styleName
&& hintingPreference == other.hintingPreference
@@ -133,7 +131,6 @@ struct QFontDef
if (stretch != other.stretch) return stretch < other.stretch;
if (styleHint != other.styleHint) return styleHint < other.styleHint;
if (styleStrategy != other.styleStrategy) return styleStrategy < other.styleStrategy;
- if (family != other.family) return family < other.family;
if (families != other.families) return families < other.families;
if (styleName != other.styleName)
return styleName < other.styleName;
@@ -157,7 +154,6 @@ inline size_t qHash(const QFontDef &fd, size_t seed = 0) noexcept
fd.styleStrategy,
fd.ignorePitch,
fd.fixedPitch,
- fd.family,
fd.families,
fd.styleName,
fd.hintingPreference);
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp
index 13cde04ff4..69c4b8c92f 100644
--- a/src/gui/text/qfontdatabase.cpp
+++ b/src/gui/text/qfontdatabase.cpp
@@ -480,9 +480,11 @@ struct QtFontDesc
static void initFontDef(const QtFontDesc &desc, const QFontDef &request, QFontDef *fontDef, bool multi)
{
- fontDef->family = desc.family->name;
+ QString family;
+ family = desc.family->name;
if (! desc.foundry->name.isEmpty() && desc.family->count > 1)
- fontDef->family += QLatin1String(" [") + desc.foundry->name + QLatin1Char(']');
+ family += QLatin1String(" [") + desc.foundry->name + QLatin1Char(']');
+ fontDef->families = QStringList(family);
if (desc.style->smoothScalable
|| QGuiApplicationPrivate::platformIntegration()->fontDatabase()->fontsAlwaysScalable()
@@ -510,19 +512,6 @@ static QStringList familyList(const QFontDef &req)
QStringList family_list;
family_list << req.families;
- if (!req.family.isEmpty()) {
- const auto list = QStringView{req.family}.split(QLatin1Char(','));
- const int numFamilies = list.size();
- family_list.reserve(numFamilies);
- for (int i = 0; i < numFamilies; ++i) {
- auto str = list.at(i).trimmed();
- if ((str.startsWith(QLatin1Char('"')) && str.endsWith(QLatin1Char('"')))
- || (str.startsWith(QLatin1Char('\'')) && str.endsWith(QLatin1Char('\''))))
- str = str.mid(1, str.length() - 2);
- if (!family_list.contains(str))
- family_list << str.toString();
- }
- }
// append the substitute list for each family in family_list
for (int i = 0, size = family_list.size(); i < size; ++i)
family_list += QFont::substitutes(family_list.at(i));
@@ -776,7 +765,7 @@ QFontEngine *loadSingleEngine(int script,
// Also check for OpenType tables when using complex scripts
if (Q_UNLIKELY(!engine->supportsScript(QChar::Script(script)))) {
qWarning(" OpenType support missing for \"%s\", script %d",
- qPrintable(def.family), script);
+ qPrintable(def.families.first()), script);
return nullptr;
}
@@ -801,7 +790,7 @@ QFontEngine *loadSingleEngine(int script,
// Also check for OpenType tables when using complex scripts
if (!engine->supportsScript(QChar::Script(script))) {
qWarning(" OpenType support missing for \"%s\", script %d",
-+ qPrintable(def.family), script);
+ +qPrintable(def.families.first()), script);
if (engine->ref.loadRelaxed() == 0)
delete engine;
return nullptr;
@@ -1107,7 +1096,6 @@ static int match(int script, const QFontDef &request,
if (!matchFamilyName(family_name, test.family))
continue;
-
test.family->ensurePopulated();
// Check if family is supported in the script we want
@@ -1686,7 +1674,7 @@ QFont QFontDatabase::font(const QString &family, const QString &style,
{
QString familyName, foundryName;
parseFontName(family, foundryName, familyName);
-
+ qDebug() << family << style << familyName << foundryName;
QMutexLocker locker(fontDatabaseMutex());
QFontDatabasePrivate *d = QFontDatabasePrivate::ensureFontDatabase();
@@ -1710,7 +1698,7 @@ QFont QFontDatabase::font(const QString &family, const QString &style,
if (!s) // no styles found?
return QGuiApplication::font();
- QFont fnt(family, pointSize, s->key.weight);
+ QFont fnt(QStringList{family}, pointSize, s->key.weight);
fnt.setStyle((QFont::Style)s->key.style);
if (!s->styleName.isEmpty())
fnt.setStyleName(s->styleName);
@@ -2366,7 +2354,7 @@ QFontEngine *QFontDatabasePrivate::findFont(const QFontDef &request, int script)
#if defined(QT_BUILD_INTERNAL)
// For testing purpose only, emulates an exact-matching monospace font
- if (qt_enable_test_font && request.family == QLatin1String("__Qt__Box__Engine__")) {
+ if (qt_enable_test_font && request.families.first() == QLatin1String("__Qt__Box__Engine__")) {
engine = new QTestFontEngine(request.pixelSize);
engine->fontDef = request;
return engine;
@@ -2387,7 +2375,7 @@ QFontEngine *QFontDatabasePrivate::findFont(const QFontDef &request, int script)
}
QString family_name, foundry_name;
- const QString requestFamily = request.families.size() > 0 ? request.families.at(0) : request.family;
+ const QString requestFamily = request.families.at(0);
parseFontName(requestFamily, foundry_name, family_name);
QtFontDesc desc;
QList<int> blackListed;
@@ -2398,10 +2386,9 @@ QFontEngine *QFontDatabasePrivate::findFont(const QFontDef &request, int script)
}
if (index >= 0) {
QFontDef fontDef = request;
-
// Don't pass empty family names to the platform font database, since it will then invoke its own matching
// and we will be out of sync with the matched font.
- if (fontDef.families.isEmpty() && fontDef.family.isEmpty())
+ if (fontDef.families.isEmpty())
fontDef.families = QStringList(desc.family->name);
engine = loadEngine(script, fontDef, desc.family, desc.foundry, desc.style, desc.size);
@@ -2430,18 +2417,17 @@ QFontEngine *QFontDatabasePrivate::findFont(const QFontDef &request, int script)
for (int i = 0; !engine && i < fallbacks.size(); i++) {
QFontDef def = request;
- def.families.clear();
- def.family = fallbacks.at(i);
+ def.families = QStringList(fallbacks.at(i));
QFontCache::Key key(def, script, multi ? 1 : 0);
engine = fontCache->findEngine(key);
if (!engine) {
QtFontDesc desc;
do {
- index = match(multi ? QChar::Script_Common : script, def, def.family, QLatin1String(""), &desc, blackListed);
+ index = match(multi ? QChar::Script_Common : script, def, def.families.first(), QLatin1String(""), &desc, blackListed);
if (index >= 0) {
QFontDef loadDef = def;
- if (loadDef.families.isEmpty() && loadDef.family.isEmpty())
- loadDef.family = desc.family->name;
+ if (loadDef.families.isEmpty())
+ loadDef.families = QStringList(desc.family->name);
engine = loadEngine(script, loadDef, desc.family, desc.foundry, desc.style, desc.size);
if (engine)
initFontDef(desc, loadDef, &engine->fontDef, multi);
@@ -2481,8 +2467,6 @@ void QFontDatabasePrivate::load(const QFontPrivate *d, int script)
// look for the requested font in the engine data cache
// note: fallBackFamilies are not respected in the EngineData cache key;
// join them with the primary selection family to avoid cache misses
- if (!d->request.family.isEmpty())
- req.family = fallBackFamilies.join(QLatin1Char(','));
if (!d->request.families.isEmpty())
req.families = fallBackFamilies;
@@ -2515,7 +2499,7 @@ void QFontDatabasePrivate::load(const QFontPrivate *d, int script)
family_list << req.families.at(0);
// add the default family
- QString defaultFamily = QGuiApplication::font().family();
+ QString defaultFamily = QGuiApplication::font().families().first();
if (! family_list.contains(defaultFamily))
family_list << defaultFamily;
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index 470a04638e..d526dcc7ac 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -589,7 +589,8 @@ qreal QFontEngine::minRightBearing() const
}
if (m_minLeftBearing == kBearingNotInitialized || m_minRightBearing == kBearingNotInitialized)
- qWarning() << "Failed to compute left/right minimum bearings for" << fontDef.family;
+ qWarning() << "Failed to compute left/right minimum bearings for"
+ << fontDef.families.first();
}
return m_minRightBearing;
@@ -915,12 +916,9 @@ void QFontEngine::removeGlyphFromCache(glyph_t)
QFontEngine::Properties QFontEngine::properties() const
{
Properties p;
- p.postscriptName
- = QFontEngine::convertToPostscriptFontFamilyName(fontDef.family.toUtf8())
- + '-'
- + QByteArray::number(fontDef.style)
- + '-'
- + QByteArray::number(fontDef.weight);
+ p.postscriptName =
+ QFontEngine::convertToPostscriptFontFamilyName(fontDef.families.first().toUtf8()) + '-'
+ + QByteArray::number(fontDef.style) + '-' + QByteArray::number(fontDef.weight);
p.ascent = ascent();
p.descent = descent();
p.leading = leading();
@@ -1730,7 +1728,9 @@ void QFontEngineMulti::ensureFallbackFamiliesQueried()
if (styleHint == QFont::AnyStyle && fontDef.fixedPitch)
styleHint = QFont::TypeWriter;
- setFallbackFamiliesList(qt_fallbacksForFamily(fontDef.family, QFont::Style(fontDef.style), styleHint, QChar::Script(m_script)));
+ setFallbackFamiliesList(qt_fallbacksForFamily(fontDef.families.first(),
+ QFont::Style(fontDef.style), styleHint,
+ QChar::Script(m_script)));
}
void QFontEngineMulti::setFallbackFamiliesList(const QStringList &fallbackFamilies)
@@ -1744,7 +1744,7 @@ void QFontEngineMulti::setFallbackFamiliesList(const QStringList &fallbackFamili
QFontEngine *engine = m_engines.at(0);
engine->ref.ref();
m_engines[1] = engine;
- m_fallbackFamilies << fontDef.family;
+ m_fallbackFamilies << fontDef.families.first();
} else {
m_engines.resize(m_fallbackFamilies.size() + 1);
}
@@ -1771,8 +1771,7 @@ QFontEngine *QFontEngineMulti::loadEngine(int at)
{
QFontDef request(fontDef);
request.styleStrategy |= QFont::NoFontMerging;
- request.family = fallbackFamilyAt(at - 1);
- request.families = QStringList(request.family);
+ request.families = QStringList(fallbackFamilyAt(at - 1));
// At this point, the main script of the text has already been considered
// when fetching the list of fallback families from the database, and the
diff --git a/src/gui/text/qfontsubset.cpp b/src/gui/text/qfontsubset.cpp
index f0b64e114b..0c60bf7b70 100644
--- a/src/gui/text/qfontsubset.cpp
+++ b/src/gui/text/qfontsubset.cpp
@@ -1255,7 +1255,7 @@ QByteArray QFontSubset::toTruetype() const
name.copyright = QLatin1String("Fake font");
else
name.copyright = QLatin1String(properties.copyright);
- name.family = fontEngine->fontDef.family;
+ name.family = fontEngine->fontDef.families.first();
name.subfamily = QLatin1String("Regular"); // ######
name.postscript_name = QLatin1String(properties.postscriptName);
name_table = generateName(name);
diff --git a/src/gui/text/qrawfont.cpp b/src/gui/text/qrawfont.cpp
index 33c0825c6a..918cec6fa2 100644
--- a/src/gui/text/qrawfont.cpp
+++ b/src/gui/text/qrawfont.cpp
@@ -476,7 +476,7 @@ qreal QRawFont::underlinePosition() const
*/
QString QRawFont::familyName() const
{
- return d->isValid() ? d->fontEngine->fontDef.family : QString();
+ return d->isValid() ? d->fontEngine->fontDef.families.first() : QString();
}
/*!
diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp
index c9a8153314..0fae775bae 100644
--- a/src/gui/text/qtextdocument.cpp
+++ b/src/gui/text/qtextdocument.cpp
@@ -2263,11 +2263,7 @@ QTextHtmlExporter::QTextHtmlExporter(const QTextDocument *_doc)
static QStringList resolvedFontFamilies(const QTextCharFormat &format)
{
- QStringList fontFamilies = format.fontFamilies().toStringList();
- const QString mainFontFamily = format.fontFamily();
- if (!mainFontFamily.isEmpty() && !fontFamilies.contains(mainFontFamily))
- fontFamilies.append(mainFontFamily);
- return fontFamilies;
+ return format.fontFamilies().toStringList();
}
/*!
diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp
index e113fad8fa..1da04b871a 100644
--- a/src/gui/text/qtextformat.cpp
+++ b/src/gui/text/qtextformat.cpp
@@ -356,9 +356,6 @@ void QTextFormatPrivate::recalcFont() const
for (int i = 0; i < props.count(); ++i) {
switch (props.at(i).key) {
- case QTextFormat::FontFamily:
- f.setFamily(props.at(i).value.toString());
- break;
case QTextFormat::FontFamilies:
f.setFamilies(props.at(i).value.toStringList());
break;
@@ -461,6 +458,12 @@ Q_GUI_EXPORT QDataStream &operator<<(QDataStream &stream, const QTextFormat &fmt
properties[QTextFormat::OldTextUnderlineColor] = it.value();
properties.erase(it);
}
+
+ it = properties.find(QTextFormat::FontFamilies);
+ if (it != properties.end()) {
+ properties[QTextFormat::FontFamily] = QVariant(it.value().toStringList().first());
+ properties.erase(it);
+ }
}
stream << fmt.format_type << properties;
@@ -486,6 +489,8 @@ Q_GUI_EXPORT QDataStream &operator>>(QDataStream &stream, QTextFormat &fmt)
key = QTextFormat::FontStretch;
else if (key == QTextFormat::OldTextUnderlineColor)
key = QTextFormat::TextUnderlineColor;
+ else if (key == QTextFormat::FontFamily)
+ key = QTextFormat::FontFamilies;
fmt.d->insertProperty(key, it.value());
}
@@ -605,7 +610,7 @@ Q_GUI_EXPORT QDataStream &operator>>(QDataStream &stream, QTextFormat &fmt)
Character properties
- \value FontFamily
+ \value FontFamily e{This property has been deprecated.} Use QTextFormat::FontFamilies instead.
\value FontFamilies
\value FontStyleName
\value FontPointSize
@@ -2041,8 +2046,6 @@ void QTextCharFormat::setFont(const QFont &font, FontPropertiesInheritanceBehavi
const uint mask = behavior == FontPropertiesAll ? uint(QFont::AllPropertiesResolved)
: font.resolveMask();
- if (mask & QFont::FamilyResolved)
- setFontFamily(font.family());
if (mask & QFont::FamiliesResolved)
setFontFamilies(font.families());
if (mask & QFont::StyleNameResolved)
diff --git a/src/gui/text/qtextformat.h b/src/gui/text/qtextformat.h
index 87de1e7fbd..9cdd34be2c 100644
--- a/src/gui/text/qtextformat.h
+++ b/src/gui/text/qtextformat.h
@@ -192,7 +192,9 @@ public:
FontStyleName = 0x1FE8,
FontLetterSpacingType = 0x1FE9,
FontStretch = 0x1FEA,
+#if QT_DEPRECATED_SINCE(6, 0)
FontFamily = 0x2000,
+#endif
FontPointSize = 0x2001,
FontSizeAdjustment = 0x2002,
FontSizeIncrement = FontSizeAdjustment, // old name, compat
@@ -454,10 +456,12 @@ public:
void setFont(const QFont &font, FontPropertiesInheritanceBehavior behavior = FontPropertiesAll);
QFont font() const;
- inline void setFontFamily(const QString &family)
- { setProperty(FontFamily, family); }
- inline QString fontFamily() const
- { return stringProperty(FontFamily); }
+#if QT_DEPRECATED_SINCE(6, 0)
+ QT_DEPRECATED_VERSION_X_6_0("Use setFontFamilies instead") inline void setFontFamily(const QString &family)
+ { setProperty(FontFamilies, QVariant(QStringList(family))); }
+ QT_DEPRECATED_VERSION_X_6_0("Use fontFamilies instead") inline QString fontFamily() const
+ { return property(FontFamilies).toStringList().first(); }
+#endif
inline void setFontFamilies(const QStringList &families)
{ setProperty(FontFamilies, QVariant(families)); }
diff --git a/src/gui/text/qtexthtmlparser.cpp b/src/gui/text/qtexthtmlparser.cpp
index 996980b764..ed1c6d97f6 100644
--- a/src/gui/text/qtexthtmlparser.cpp
+++ b/src/gui/text/qtexthtmlparser.cpp
@@ -1585,9 +1585,8 @@ void QTextHtmlParser::applyAttributes(const QStringList &attributes)
for (const QString &family : values)
families << family.trimmed();
node->charFormat.setFontFamilies(families);
- node->charFormat.setFontFamily(families.at(0));
} else {
- node->charFormat.setFontFamily(value);
+ node->charFormat.setFontFamilies(QStringList(value));
}
} else if (key == QLatin1String("color")) {
QColor c; c.setNamedColor(value);
@@ -2064,7 +2063,7 @@ QList<QCss::Declaration> standardDeclarationForNode(const QTextHtmlParserNode &n
decl.d->propertyId = QCss::FontFamily;
QList<QCss::Value> values;
val.type = QCss::Value::String;
- val.variant = QFontDatabase::systemFont(QFontDatabase::FixedFont).family();
+ val.variant = QFontDatabase::systemFont(QFontDatabase::FixedFont).families().first();
values << val;
decl.d->values = values;
decl.d->inheritable = true;
diff --git a/src/gui/text/qtextmarkdownimporter.cpp b/src/gui/text/qtextmarkdownimporter.cpp
index 77ca588f00..1e18f31c30 100644
--- a/src/gui/text/qtextmarkdownimporter.cpp
+++ b/src/gui/text/qtextmarkdownimporter.cpp
@@ -428,8 +428,9 @@ int QTextMarkdownImporter::cbEnterSpan(int spanType, void *det)
break;
}
m_spanFormatStack.push(charFmt);
- qCDebug(lcMD) << spanType << "setCharFormat" << charFmt.font().family() << charFmt.fontWeight()
- << (charFmt.fontItalic() ? "italic" : "") << charFmt.foreground().color().name();
+ qCDebug(lcMD) << spanType << "setCharFormat" << charFmt.font().families().first()
+ << charFmt.fontWeight() << (charFmt.fontItalic() ? "italic" : "")
+ << charFmt.foreground().color().name();
m_cursor->setCharFormat(charFmt);
return 0; // no error
}
@@ -444,8 +445,9 @@ int QTextMarkdownImporter::cbLeaveSpan(int spanType, void *detail)
charFmt = m_spanFormatStack.top();
}
m_cursor->setCharFormat(charFmt);
- qCDebug(lcMD) << spanType << "setCharFormat" << charFmt.font().family() << charFmt.fontWeight()
- << (charFmt.fontItalic() ? "italic" : "") << charFmt.foreground().color().name();
+ qCDebug(lcMD) << spanType << "setCharFormat" << charFmt.font().families().first()
+ << charFmt.fontWeight() << (charFmt.fontItalic() ? "italic" : "")
+ << charFmt.foreground().color().name();
if (spanType == int(MD_SPAN_IMG))
m_imageSpan = false;
return 0; // no error
diff --git a/src/gui/text/unix/qfontconfigdatabase.cpp b/src/gui/text/unix/qfontconfigdatabase.cpp
index a8e28618f4..dff11eb172 100644
--- a/src/gui/text/unix/qfontconfigdatabase.cpp
+++ b/src/gui/text/unix/qfontconfigdatabase.cpp
@@ -973,7 +973,7 @@ void QFontconfigDatabase::setupFontEngine(QFontEngineFT *engine, const QFontDef
FcValue value;
value.type = FcTypeString;
- QByteArray cs = fontDef.family.toUtf8();
+ QByteArray cs = fontDef.families.first().toUtf8();
value.u.s = (const FcChar8 *)cs.data();
FcPatternAdd(pattern,FC_FAMILY,value,true);
diff --git a/src/gui/text/windows/qwindowsdirectwritefontdatabase.cpp b/src/gui/text/windows/qwindowsdirectwritefontdatabase.cpp
index c0d9e820c6..7a4ce0930a 100644
--- a/src/gui/text/windows/qwindowsdirectwritefontdatabase.cpp
+++ b/src/gui/text/windows/qwindowsdirectwritefontdatabase.cpp
@@ -414,8 +414,8 @@ void QWindowsDirectWriteFontDatabase::populateFontDatabase()
bool hasDefaultLocale = GetUserDefaultLocaleName(defaultLocale, LOCALE_NAME_MAX_LENGTH) != 0;
wchar_t englishLocale[] = L"en-us";
- QString defaultFontName = defaultFont().family();
- QString systemDefaultFontName = systemDefaultFont().family();
+ const QString defaultFontName = defaultFont().families().first();
+ const QString systemDefaultFontName = systemDefaultFont().families().first();
IDWriteFontCollection *fontCollection;
if (SUCCEEDED(data()->directWriteFactory->GetSystemFontCollection(&fontCollection))) {
diff --git a/src/gui/text/windows/qwindowsfontdatabase.cpp b/src/gui/text/windows/qwindowsfontdatabase.cpp
index 79ea08f9b6..381bcea0b3 100644
--- a/src/gui/text/windows/qwindowsfontdatabase.cpp
+++ b/src/gui/text/windows/qwindowsfontdatabase.cpp
@@ -162,7 +162,7 @@ QDebug operator<<(QDebug d, const QFontDef &def)
QDebugStateSaver saver(d);
d.nospace();
d.noquote();
- d << "QFontDef(Family=\"" << def.family << '"';
+ d << "QFontDef(Family=\"" << def.families.first() << '"';
if (!def.styleName.isEmpty())
d << ", stylename=" << def.styleName;
d << ", pointsize=" << def.pointSize << ", pixelsize=" << def.pixelSize
@@ -628,6 +628,8 @@ static int QT_WIN_CALLBACK storeFont(const LOGFONT *logFont, const TEXTMETRIC *t
{
const ENUMLOGFONTEX *f = reinterpret_cast<const ENUMLOGFONTEX *>(logFont);
const QString familyName = QString::fromWCharArray(f->elfLogFont.lfFaceName);
+ if (familyName == QLatin1String("Lucida Calligraphy"))
+ qDebug("BP");
const QString styleName = QString::fromWCharArray(f->elfStyle);
// NEWTEXTMETRICEX (passed for TT fonts) is a NEWTEXTMETRIC, which according
@@ -730,7 +732,7 @@ void QWindowsFontDatabase::populateFontDatabase()
EnumFontFamiliesEx(dummy, &lf, populateFontFamilies, 0, 0);
ReleaseDC(0, dummy);
// Work around EnumFontFamiliesEx() not listing the system font.
- QString systemDefaultFamily = QWindowsFontDatabase::systemDefaultFont().family();
+ const QString systemDefaultFamily = QWindowsFontDatabase::systemDefaultFont().families().first();
if (QPlatformFontDatabase::resolveFontFamilyAlias(systemDefaultFamily) == systemDefaultFamily)
QPlatformFontDatabase::registerFontFamily(systemDefaultFamily);
addDefaultEUDCFont();
@@ -807,7 +809,7 @@ QT_WARNING_POP
qWarning("%s: AddFontMemResourceEx failed", __FUNCTION__);
} else {
QFontDef request;
- request.family = uniqueFamilyName;
+ request.families = QStringList(uniqueFamilyName);
request.pixelSize = pixelSize;
request.styleStrategy = QFont::PreferMatch;
request.hintingPreference = hintingPreference;
@@ -818,9 +820,9 @@ QT_WARNING_POP
data());
if (fontEngine) {
- if (request.family != fontEngine->fontDef.family) {
- qWarning("%s: Failed to load font. Got fallback instead: %s",
- __FUNCTION__, qPrintable(fontEngine->fontDef.family));
+ if (request.families != fontEngine->fontDef.families) {
+ qWarning("%s: Failed to load font. Got fallback instead: %s", __FUNCTION__,
+ qPrintable(fontEngine->fontDef.families.first()));
if (fontEngine->ref.loadRelaxed() == 0)
delete fontEngine;
fontEngine = 0;
@@ -831,12 +833,12 @@ QT_WARNING_POP
switch (fontEngine->type()) {
case QFontEngine::Win:
static_cast<QWindowsFontEngine *>(fontEngine)->setUniqueFamilyName(uniqueFamilyName);
- fontEngine->fontDef.family = actualFontName;
+ fontEngine->fontDef.families = QStringList(actualFontName);
break;
#if QT_CONFIG(directwrite) && QT_CONFIG(direct2d)
case QFontEngine::DirectWrite:
static_cast<QWindowsFontEngineDirectWrite *>(fontEngine)->setUniqueFamilyName(uniqueFamilyName);
- fontEngine->fontDef.family = actualFontName;
+ fontEngine->fontDef.families = QStringList(actualFontName);
break;
#endif // directwrite && direct2d
@@ -1197,9 +1199,11 @@ QFontEngine *QWindowsFontDatabase::createEngine(const QFontDef &request, const Q
}
#endif // direct2d
useDw = useDw || useDirectWrite(hintingPreference, fam, isColorFont);
- qCDebug(lcQpaFonts) << __FUNCTION__ << request.family << request.pointSize
- << "pt" << "hintingPreference=" << hintingPreference << "color=" << isColorFont
- << dpi << "dpi" << "useDirectWrite=" << useDw;
+ qCDebug(lcQpaFonts)
+ << __FUNCTION__ << request.families.first() << request.pointSize << "pt"
+ << "hintingPreference=" << hintingPreference << "color=" << isColorFont
+ << dpi << "dpi"
+ << "useDirectWrite=" << useDw;
if (useDw) {
QWindowsFontEngineDirectWrite *fedw = new QWindowsFontEngineDirectWrite(directWriteFontFace,
request.pixelSize,
@@ -1209,7 +1213,7 @@ QFontEngine *QWindowsFontDatabase::createEngine(const QFontDef &request, const Q
GetTextFace(data->hdc, 64, n);
QFontDef fontDef = request;
- fontDef.family = QString::fromWCharArray(n);
+ fontDef.families = QStringList(QString::fromWCharArray(n));
if (isColorFont)
fedw->glyphFormat = QFontEngine::Format_ARGB;
@@ -1230,7 +1234,7 @@ QFontEngine *QWindowsFontDatabase::createEngine(const QFontDef &request, const Q
#endif // directwrite direct2d
if (!fe) {
- QWindowsFontEngine *few = new QWindowsFontEngine(request.family, lf, data);
+ QWindowsFontEngine *few = new QWindowsFontEngine(request.families.first(), lf, data);
if (preferClearTypeAA)
few->glyphFormat = QFontEngine::Format_A32;
few->initFontInfo(request, dpi);
diff --git a/src/gui/text/windows/qwindowsfontdatabase_ft.cpp b/src/gui/text/windows/qwindowsfontdatabase_ft.cpp
index d047532c3c..e2c8d3455d 100644
--- a/src/gui/text/windows/qwindowsfontdatabase_ft.cpp
+++ b/src/gui/text/windows/qwindowsfontdatabase_ft.cpp
@@ -398,7 +398,7 @@ void QWindowsFontDatabaseFT::populateFontDatabase()
EnumFontFamiliesEx(dummy, &lf, populateFontFamilies, 0, 0);
ReleaseDC(0, dummy);
// Work around EnumFontFamiliesEx() not listing the system font
- QString systemDefaultFamily = QWindowsFontDatabase::systemDefaultFont().family();
+ const QString systemDefaultFamily = QWindowsFontDatabase::systemDefaultFont().families().first();
if (QPlatformFontDatabase::resolveFontFamilyAlias(systemDefaultFamily) == systemDefaultFamily)
QPlatformFontDatabase::registerFontFamily(systemDefaultFamily);
}
@@ -406,7 +406,7 @@ void QWindowsFontDatabaseFT::populateFontDatabase()
QFontEngine * QWindowsFontDatabaseFT::fontEngine(const QFontDef &fontDef, void *handle)
{
QFontEngine *fe = QFreeTypeFontDatabase::fontEngine(fontDef, handle);
- qCDebug(lcQpaFonts) << __FUNCTION__ << "FONTDEF" << fontDef.family << fe << handle;
+ qCDebug(lcQpaFonts) << __FUNCTION__ << "FONTDEF" << fontDef.families.first() << fe << handle;
return fe;
}
diff --git a/src/gui/text/windows/qwindowsfontdatabasebase.cpp b/src/gui/text/windows/qwindowsfontdatabasebase.cpp
index b84fe20c93..279f696bbd 100644
--- a/src/gui/text/windows/qwindowsfontdatabasebase.cpp
+++ b/src/gui/text/windows/qwindowsfontdatabasebase.cpp
@@ -707,7 +707,7 @@ LOGFONT QWindowsFontDatabaseBase::fontDefToLOGFONT(const QFontDef &request, cons
QString fam = faceName;
if (fam.isEmpty())
- fam = request.families.size() > 0 ? request.families.at(0) : request.family;
+ fam = request.families.first();
if (Q_UNLIKELY(fam.size() >= LF_FACESIZE)) {
qCritical("%s: Family name '%s' is too long.", __FUNCTION__, qPrintable(fam));
fam.truncate(LF_FACESIZE - 1);
@@ -833,7 +833,7 @@ QFontEngine *QWindowsFontDatabaseBase::fontEngine(const QByteArray &fontData, qr
// Get font family from font data
EmbeddedFont font(fontData);
font.updateFromOS2Table(fontEngine);
- fontEngine->fontDef.family = font.familyName();
+ fontEngine->fontDef.families = QStringList(font.familyName());
fontEngine->fontDef.hintingPreference = hintingPreference;
directWriteFontFace->Release();
diff --git a/src/gui/text/windows/qwindowsfontengine.cpp b/src/gui/text/windows/qwindowsfontengine.cpp
index a8dba8b1f2..3335fcdc99 100644
--- a/src/gui/text/windows/qwindowsfontengine.cpp
+++ b/src/gui/text/windows/qwindowsfontengine.cpp
@@ -1145,9 +1145,9 @@ QImage QWindowsFontEngine::alphaRGBMapForGlyph(glyph_t glyph, QFixed, const QTra
QFontEngine *QWindowsFontEngine::cloneWithSize(qreal pixelSize) const
{
QFontDef request = fontDef;
- QString actualFontName = request.family;
+ QString actualFontName = request.families.first();
if (!uniqueFamilyName.isEmpty())
- request.family = uniqueFamilyName;
+ request.families = QStringList(uniqueFamilyName);
request.pixelSize = pixelSize;
const QString faceName = QString::fromWCharArray(m_logfont.lfFaceName);
@@ -1156,7 +1156,7 @@ QFontEngine *QWindowsFontEngine::cloneWithSize(qreal pixelSize) const
QWindowsFontDatabase::defaultVerticalDPI(),
m_fontEngineData);
if (fontEngine) {
- fontEngine->fontDef.family = actualFontName;
+ fontEngine->fontDef.families = QStringList(actualFontName);
if (!uniqueFamilyName.isEmpty()) {
static_cast<QWindowsFontEngine *>(fontEngine)->setUniqueFamilyName(uniqueFamilyName);
if (QPlatformIntegration *pi = QGuiApplicationPrivate::platformIntegration()) {
@@ -1181,7 +1181,7 @@ void QWindowsFontEngine::initFontInfo(const QFontDef &request,
SelectObject(dc, hfont);
wchar_t n[64];
GetTextFace(dc, 64, n);
- fontDef.family = QString::fromWCharArray(n);
+ fontDef.families = QStringList(QString::fromWCharArray(n));
fontDef.fixedPitch = !(tm.tmPitchAndFamily & TMPF_FIXED_PITCH);
if (fontDef.pointSize < 0) {
fontDef.pointSize = fontDef.pixelSize * 72. / dpi;
diff --git a/src/plugins/platforms/cocoa/qcocoamenu.mm b/src/plugins/platforms/cocoa/qcocoamenu.mm
index 4c7064a845..648f900aa5 100644
--- a/src/plugins/platforms/cocoa/qcocoamenu.mm
+++ b/src/plugins/platforms/cocoa/qcocoamenu.mm
@@ -94,7 +94,7 @@ void QCocoaMenu::setMinimumWidth(int width)
void QCocoaMenu::setFont(const QFont &font)
{
if (font.resolveMask()) {
- NSFont *customMenuFont = [NSFont fontWithName:font.family().toNSString()
+ NSFont *customMenuFont = [NSFont fontWithName:font.families().first().toNSString()
size:font.pointSize()];
m_nativeMenu.font = customMenuFont;
}
diff --git a/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp b/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp
index 258c4305ff..16d5eb3ab4 100644
--- a/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp
+++ b/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp
@@ -573,7 +573,7 @@ static QFont qt_fontFromString(const QString &name)
QString family = QString::fromUtf8(pango_font_description_get_family(desc));
if (!family.isEmpty())
- font.setFamily(family);
+ font.setFamilies(QStringList{family});
font.setWeight(QFont::Weight(pango_font_description_get_weight(desc)));
diff --git a/src/plugins/styles/windowsvista/qwindowsvistastyle.cpp b/src/plugins/styles/windowsvista/qwindowsvistastyle.cpp
index af1c17fa9b..f7496b62ca 100644
--- a/src/plugins/styles/windowsvista/qwindowsvistastyle.cpp
+++ b/src/plugins/styles/windowsvista/qwindowsvistastyle.cpp
@@ -2301,7 +2301,7 @@ void QWindowsVistaStyle::polish(QWidget *widget)
#if QT_CONFIG(commandlinkbutton)
else if (qobject_cast<QCommandLinkButton*>(widget)) {
QFont buttonFont = widget->font();
- buttonFont.setFamily(QLatin1String("Segoe UI"));
+ buttonFont.setFamilies(QStringList{QLatin1String("Segoe UI")});
widget->setFont(buttonFont);
}
#endif // QT_CONFIG(commandlinkbutton)
@@ -2386,7 +2386,7 @@ void QWindowsVistaStyle::unpolish(QWidget *widget)
else if (qobject_cast<QCommandLinkButton*>(widget)) {
QFont font = QApplication::font("QCommandLinkButton");
QFont widgetFont = widget->font();
- widgetFont.setFamily(font.family()); //Only family set by polish
+ widgetFont.setFamilies(font.families()); //Only family set by polish
widget->setFont(widgetFont);
}
#endif // QT_CONFIG(commandlinkbutton)
diff --git a/src/tools/uic/cpp/cppwriteinitialization.cpp b/src/tools/uic/cpp/cppwriteinitialization.cpp
index 8ba6e12903..328fb22c2e 100644
--- a/src/tools/uic/cpp/cppwriteinitialization.cpp
+++ b/src/tools/uic/cpp/cppwriteinitialization.cpp
@@ -1602,8 +1602,8 @@ QString WriteInitialization::writeFontProperties(const DomFont *f)
m_output << m_indent << language::stackVariable("QFont", fontName)
<< language::eol;
if (f->hasElementFamily() && !f->elementFamily().isEmpty()) {
- m_output << m_indent << fontName << ".setFamily("
- << language::qstring(f->elementFamily(), m_dindent) << ")" << language::eol;
+ m_output << m_indent << fontName << ".setFamilies(QStringList{"
+ << language::qstring(f->elementFamily(), m_dindent) << "})" << language::eol;
}
if (f->hasElementPointSize() && f->elementPointSize() > 0) {
m_output << m_indent << fontName << ".setPointSize(" << f->elementPointSize()
diff --git a/src/widgets/accessible/qaccessiblewidgets.cpp b/src/widgets/accessible/qaccessiblewidgets.cpp
index aaf5a5bb10..033c213d41 100644
--- a/src/widgets/accessible/qaccessiblewidgets.cpp
+++ b/src/widgets/accessible/qaccessiblewidgets.cpp
@@ -850,7 +850,7 @@ QString QAccessibleTextWidget::attributes(int offset, int *startOffset, int *end
const QFont charFormatFont = charFormat.font();
AttributeFormatter attrs;
- QString family = charFormatFont.family();
+ QString family = charFormatFont.families().first();
if (!family.isEmpty()) {
family = family.replace(u'\\', QLatin1String("\\\\"));
family = family.replace(u':', QLatin1String("\\:"));
diff --git a/src/widgets/dialogs/qfontdialog.cpp b/src/widgets/dialogs/qfontdialog.cpp
index 34308573f3..6e7253b789 100644
--- a/src/widgets/dialogs/qfontdialog.cpp
+++ b/src/widgets/dialogs/qfontdialog.cpp
@@ -534,7 +534,7 @@ void QFontDialogPrivate::updateFamilies()
match_t type = MATCH_NONE;
if (bestFamilyType <= MATCH_NONE && familyName2 == QStringLiteral("helvetica"))
type = MATCH_LAST_RESORT;
- if (bestFamilyType <= MATCH_LAST_RESORT && familyName2 == f.family())
+ if (bestFamilyType <= MATCH_LAST_RESORT && familyName2 == f.families().first())
type = MATCH_APP;
// ### add fallback for writingSystem
if (type != MATCH_NONE) {
@@ -804,7 +804,7 @@ void QFontDialog::changeEvent(QEvent *e)
void QFontDialog::setCurrentFont(const QFont &font)
{
Q_D(QFontDialog);
- d->family = font.family();
+ d->family = font.families().first();
d->style = QFontDatabase::styleString(font);
d->size = font.pointSize();
if (d->size == -1) {
diff --git a/src/widgets/widgets/qfontcombobox.cpp b/src/widgets/widgets/qfontcombobox.cpp
index bd96aa2768..60a1f06764 100644
--- a/src/widgets/widgets/qfontcombobox.cpp
+++ b/src/widgets/widgets/qfontcombobox.cpp
@@ -134,8 +134,8 @@ static QFontDatabase::WritingSystem writingSystemFromLocale()
static QFontDatabase::WritingSystem writingSystemForFont(const QFont &font, bool *hasLatin)
{
- QList<QFontDatabase::WritingSystem> writingSystems = QFontDatabase::writingSystems(font.family());
-// qDebug() << font.family() << writingSystems;
+ QList<QFontDatabase::WritingSystem> writingSystems = QFontDatabase::writingSystems(font.families().first());
+// qDebug() << font.families().first() << writingSystems;
// this just confuses the algorithm below. Vietnamese is Latin with lots of special chars
writingSystems.removeOne(QFontDatabase::Vietnamese);
@@ -213,7 +213,7 @@ void QFontFamilyDelegate::paint(QPainter *painter,
QFont font(option.font);
font.setPointSize(QFontInfo(font).pointSize() * 3 / 2);
QFont font2 = font;
- font2.setFamily(text);
+ font2.setFamilies(QStringList{text});
bool hasLatin;
QFontDatabase::WritingSystem system = writingSystemForFont(font2, &hasLatin);
@@ -286,7 +286,7 @@ QSize QFontFamilyDelegate::sizeHint(const QStyleOptionViewItem &option,
{
QString text = index.data(Qt::DisplayRole).toString();
QFont font(option.font);
-// font.setFamily(text);
+// font.setFamilies(QStringList{text});
font.setPointSize(QFontInfo(font).pointSize() * 3/2);
QFontMetrics fontMetrics(font);
return QSize(fontMetrics.horizontalAdvance(text), fontMetrics.height());
@@ -367,8 +367,8 @@ void QFontComboBoxPrivate::_q_updateModel()
void QFontComboBoxPrivate::_q_currentChanged(const QString &text)
{
Q_Q(QFontComboBox);
- if (currentFont.family() != text) {
- currentFont.setFamily(text);
+ if (currentFont.families().first() != text) {
+ currentFont.setFamilies(QStringList{text});
emit q->currentFontChanged(currentFont);
}
}
diff --git a/tests/auto/gui/text/qfont/tst_qfont.cpp b/tests/auto/gui/text/qfont/tst_qfont.cpp
index 4cc5a81329..7af48eda01 100644
--- a/tests/auto/gui/text/qfont/tst_qfont.cpp
+++ b/tests/auto/gui/text/qfont/tst_qfont.cpp
@@ -311,10 +311,11 @@ void tst_QFont::resolve()
QCOMPARE(font6.families(), fontFamilies);
QFont font7, font8;
+ // This will call setFamilies() directly now
font7.setFamily(QLatin1String("Helvetica"));
font8.setFamilies(fontFamilies);
font7 = font7.resolve(font8);
- QCOMPARE(font7.families(), QStringList({"Helvetica", "Arial"}));
+ QCOMPARE(font7.families(), QStringList({"Helvetica"}));
QCOMPARE(font7.family(), "Helvetica");
}
@@ -710,6 +711,7 @@ void tst_QFont::sharing()
void tst_QFont::familyNameWithCommaQuote_data()
{
+ QTest::addColumn<QString>("enteredFamilyName");
QTest::addColumn<QString>("familyName");
QTest::addColumn<QString>("chosenFamilyName");
@@ -717,15 +719,16 @@ void tst_QFont::familyNameWithCommaQuote_data()
if (standardFont.isEmpty())
QSKIP("No default font available on the system");
const QString weirdFont(QLatin1String("'My, weird'' font name',"));
+ const QString bogusFont(QLatin1String("BogusFont"));
const QString commaSeparated(standardFont + QLatin1String(",Times New Roman"));
const QString commaSeparatedWeird(weirdFont + QLatin1String(",") + standardFont);
- const QString commaSeparatedBogus(QLatin1String("BogusFont,") + standardFont);
+ const QString commaSeparatedBogus(bogusFont + QLatin1String(",") + standardFont);
- QTest::newRow("standard") << standardFont << standardFont;
- QTest::newRow("weird") << weirdFont << weirdFont;
- QTest::newRow("commaSeparated") << commaSeparated << standardFont;
- QTest::newRow("commaSeparatedWeird") << commaSeparatedWeird << weirdFont;
- QTest::newRow("commaSeparatedBogus") << commaSeparatedBogus << standardFont;
+ QTest::newRow("standard") << standardFont << standardFont << standardFont;
+ QTest::newRow("weird") << weirdFont << QString("'My") << standardFont;
+ QTest::newRow("commaSeparated") << commaSeparated << standardFont << standardFont;
+ QTest::newRow("commaSeparatedWeird") << commaSeparatedWeird << QString("'My") << standardFont;
+ QTest::newRow("commaSeparatedBogus") << commaSeparatedBogus << bogusFont << standardFont;
}
void tst_QFont::familyNameWithCommaQuote()
@@ -804,8 +807,8 @@ void tst_QFont::setFamiliesAndFamily()
QVERIFY(weirdFontId != -1);
QFont f;
- f.setFamilies(families);
f.setFamily(family);
+ f.setFamilies(families);
QCOMPARE(QFontInfo(f).family(), chosenFamilyName);
QFontDatabase::removeApplicationFont(weirdFontId);
diff --git a/tests/auto/gui/text/qfontcache/tst_qfontcache.cpp b/tests/auto/gui/text/qfontcache/tst_qfontcache.cpp
index 5c5bdf06ea..ec652997fc 100644
--- a/tests/auto/gui/text/qfontcache/tst_qfontcache.cpp
+++ b/tests/auto/gui/text/qfontcache/tst_qfontcache.cpp
@@ -72,23 +72,29 @@ tst_QFontCache::~tst_QFontCache()
void tst_QFontCache::engineData_data()
{
QTest::addColumn<QString>("family");
- QTest::addColumn<QString>("cacheKey");
-
- QTest::newRow("unquoted-family-name") << QString("Times New Roman") << QString("Times New Roman");
- QTest::newRow("quoted-family-name") << QString("'Times New Roman'") << QString("Times New Roman");
- QTest::newRow("invalid") << QString("invalid") << QString("invalid");
- QTest::newRow("multiple") << QString("invalid, Times New Roman") << QString("invalid,Times New Roman");
- QTest::newRow("multiple spaces") << QString("invalid, Times New Roman ") << QString("invalid,Times New Roman");
- QTest::newRow("multiple spaces quotes") << QString("'invalid', Times New Roman ") << QString("invalid,Times New Roman");
- QTest::newRow("multiple2") << QString("invalid, Times New Roman , foobar, 'baz'") << QString("invalid,Times New Roman,foobar,baz");
- QTest::newRow("invalid spaces") << QString("invalid spaces, Times New Roman ") << QString("invalid spaces,Times New Roman");
- QTest::newRow("invalid spaces quotes") << QString("'invalid spaces', 'Times New Roman' ") << QString("invalid spaces,Times New Roman");
+ QTest::addColumn<QStringList>("cacheKey");
+
+ QTest::newRow("unquoted-family-name") << QString("Times New Roman") << QStringList({"Times New Roman"});
+ QTest::newRow("quoted-family-name") << QString("'Times New Roman'") << QStringList({"Times New Roman"});
+ QTest::newRow("invalid") << QString("invalid") << QStringList({"invalid"});
+ QTest::newRow("multiple") << QString("invalid, Times New Roman")
+ << QStringList({"invalid", "Times New Roman"});
+ QTest::newRow("multiple spaces") << QString("invalid, Times New Roman ")
+ << QStringList({"invalid", "Times New Roman"});
+ QTest::newRow("multiple spaces quotes") << QString("'invalid', Times New Roman ")
+ << QStringList({"invalid", "Times New Roman"});
+ QTest::newRow("multiple2") << QString("invalid, Times New Roman , foobar, 'baz'")
+ << QStringList({"invalid", "Times New Roman", "foobar", "baz"});
+ QTest::newRow("invalid spaces") << QString("invalid spaces, Times New Roman ")
+ << QStringList({"invalid spaces", "Times New Roman"});
+ QTest::newRow("invalid spaces quotes") << QString("'invalid spaces', 'Times New Roman' ")
+ << QStringList({"invalid spaces", "Times New Roman"});
}
void tst_QFontCache::engineData()
{
QFETCH(QString, family);
- QFETCH(QString, cacheKey);
+ QFETCH(QStringList, cacheKey);
QFont f(family);
f.exactMatch(); // loads engine
@@ -104,7 +110,7 @@ void tst_QFontCache::engineData()
if (req.pointSize < 0)
req.pointSize = req.pixelSize*72.0/d->dpi;
- req.family = cacheKey;
+ req.families = cacheKey;
QFontEngineData *engineData = QFontCache::instance()->findEngineData(req);
diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
index aaa3433173..a018279098 100644
--- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
+++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
@@ -3570,13 +3570,13 @@ void tst_QTextDocument::mergeFontFamilies()
cursor.setPosition(QByteArray("Hello World").length(), QTextCursor::KeepAnchor);
cursor.mergeCharFormat(newFormat);
- QVERIFY(td.toHtml().contains(QLatin1String("font-family:'MS Shell Dlg 2','Jokerman';")));
+ QVERIFY(td.toHtml().contains(QLatin1String("font-family:'Jokerman';")));
QTextCharFormat newFormatFamilies;
newFormatFamilies.setFontFamilies({ QLatin1String("Arial"), QLatin1String("Helvetica") });
cursor.mergeCharFormat(newFormatFamilies);
- QVERIFY(td.toHtml().contains(QLatin1String("font-family:'Arial','Helvetica','Jokerman'")));
+ QVERIFY(td.toHtml().contains(QLatin1String("font-family:'Arial','Helvetica'")));
newFormatFamilies.setFontFamilies({ QLatin1String("Arial"), QLatin1String("Jokerman"), QLatin1String("Helvetica") });
cursor.mergeCharFormat(newFormatFamilies);
diff --git a/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp b/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
index 3fdfa8ae99..da06b765e0 100644
--- a/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
+++ b/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
@@ -1661,19 +1661,22 @@ void tst_QTextDocumentFragment::html_cssShorthandFont()
const char html[] = "<span style=\"font: 50px sans-serif\">Foo</span>";
setHtml(html);
QCOMPARE(cursor.charFormat().property(QTextFormat::FontPixelSize).toInt(), 50);
- QCOMPARE(cursor.charFormat().property(QTextFormat::FontFamily).toString(), QString("sans-serif"));
+ QCOMPARE(cursor.charFormat().property(QTextFormat::FontFamilies).toStringList(),
+ QStringList{"sans-serif"});
}
{
const char html[] = "<span style=\"font: 50pt sans-serif\">Foo</span>";
setHtml(html);
QCOMPARE(cursor.charFormat().property(QTextFormat::FontPointSize).toInt(), 50);
- QCOMPARE(cursor.charFormat().property(QTextFormat::FontFamily).toString(), QString("sans-serif"));
+ QCOMPARE(cursor.charFormat().property(QTextFormat::FontFamilies).toStringList(),
+ QStringList{"sans-serif"});
}
{
const char html[] = "<span style='font:7.0pt \"Times New Roman\"'>Foo</span>";
setHtml(html);
QCOMPARE(cursor.charFormat().property(QTextFormat::FontPointSize).toInt(), 7);
- QCOMPARE(cursor.charFormat().property(QTextFormat::FontFamily).toString(), QString("Times New Roman"));
+ QCOMPARE(cursor.charFormat().property(QTextFormat::FontFamilies).toStringList(),
+ QStringList{"Times New Roman"});
}
{
const char html[] = "<span style='font:bold 7.0pt'>Foo</span>";
diff --git a/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp b/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp
index ef5e3a0e0b..3a0afcffa1 100644
--- a/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp
+++ b/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp
@@ -693,14 +693,17 @@ void tst_QTextFormat::dataStreamCompatibility()
QTextCharFormat format;
format.setFontStretch(42);
format.setFontLetterSpacingType(QFont::AbsoluteSpacing);
+ format.setFontFamily(QLatin1String("Arial"));
// Sanity check
{
QMap<int, QVariant> properties = format.properties();
QVERIFY(properties.contains(QTextFormat::FontLetterSpacingType));
QVERIFY(properties.contains(QTextFormat::FontStretch));
+ QVERIFY(properties.contains(QTextFormat::FontFamilies));
QVERIFY(!properties.contains(QTextFormat::OldFontLetterSpacingType));
QVERIFY(!properties.contains(QTextFormat::OldFontStretch));
+ QVERIFY(!properties.contains(QTextFormat::FontFamily));
}
QByteArray memory;
@@ -728,8 +731,10 @@ void tst_QTextFormat::dataStreamCompatibility()
QMap<int, QVariant> properties = other.properties();
QVERIFY(properties.contains(QTextFormat::FontLetterSpacingType));
QVERIFY(properties.contains(QTextFormat::FontStretch));
+ QVERIFY(properties.contains(QTextFormat::FontFamilies));
QVERIFY(!properties.contains(QTextFormat::OldFontLetterSpacingType));
QVERIFY(!properties.contains(QTextFormat::OldFontStretch));
+ QVERIFY(!properties.contains(QTextFormat::FontFamily));
}
}
@@ -746,8 +751,10 @@ void tst_QTextFormat::dataStreamCompatibility()
stream >> properties;
QVERIFY(properties.contains(QTextFormat::FontLetterSpacingType));
QVERIFY(properties.contains(QTextFormat::FontStretch));
+ QVERIFY(properties.contains(QTextFormat::FontFamilies));
QVERIFY(!properties.contains(QTextFormat::OldFontLetterSpacingType));
QVERIFY(!properties.contains(QTextFormat::OldFontStretch));
+ QVERIFY(!properties.contains(QTextFormat::FontFamily));
}
}
@@ -777,8 +784,10 @@ void tst_QTextFormat::dataStreamCompatibility()
QMap<int, QVariant> properties = other.properties();
QVERIFY(properties.contains(QTextFormat::FontLetterSpacingType));
QVERIFY(properties.contains(QTextFormat::FontStretch));
+ QVERIFY(properties.contains(QTextFormat::FontFamilies));
QVERIFY(!properties.contains(QTextFormat::OldFontLetterSpacingType));
QVERIFY(!properties.contains(QTextFormat::OldFontStretch));
+ QVERIFY(!properties.contains(QTextFormat::FontFamily));
}
}
@@ -797,8 +806,10 @@ void tst_QTextFormat::dataStreamCompatibility()
stream >> properties;
QVERIFY(!properties.contains(QTextFormat::FontLetterSpacingType));
QVERIFY(!properties.contains(QTextFormat::FontStretch));
+ QVERIFY(!properties.contains(QTextFormat::FontFamilies));
QVERIFY(properties.contains(QTextFormat::OldFontLetterSpacingType));
QVERIFY(properties.contains(QTextFormat::OldFontStretch));
+ QVERIFY(properties.contains(QTextFormat::FontFamily));
}
}
diff --git a/tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp b/tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp
index c85bb737bf..e752ef8ec7 100644
--- a/tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp
+++ b/tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp
@@ -142,7 +142,7 @@ static void doShapingTests()
if (e->fontEngine(e->layoutData->items[0])->type() == QFontEngine::Box)
QSKIP("OpenType support missing for script");
- QCOMPARE(e->fontEngine(e->layoutData->items[0])->fontDef.family, font.family());
+ QCOMPARE(e->fontEngine(e->layoutData->items[0])->fontDef.families.first(), font.family());
ushort nglyphs = glyphs.size();
if (!glyphs.isEmpty()) {
@@ -1098,7 +1098,7 @@ void tst_QTextScriptEngine::controlInSyllable_qtbug14204()
QFontEngine *fe = e->fontEngine(e->layoutData->items[0]);
if (fe->type() == QFontEngine::Box)
QSKIP("OpenType support missing for script");
- QCOMPARE(fe->fontDef.family, font.family());
+ QCOMPARE(fe->fontDef.families.first(), font.family());
e->shape(0);
QCOMPARE(e->layoutData->items[0].num_glyphs, ushort(3));
@@ -1156,7 +1156,7 @@ void tst_QTextScriptEngine::combiningMarks_qtbug15675()
QFontEngine *fe = e->fontEngine(e->layoutData->items[0]);
if (fe->type() == QFontEngine::Box)
QSKIP("OpenType support missing for script");
- QCOMPARE(fe->fontDef.family, font.family());
+ QCOMPARE(fe->fontDef.families.first(), font.family());
e->shape(0);
const int diff = e->layoutData->items[0].num_glyphs - string.size();
@@ -1197,7 +1197,7 @@ void tst_QTextScriptEngine::thaiIsolatedSaraAm()
QFontEngine *fe = e->fontEngine(e->layoutData->items[0]);
if (fe->type() == QFontEngine::Box)
QSKIP("OpenType support missing for script");
- QCOMPARE(fe->fontDef.family, font.family());
+ QCOMPARE(fe->fontDef.families.first(), font.family());
e->shape(0);
QVERIFY(e->layoutData->items[0].num_glyphs > 0);
diff --git a/tests/auto/widgets/widgets/qfontcombobox/tst_qfontcombobox.cpp b/tests/auto/widgets/widgets/qfontcombobox/tst_qfontcombobox.cpp
index 1f06c537c6..0d95102f66 100644
--- a/tests/auto/widgets/widgets/qfontcombobox/tst_qfontcombobox.cpp
+++ b/tests/auto/widgets/widgets/qfontcombobox/tst_qfontcombobox.cpp
@@ -91,7 +91,7 @@ void tst_QFontComboBox::currentFont_data()
// Normalize the names
QFont defaultFont;
QFontInfo fi(defaultFont);
- defaultFont = QFont(fi.family()); // make sure we have a real font name and not something like 'Sans Serif'.
+ defaultFont = QFont(QStringList{fi.family()}); // make sure we have a real font name and not something like 'Sans Serif'.
if (!QFontDatabase::isPrivateFamily(defaultFont.family()))
QTest::newRow("default") << defaultFont;
defaultFont.setPointSize(defaultFont.pointSize() + 10);
@@ -99,8 +99,8 @@ void tst_QFontComboBox::currentFont_data()
QTest::newRow("default2") << defaultFont;
QStringList list = QFontDatabase::families();
for (int i = 0; i < list.count(); ++i) {
- QFont f = QFont(QFontInfo(QFont(list.at(i))).family());
- if (!QFontDatabase::isPrivateFamily(f.family()))
+ QFont f = QFont(QStringList{QFontInfo(QFont(list.at(i))).family()});
+ if (!QFontDatabase::isPrivateFamily(f.families().first()))
QTest::newRow(qPrintable(list.at(i))) << f;
}
}