summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPierre Rossi <pierre.rossi@nokia.com>2012-03-22 17:12:32 +0100
committerQt by Nokia <qt-info@nokia.com>2012-04-10 12:49:34 +0200
commita159ca80d73f07d617d6edd9b3e59bda25449a1c (patch)
tree6e547e6789a91f3d9728901bc0912ba12555595c /src
parent5a02c2115c2522847ac3388e2719de6876166e03 (diff)
Don't hardcode the default families in qfont_qpa.cpp
Since different platforms come with different fonts, we should probably leave it up to the platform to decide which family to use. Change-Id: I18bb81c0ce87cc7e9ac7f3abaeae1b41c0ce8410 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui/text/qfont_qpa.cpp35
-rw-r--r--src/gui/text/qfontdatabase.h5
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp7
-rw-r--r--src/plugins/platforms/windows/qwindowsfontdatabase.cpp26
-rw-r--r--src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp25
5 files changed, 64 insertions, 34 deletions
diff --git a/src/gui/text/qfont_qpa.cpp b/src/gui/text/qfont_qpa.cpp
index 6576f237c4..b73b03025b 100644
--- a/src/gui/text/qfont_qpa.cpp
+++ b/src/gui/text/qfont_qpa.cpp
@@ -75,35 +75,12 @@ void QFont::setRawName(const QString &)
QString QFont::defaultFamily() const
{
- QString familyName;
- switch(d->request.styleHint) {
- case QFont::SansSerif:
- familyName = QString::fromLatin1("sans-serif");
- break;
- case QFont::Serif:
- familyName = QString::fromLatin1("serif");
- break;
- case QFont::TypeWriter:
- case QFont::Monospace:
- familyName = QString::fromLatin1("monospace");
- break;
- case QFont::Cursive:
- familyName = QString::fromLatin1("cursive");
- break;
- case QFont::Fantasy:
- familyName = QString::fromLatin1("fantasy");
- break;
- case QFont::Decorative:
- familyName = QString::fromLatin1("decorative");
- break;
- case QFont::System:
- default:
- familyName = QString();
- break;
- }
-
- return QGuiApplicationPrivate::platformIntegration()->fontDatabase()->resolveFontFamilyAlias(familyName);
-
+ QPlatformFontDatabase *fontDB = QGuiApplicationPrivate::platformIntegration()->fontDatabase();
+ const QStringList fallbacks = fontDB->fallbacksForFamily(QString(), QFont::StyleNormal
+ , QFont::StyleHint(d->request.styleHint), QUnicodeTables::Common);
+ if (!fallbacks.isEmpty())
+ return fallbacks.first();
+ return QString();
}
QString QFont::lastResortFamily() const
diff --git a/src/gui/text/qfontdatabase.h b/src/gui/text/qfontdatabase.h
index b30f7da48d..f0830f2a41 100644
--- a/src/gui/text/qfontdatabase.h
+++ b/src/gui/text/qfontdatabase.h
@@ -46,8 +46,6 @@
#include <QtCore/qstring.h>
#include <QtGui/qfont.h>
-class tst_QFont;
-
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -162,9 +160,6 @@ private:
friend class QFontEngineMultiXLFD;
friend class QFontEngineMultiQWS;
friend class QFontEngineMultiQPA;
-#ifdef QT_BUILD_INTERNAL
- friend class ::tst_QFont;
-#endif
QFontDatabasePrivate *d;
};
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
index bf05433b22..9ad9b96d15 100644
--- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
+++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
@@ -291,8 +291,15 @@ static const char *getFcFamilyForStyleHint(const QFont::StyleHint style)
stylehint = "serif";
break;
case QFont::TypeWriter:
+ case QFont::Monospace:
stylehint = "monospace";
break;
+ case QFont::Cursive:
+ stylehint = "cursive";
+ break;
+ case QFont::Fantasy:
+ stylehint = "fantasy";
+ break;
default:
break;
}
diff --git a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
index c1c25dd686..3fc40f49ac 100644
--- a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
+++ b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
@@ -698,6 +698,32 @@ QStringList QWindowsFontDatabase::fallbacksForFamily(const QString family, 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:
+ case QFont::System:
+ default:
+ result << QString::fromLatin1("Arial");
+ }
+
if (QWindowsContext::verboseFonts)
qDebug() << __FUNCTION__ << family << style << styleHint
<< script << result << m_families.size();
diff --git a/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp b/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp
index e84f0c7630..246b5b3710 100644
--- a/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp
+++ b/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp
@@ -422,6 +422,31 @@ QStringList QWindowsFontDatabaseFT::fallbacksForFamily(const QString family, con
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:
+ case QFont::System:
+ default:
+ result << QString::fromLatin1("Arial");
+ }
if (QWindowsContext::verboseFonts)
qDebug() << __FUNCTION__ << family << style << styleHint
<< script << result << m_families;