190QString QMimeType::comment()
const
192 const auto isEnUs = [](QStringView lang) {
194 static constexpr QLatin1StringView usaIsh[] =
195 {
"en_Latn_US"_L1,
"en_US"_L1,
"en_Latn"_L1,
"en"_L1 };
196 return std::find(std::begin(usaIsh), std::end(usaIsh), lang) != std::end(usaIsh);
198 const auto localeComments = QMimeDatabasePrivate::instance()->localeComments(d->name);
199 const QStringList languageList = QLocale().uiLanguages(QLocale::TagSeparator::Underscore);
200 QString comment = localeComments.value(u"default"_s);
202 for (
const QString &language : std::as_const(languageList)) {
203 const QString lang = language ==
"C"_L1 ? u"en_US"_s : language;
204 QString translated = localeComments.value(lang);
205 if (!translated.isEmpty())
207 if (!comment.isEmpty() && isEnUs(lang))
211 QCoreApplication::translate(
"QMimeType", comment.toUtf8().constData());
212 if (!translated.isEmpty())
233QString QMimeType::genericIconName()
const
235 QString genericIconName = QMimeDatabasePrivate::instance()->genericIcon(d->name);
236 if (genericIconName.isEmpty()) {
242 const QString group = name();
243 QStringView groupRef(group);
244 const qsizetype slashindex = groupRef.indexOf(u'/');
245 if (slashindex != -1)
246 groupRef = groupRef.left(slashindex);
247 return groupRef +
"-x-generic"_L1;
249 return genericIconName;
316 QStringList newParents;
317 for (
const QString &parent : parents) {
319 if (!allParents.contains(parent)) {
320 allParents.append(parent);
321 newParents.append(parent);
326 for (
const QString &parent : newParents)
327 collectParentMimeTypes(parent, allParents);
382QStringList QMimeType::suffixes()
const
384 const QStringList patterns = globPatterns();
387 result.reserve(patterns.size());
388 for (
const QString &pattern : patterns) {
390 if (pattern.startsWith(
"*."_L1) &&
391 pattern.size() > 2 &&
392 pattern.indexOf(u'*', 2) < 0 && pattern.indexOf(u'?', 2) < 0) {
393 const QString suffix = pattern.mid(2);
394 result.append(suffix);