summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/corelib/kernel/qtranslator.cpp29
1 files changed, 14 insertions, 15 deletions
diff --git a/src/corelib/kernel/qtranslator.cpp b/src/corelib/kernel/qtranslator.cpp
index 794a4aaa0ce..b5a941c2055 100644
--- a/src/corelib/kernel/qtranslator.cpp
+++ b/src/corelib/kernel/qtranslator.cpp
@@ -613,6 +613,13 @@ bool QTranslatorPrivate::do_load(const QString &realname, const QString &directo
return false;
}
+Q_NEVER_INLINE
+static bool is_readable_file(const QString &name)
+{
+ const QFileInfo fi(name);
+ return fi.isReadable() && fi.isFile();
+}
+
static QString find_translation(const QLocale & locale,
const QString & filename,
const QString & prefix,
@@ -626,7 +633,6 @@ static QString find_translation(const QLocale & locale,
path += QLatin1Char('/');
}
- QFileInfo fi;
QString realname;
QStringList fuzzyLocales;
@@ -647,13 +653,11 @@ static QString find_translation(const QLocale & locale,
localeName.replace(QLatin1Char('-'), QLatin1Char('_'));
realname = path + filename + prefix + localeName + (suffix.isNull() ? QLatin1String(".qm") : suffix);
- fi.setFile(realname);
- if (fi.isReadable() && fi.isFile())
+ if (is_readable_file(realname))
return realname;
realname = path + filename + prefix + localeName;
- fi.setFile(realname);
- if (fi.isReadable() && fi.isFile())
+ if (is_readable_file(realname))
return realname;
fuzzyLocales.append(localeName);
@@ -669,32 +673,27 @@ static QString find_translation(const QLocale & locale,
localeName.truncate(rightmost);
realname = path + filename + prefix + localeName + (suffix.isNull() ? QLatin1String(".qm") : suffix);
- fi.setFile(realname);
- if (fi.isReadable() && fi.isFile())
+ if (is_readable_file(realname))
return realname;
realname = path + filename + prefix + localeName;
- fi.setFile(realname);
- if (fi.isReadable() && fi.isFile())
+ if (is_readable_file(realname))
return realname;
}
}
if (!suffix.isNull()) {
realname = path + filename + suffix;
- fi.setFile(realname);
- if (fi.isReadable() && fi.isFile())
+ if (is_readable_file(realname))
return realname;
}
realname = path + filename + prefix;
- fi.setFile(realname);
- if (fi.isReadable() && fi.isFile())
+ if (is_readable_file(realname))
return realname;
realname = path + filename;
- fi.setFile(realname);
- if (fi.isReadable() && fi.isFile())
+ if (is_readable_file(realname))
return realname;
return QString();