Revert "Make unicode ranges in font take precedence over codepage"
This reverts commit3a84d92f57
because it caused a regression with certain fonts on Windows that have divided information about writing system support in unicode ranges and codepage ranges. The original commit fixed a problem on Android where one of the fonts had an entry for Arabic in its codepage range but no glyphs for this script. This issue has been fixed in a different way now, by0b87f4f6c9
which makes fallback fonts work properly, so the commit is no longer needed to fix said bug. [ChangeLog][Fonts] Fixed regression in font families returned by QFontDatabase::families() for certain writing systems. Task-number: QTBUG-39846 Change-Id: I3077b1e618b21680549abc1734cb6df6e264387e Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
This commit is contained in:
parent
1d7408cc8b
commit
75cf14e413
@ -550,60 +550,58 @@ QSupportedWritingSystems QPlatformFontDatabase::writingSystemsFromTrueTypeBits(q
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!hasScript) {
|
||||
if (codePageRange[0] & ((1 << Latin1CsbBit) | (1 << CentralEuropeCsbBit) | (1 << TurkishCsbBit) | (1 << BalticCsbBit))) {
|
||||
writingSystems.setSupported(QFontDatabase::Latin);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Latin", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << CyrillicCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::Cyrillic);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Cyrillic", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << GreekCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::Greek);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Greek", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << HebrewCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::Hebrew);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Hebrew", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << ArabicCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::Arabic);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Arabic", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << VietnameseCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::Vietnamese);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Vietnamese", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << SimplifiedChineseCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::SimplifiedChinese);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Simplified Chinese", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << TraditionalChineseCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::TraditionalChinese);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Traditional Chinese", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << JapaneseCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::Japanese);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Japanese", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & ((1 << KoreanCsbBit) | (1 << KoreanJohabCsbBit))) {
|
||||
writingSystems.setSupported(QFontDatabase::Korean);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Korean", familyName.latin1());
|
||||
}
|
||||
if (!hasScript)
|
||||
writingSystems.setSupported(QFontDatabase::Symbol);
|
||||
if (codePageRange[0] & ((1 << Latin1CsbBit) | (1 << CentralEuropeCsbBit) | (1 << TurkishCsbBit) | (1 << BalticCsbBit))) {
|
||||
writingSystems.setSupported(QFontDatabase::Latin);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Latin", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << CyrillicCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::Cyrillic);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Cyrillic", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << GreekCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::Greek);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Greek", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << HebrewCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::Hebrew);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Hebrew", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << ArabicCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::Arabic);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Arabic", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << VietnameseCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::Vietnamese);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Vietnamese", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << SimplifiedChineseCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::SimplifiedChinese);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Simplified Chinese", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << TraditionalChineseCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::TraditionalChinese);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Traditional Chinese", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & (1 << JapaneseCsbBit)) {
|
||||
writingSystems.setSupported(QFontDatabase::Japanese);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Japanese", familyName.latin1());
|
||||
}
|
||||
if (codePageRange[0] & ((1 << KoreanCsbBit) | (1 << KoreanJohabCsbBit))) {
|
||||
writingSystems.setSupported(QFontDatabase::Korean);
|
||||
hasScript = true;
|
||||
//qDebug("font %s supports Korean", familyName.latin1());
|
||||
}
|
||||
if (!hasScript)
|
||||
writingSystems.setSupported(QFontDatabase::Symbol);
|
||||
|
||||
return writingSystems;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user