summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qfontdatabase.cpp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2020-05-07 00:15:06 +0200
committerMarc Mutz <marc.mutz@kdab.com>2020-05-08 19:02:15 +0200
commite031b33ad732d02e678c79c4e50fa2c27bc0dff3 (patch)
tree9733a7edba1c9ecfa368fee2f4efc0f26c390a96 /src/gui/text/qfontdatabase.cpp
parent1baf60d18cfb77730b60fd725e9c65d306149971 (diff)
QFontDatabase: store all writingSystemSample()s as char16_t string literals
... and return them as QStringView from a file-static function so that the conversion to QString is centralized in just one place (and we can think of returning a QStringView in the public API?). Change-Id: Ie33e2af1b57b8cb34672d245fb9205c68260f440 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/gui/text/qfontdatabase.cpp')
-rw-r--r--src/gui/text/qfontdatabase.cpp288
1 files changed, 77 insertions, 211 deletions
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp
index c511ec897b..069f9bd5e5 100644
--- a/src/gui/text/qfontdatabase.cpp
+++ b/src/gui/text/qfontdatabase.cpp
@@ -2019,224 +2019,90 @@ QString QFontDatabase::writingSystemName(WritingSystem writingSystem)
return QCoreApplication::translate("QFontDatabase", name);
}
-
-/*!
- Returns a string with sample characters from \a writingSystem.
-*/
-QString QFontDatabase::writingSystemSample(WritingSystem writingSystem)
+static QStringView writing_system_sample(QFontDatabase::WritingSystem writingSystem)
{
- QString sample;
switch (writingSystem) {
- case Any:
- case Symbol:
+ case QFontDatabase::Any:
+ case QFontDatabase::Symbol:
// show only ascii characters
- sample += QLatin1String("AaBbzZ");
- break;
- case Latin:
+ return u"AaBbzZ";
+ case QFontDatabase::Latin:
// This is cheating... we only show latin-1 characters so that we don't
// end up loading lots of fonts - at least on X11...
- sample = QLatin1String("Aa");
- sample += QChar(0x00C3);
- sample += QChar(0x00E1);
- sample += QLatin1String("Zz");
- break;
- case Greek:
- sample += QChar(0x0393);
- sample += QChar(0x03B1);
- sample += QChar(0x03A9);
- sample += QChar(0x03C9);
- break;
- case Cyrillic:
- sample += QChar(0x0414);
- sample += QChar(0x0434);
- sample += QChar(0x0436);
- sample += QChar(0x044f);
- break;
- case Armenian:
- sample += QChar(0x053f);
- sample += QChar(0x054f);
- sample += QChar(0x056f);
- sample += QChar(0x057f);
- break;
- case Hebrew:
- sample += QChar(0x05D0);
- sample += QChar(0x05D1);
- sample += QChar(0x05D2);
- sample += QChar(0x05D3);
- break;
- case Arabic:
- sample += QChar(0x0623);
- sample += QChar(0x0628);
- sample += QChar(0x062C);
- sample += QChar(0x062F);
- sample += QChar(0x064A);
- sample += QChar(0x0629);
- sample += QChar(0x0020);
- sample += QChar(0x0639);
- sample += QChar(0x0631);
- sample += QChar(0x0628);
- sample += QChar(0x064A);
- sample += QChar(0x0629);
- break;
- case Syriac:
- sample += QChar(0x0715);
- sample += QChar(0x0725);
- sample += QChar(0x0716);
- sample += QChar(0x0726);
- break;
- case Thaana:
- sample += QChar(0x0784);
- sample += QChar(0x0794);
- sample += QChar(0x078c);
- sample += QChar(0x078d);
- break;
- case Devanagari:
- sample += QChar(0x0905);
- sample += QChar(0x0915);
- sample += QChar(0x0925);
- sample += QChar(0x0935);
- break;
- case Bengali:
- sample += QChar(0x0986);
- sample += QChar(0x0996);
- sample += QChar(0x09a6);
- sample += QChar(0x09b6);
- break;
- case Gurmukhi:
- sample += QChar(0x0a05);
- sample += QChar(0x0a15);
- sample += QChar(0x0a25);
- sample += QChar(0x0a35);
- break;
- case Gujarati:
- sample += QChar(0x0a85);
- sample += QChar(0x0a95);
- sample += QChar(0x0aa5);
- sample += QChar(0x0ab5);
- break;
- case Oriya:
- sample += QChar(0x0b06);
- sample += QChar(0x0b16);
- sample += QChar(0x0b2b);
- sample += QChar(0x0b36);
- break;
- case Tamil:
- sample += QChar(0x0b89);
- sample += QChar(0x0b99);
- sample += QChar(0x0ba9);
- sample += QChar(0x0bb9);
- break;
- case Telugu:
- sample += QChar(0x0c05);
- sample += QChar(0x0c15);
- sample += QChar(0x0c25);
- sample += QChar(0x0c35);
- break;
- case Kannada:
- sample += QChar(0x0c85);
- sample += QChar(0x0c95);
- sample += QChar(0x0ca5);
- sample += QChar(0x0cb5);
- break;
- case Malayalam:
- sample += QChar(0x0d05);
- sample += QChar(0x0d15);
- sample += QChar(0x0d25);
- sample += QChar(0x0d35);
- break;
- case Sinhala:
- sample += QChar(0x0d90);
- sample += QChar(0x0da0);
- sample += QChar(0x0db0);
- sample += QChar(0x0dc0);
- break;
- case Thai:
- sample += QChar(0x0e02);
- sample += QChar(0x0e12);
- sample += QChar(0x0e22);
- sample += QChar(0x0e32);
- break;
- case Lao:
- sample += QChar(0x0e8d);
- sample += QChar(0x0e9d);
- sample += QChar(0x0ead);
- sample += QChar(0x0ebd);
- break;
- case Tibetan:
- sample += QChar(0x0f00);
- sample += QChar(0x0f01);
- sample += QChar(0x0f02);
- sample += QChar(0x0f03);
- break;
- case Myanmar:
- sample += QChar(0x1000);
- sample += QChar(0x1001);
- sample += QChar(0x1002);
- sample += QChar(0x1003);
- break;
- case Georgian:
- sample += QChar(0x10a0);
- sample += QChar(0x10b0);
- sample += QChar(0x10c0);
- sample += QChar(0x10d0);
- break;
- case Khmer:
- sample += QChar(0x1780);
- sample += QChar(0x1790);
- sample += QChar(0x17b0);
- sample += QChar(0x17c0);
- break;
- case SimplifiedChinese:
- sample += QChar(0x4e2d);
- sample += QChar(0x6587);
- sample += QChar(0x8303);
- sample += QChar(0x4f8b);
- break;
- case TraditionalChinese:
- sample += QChar(0x4e2d);
- sample += QChar(0x6587);
- sample += QChar(0x7bc4);
- sample += QChar(0x4f8b);
- break;
- case Japanese:
- sample += QChar(0x30b5);
- sample += QChar(0x30f3);
- sample += QChar(0x30d7);
- sample += QChar(0x30eb);
- sample += QChar(0x3067);
- sample += QChar(0x3059);
- break;
- case Korean:
- sample += QChar(0xac00);
- sample += QChar(0xac11);
- sample += QChar(0xac1a);
- sample += QChar(0xac2f);
- break;
- case Vietnamese:
- sample += u"\x1ED7\x1ED9\x1ED1\x1ED3";
- break;
- case Ogham:
- sample += QChar(0x1681);
- sample += QChar(0x1682);
- sample += QChar(0x1683);
- sample += QChar(0x1684);
- break;
- case Runic:
- sample += QChar(0x16a0);
- sample += QChar(0x16a1);
- sample += QChar(0x16a2);
- sample += QChar(0x16a3);
- break;
- case Nko:
- sample += QChar(0x7ca);
- sample += QChar(0x7cb);
- sample += QChar(0x7cc);
- sample += QChar(0x7cd);
- break;
+ return u"Aa\x00C3\x00E1Zz";
+ case QFontDatabase::Greek:
+ return u"\x0393\x03B1\x03A9\x03C9";
+ case QFontDatabase::Cyrillic:
+ return u"\x0414\x0434\x0436\x044f";
+ case QFontDatabase::Armenian:
+ return u"\x053f\x054f\x056f\x057f";
+ case QFontDatabase::Hebrew:
+ return u"\x05D0\x05D1\x05D2\x05D3";
+ case QFontDatabase::Arabic:
+ return u"\x0623\x0628\x062C\x062F\x064A\x0629\x0020\x0639\x0631\x0628\x064A\x0629";
+ case QFontDatabase::Syriac:
+ return u"\x0715\x0725\x0716\x0726";
+ case QFontDatabase::Thaana:
+ return u"\x0784\x0794\x078c\x078d";
+ case QFontDatabase::Devanagari:
+ return u"\x0905\x0915\x0925\x0935";
+ case QFontDatabase::Bengali:
+ return u"\x0986\x0996\x09a6\x09b6";
+ case QFontDatabase::Gurmukhi:
+ return u"\x0a05\x0a15\x0a25\x0a35";
+ case QFontDatabase::Gujarati:
+ return u"\x0a85\x0a95\x0aa5\x0ab5";
+ case QFontDatabase::Oriya:
+ return u"\x0b06\x0b16\x0b2b\x0b36";
+ case QFontDatabase::Tamil:
+ return u"\x0b89\x0b99\x0ba9\x0bb9";
+ case QFontDatabase::Telugu:
+ return u"\x0c05\x0c15\x0c25\x0c35";
+ case QFontDatabase::Kannada:
+ return u"\x0c85\x0c95\x0ca5\x0cb5";
+ case QFontDatabase::Malayalam:
+ return u"\x0d05\x0d15\x0d25\x0d35";
+ case QFontDatabase::Sinhala:
+ return u"\x0d90\x0da0\x0db0\x0dc0";
+ case QFontDatabase::Thai:
+ return u"\x0e02\x0e12\x0e22\x0e32";
+ case QFontDatabase::Lao:
+ return u"\x0e8d\x0e9d\x0ead\x0ebd";
+ case QFontDatabase::Tibetan:
+ return u"\x0f00\x0f01\x0f02\x0f03";
+ case QFontDatabase::Myanmar:
+ return u"\x1000\x1001\x1002\x1003";
+ case QFontDatabase::Georgian:
+ return u"\x10a0\x10b0\x10c0\x10d0";
+ case QFontDatabase::Khmer:
+ return u"\x1780\x1790\x17b0\x17c0";
+ case QFontDatabase::SimplifiedChinese:
+ return u"\x4e2d\x6587\x8303\x4f8b";
+ case QFontDatabase::TraditionalChinese:
+ return u"\x4e2d\x6587\x7bc4\x4f8b";
+ case QFontDatabase::Japanese:
+ return u"\x30b5\x30f3\x30d7\x30eb\x3067\x3059";
+ case QFontDatabase::Korean:
+ return u"\xac00\xac11\xac1a\xac2f";
+ case QFontDatabase::Vietnamese:
+ return u"\x1ED7\x1ED9\x1ED1\x1ED3";
+ case QFontDatabase::Ogham:
+ return u"\x1681\x1682\x1683\x1684";
+ case QFontDatabase::Runic:
+ return u"\x16a0\x16a1\x16a2\x16a3";
+ case QFontDatabase::Nko:
+ return u"\x7ca\x7cb\x7cc\x7cd";
default:
- break;
+ return nullptr;
}
- return sample;
+}
+
+/*!
+ Returns a string with sample characters from \a writingSystem.
+*/
+QString QFontDatabase::writingSystemSample(WritingSystem writingSystem)
+{
+ return writing_system_sample(writingSystem).toString();
}