Windows: Use common code paths for default font families.
Factor out function to determine the font family for a style hint and use that for the FreeType font database as well. Task-number: QTBUG-39961 Change-Id: Ic5ec0928c7994b61e4d2b10d829826658b1aa1d5 Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>bb10
parent
fd331a5b3a
commit
da6aac0950
|
|
@ -1613,40 +1613,36 @@ QStringList QWindowsFontDatabase::extraTryFontsForFamily(const QString &family)
|
|||
return result;
|
||||
}
|
||||
|
||||
QString QWindowsFontDatabase::familyForStyleHint(QFont::StyleHint styleHint)
|
||||
{
|
||||
switch (styleHint) {
|
||||
case QFont::Times:
|
||||
return QStringLiteral("Times New Roman");
|
||||
case QFont::Courier:
|
||||
return QStringLiteral("Courier New");
|
||||
case QFont::Monospace:
|
||||
return QStringLiteral("Courier New");
|
||||
case QFont::Cursive:
|
||||
return QStringLiteral("Comic Sans MS");
|
||||
case QFont::Fantasy:
|
||||
return QStringLiteral("Impact");
|
||||
case QFont::Decorative:
|
||||
return QStringLiteral("Old English");
|
||||
case QFont::Helvetica:
|
||||
return QStringLiteral("Arial");
|
||||
case QFont::System:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return QStringLiteral("MS Shell Dlg 2");
|
||||
}
|
||||
|
||||
QStringList QWindowsFontDatabase::fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script) const
|
||||
{
|
||||
QStringList result = QPlatformFontDatabase::fallbacksForFamily(family, style, styleHint, script);
|
||||
if (!result.isEmpty())
|
||||
return result;
|
||||
|
||||
switch (styleHint) {
|
||||
case QFont::Times:
|
||||
result << QString::fromLatin1("Times New Roman");
|
||||
break;
|
||||
case QFont::Courier:
|
||||
result << QString::fromLatin1("Courier New");
|
||||
break;
|
||||
case QFont::Monospace:
|
||||
result << QString::fromLatin1("Courier New");
|
||||
break;
|
||||
case QFont::Cursive:
|
||||
result << QString::fromLatin1("Comic Sans MS");
|
||||
break;
|
||||
case QFont::Fantasy:
|
||||
result << QString::fromLatin1("Impact");
|
||||
break;
|
||||
case QFont::Decorative:
|
||||
result << QString::fromLatin1("Old English");
|
||||
break;
|
||||
case QFont::Helvetica:
|
||||
result << QString::fromLatin1("Arial");
|
||||
break;
|
||||
case QFont::System:
|
||||
default:
|
||||
result << QString::fromLatin1("MS Shell Dlg 2");
|
||||
break;
|
||||
}
|
||||
|
||||
result.append(QWindowsFontDatabase::familyForStyleHint(styleHint));
|
||||
result.append(QWindowsFontDatabase::extraTryFontsForFamily(family));
|
||||
|
||||
qCDebug(lcQpaFonts) << __FUNCTION__ << family << style << styleHint
|
||||
|
|
|
|||
|
|
@ -104,6 +104,7 @@ public:
|
|||
static LOGFONT fontDefToLOGFONT(const QFontDef &fontDef);
|
||||
|
||||
static QStringList extraTryFontsForFamily(const QString &family);
|
||||
static QString familyForStyleHint(QFont::StyleHint styleHint);
|
||||
|
||||
private:
|
||||
void populate(const QString &family = QString());
|
||||
|
|
|
|||
|
|
@ -442,30 +442,7 @@ QStringList QWindowsFontDatabaseFT::fallbacksForFamily(const QString &family, QF
|
|||
if (!result.isEmpty())
|
||||
return result;
|
||||
|
||||
switch (styleHint) {
|
||||
case QFont::Times:
|
||||
result << QString::fromLatin1("Times New Roman");
|
||||
break;
|
||||
case QFont::Courier:
|
||||
result << QString::fromLatin1("Courier New");
|
||||
break;
|
||||
case QFont::Monospace:
|
||||
result << QString::fromLatin1("Courier New");
|
||||
break;
|
||||
case QFont::Cursive:
|
||||
result << QString::fromLatin1("Comic Sans MS");
|
||||
break;
|
||||
case QFont::Fantasy:
|
||||
result << QString::fromLatin1("Impact");
|
||||
break;
|
||||
case QFont::Decorative:
|
||||
result << QString::fromLatin1("Old English");
|
||||
break;
|
||||
case QFont::Helvetica:
|
||||
case QFont::System:
|
||||
default:
|
||||
result << QString::fromLatin1("Arial");
|
||||
}
|
||||
result.append(QWindowsFontDatabase::familyForStyleHint(styleHint));
|
||||
|
||||
#ifdef Q_OS_WINCE
|
||||
QSettings settings(QLatin1String("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\FontLink\\SystemLink"), QSettings::NativeFormat);
|
||||
|
|
|
|||
Loading…
Reference in New Issue