summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gui/text/qfontengine.cpp8
-rw-r--r--src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp14
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp14
-rw-r--r--src/plugins/platforms/windows/qwindowsfontdatabase.cpp19
4 files changed, 18 insertions, 37 deletions
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index 297bc5129a..810b51b9c4 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -309,6 +309,14 @@ void *QFontEngine::harfbuzzFace() const
bool QFontEngine::supportsScript(QChar::Script script) const
{
+ // ### TODO: This only works for scripts that require OpenType. More generally
+ // for scripts that do not require OpenType we should just look at the list of
+ // supported writing systems in the font's OS/2 table.
+ if (!((script >= QChar::Script_Syriac && script <= QChar::Script_Sinhala)
+ || script == QChar::Script_Khmer || script == QChar::Script_Nko)) {
+ return true;
+ }
+
#ifdef QT_ENABLE_HARFBUZZ_NG
if (useHarfbuzzNG) {
bool ret = false;
diff --git a/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp b/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
index 9b87418846..400dbbd0c6 100644
--- a/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
+++ b/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
@@ -91,12 +91,6 @@ typedef struct {
quint16 stringOffset;
} NAME_RECORD;
-static inline bool scriptRequiresOpenType(int script)
-{
- return ((script >= QChar::Script_Syriac && script <= QChar::Script_Sinhala)
- || script == QChar::Script_Khmer || script == QChar::Script_Nko);
-}
-
void QBasicFontDatabase::populateFontDatabase()
{
QString fontpath = fontDir();
@@ -137,11 +131,9 @@ QFontEngine *QBasicFontDatabase::fontEngine(const QFontDef &fontDef, QChar::Scri
if (engine->invalid()) {
delete engine;
engine = 0;
- } else if (scriptRequiresOpenType(script)) {
- if (!engine->supportsScript(script)) {
- delete engine;
- engine = 0;
- }
+ } else if (!engine->supportsScript(script)) {
+ delete engine;
+ engine = 0;
}
return engine;
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
index 3e056af97c..6d497af686 100644
--- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
+++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
@@ -69,12 +69,6 @@ static inline bool requiresOpenType(int writingSystem)
|| writingSystem == QFontDatabase::Khmer || writingSystem == QFontDatabase::Nko);
}
-static inline bool scriptRequiresOpenType(int script)
-{
- return ((script >= QChar::Script_Syriac && script <= QChar::Script_Sinhala)
- || script == QChar::Script_Khmer || script == QChar::Script_Nko);
-}
-
static int getFCWeight(int fc_weight)
{
int qtweight = QFont::Black;
@@ -602,11 +596,9 @@ QFontEngine *QFontconfigDatabase::fontEngine(const QFontDef &f, QChar::Script sc
if (engine->invalid()) {
delete engine;
engine = 0;
- } else if (scriptRequiresOpenType(script)) {
- if (!engine->supportsScript(script)) {
- delete engine;
- engine = 0;
- }
+ } else if (!engine->supportsScript(script)) {
+ delete engine;
+ engine = 0;
}
return engine;
diff --git a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
index 22be4418a9..60711d36f6 100644
--- a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
+++ b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
@@ -1407,12 +1407,6 @@ HFONT QWindowsFontDatabase::systemFont()
// Creation functions
-static inline bool scriptRequiresOpenType(int script)
-{
- return ((script >= QChar::Script_Syriac && script <= QChar::Script_Sinhala)
- || script == QChar::Script_Khmer || script == QChar::Script_Nko);
-}
-
static const char *other_tryFonts[] = {
"Arial",
"MS UI Gothic",
@@ -1763,15 +1757,10 @@ QFontEngine *QWindowsFontDatabase::createEngine(int script, const QFontDef &requ
few->glyphFormat = QFontEngineGlyphCache::Raster_RGBMask;
// Also check for OpenType tables when using complex scripts
- // ### TODO: This only works for scripts that require OpenType. More generally
- // for scripts that do not require OpenType we should just look at the list of
- // supported writing systems in the font's OS/2 table.
- if (scriptRequiresOpenType(script)) {
- if (!few->supportsScript(QChar::Script(script))) {
- qWarning(" OpenType support missing for script\n");
- delete few;
- return 0;
- }
+ if (!few->supportsScript(QChar::Script(script))) {
+ qWarning(" OpenType support missing for script\n");
+ delete few;
+ return 0;
}
few->initFontInfo(request, fontHdc, dpi);