summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2015-05-18 09:32:14 +0400
committerKonstantin Ritt <ritt.ks@gmail.com>2015-07-31 09:52:49 +0000
commit839af2268e2b0b8079d1f107db71dcf0390c11ee (patch)
treeb0fbd144c88ac795e07f9b7550cc2cf68e72d4dc /src
parent5e3e34731b7880ac775e8f1fa156ce016e6820f1 (diff)
Micro optimization to Basic/Android FDB::populateFontDatabase()
Re-use QDir to check if dir exists (QDir::exists() also returns false if path specifies a file), and use somewhat faster QDir::entryInfoList() to iterate the font files. Change-Id: Iea3a6e5548928a01db71037425adf170cb722151 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp23
-rw-r--r--src/plugins/platforms/android/qandroidplatformfontdatabase.cpp13
2 files changed, 20 insertions, 16 deletions
diff --git a/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp b/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
index 9212383148..abadede262 100644
--- a/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
+++ b/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
@@ -55,23 +55,24 @@ QT_BEGIN_NAMESPACE
void QBasicFontDatabase::populateFontDatabase()
{
QString fontpath = fontDir();
+ QDir dir(fontpath);
- if(!QFile::exists(fontpath)) {
+ if (!dir.exists()) {
qWarning("QFontDatabase: Cannot find font directory %s - is Qt installed correctly?",
qPrintable(fontpath));
return;
}
- QDir dir(fontpath);
- dir.setNameFilters(QStringList() << QLatin1String("*.ttf")
- << QLatin1String("*.ttc") << QLatin1String("*.pfa")
- << QLatin1String("*.pfb")
- << QLatin1String("*.otf"));
- dir.refresh();
- for (int i = 0; i < int(dir.count()); ++i) {
- const QByteArray file = QFile::encodeName(dir.absoluteFilePath(dir[i]));
-// qDebug() << "looking at" << file;
- addTTFile(QByteArray(), file);
+ QStringList nameFilters;
+ nameFilters << QLatin1String("*.ttf")
+ << QLatin1String("*.ttc")
+ << QLatin1String("*.pfa")
+ << QLatin1String("*.pfb")
+ << QLatin1String("*.otf");
+
+ foreach (const QFileInfo &fi, dir.entryInfoList(nameFilters, QDir::Files)) {
+ const QByteArray file = QFile::encodeName(fi.absoluteFilePath());
+ QBasicFontDatabase::addTTFile(QByteArray(), file);
}
}
diff --git a/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp b/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp
index b4b6123147..be1a3d7bdf 100644
--- a/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp
+++ b/src/plugins/platforms/android/qandroidplatformfontdatabase.cpp
@@ -45,16 +45,19 @@ QString QAndroidPlatformFontDatabase::fontDir() const
void QAndroidPlatformFontDatabase::populateFontDatabase()
{
QString fontpath = fontDir();
+ QDir dir(fontpath);
- if (!QFile::exists(fontpath)) {
+ if (!dir.exists()) {
qFatal("QFontDatabase: Cannot find font directory %s - is Qt installed correctly?",
qPrintable(fontpath));
}
- QDir dir(fontpath);
- QList<QFileInfo> entries = dir.entryInfoList(QStringList() << QStringLiteral("*.ttf") << QStringLiteral("*.otf"), QDir::Files);
- for (int i = 0; i < int(entries.count()); ++i) {
- const QByteArray file = QFile::encodeName(entries.at(i).absoluteFilePath());
+ QStringList nameFilters;
+ nameFilters << QLatin1String("*.ttf")
+ << QLatin1String("*.otf");
+
+ foreach (const QFileInfo &fi, dir.entryInfoList(nameFilters, QDir::Files)) {
+ const QByteArray file = QFile::encodeName(fi.absoluteFilePath());
QBasicFontDatabase::addTTFile(QByteArray(), file);
}
}