aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2019-07-16 09:17:45 +0200
committerEike Ziller <eike.ziller@qt.io>2019-07-16 09:17:45 +0200
commit5af1f95f25c62123c83ed27cd644ab7ead8f65f1 (patch)
tree88dfd33889f1ea3ca3a207522f3da3e671514a9b /src/libs
parent1c438aadde0ee73fe2fedb41116b38cd18ac21fb (diff)
parent9693882d6dc53e3cebb5614d74f205210d75ed20 (diff)
Merge remote-tracking branch 'origin/4.9' into 4.10
Conflicts: src/libs/utils/mimetypes/mimeprovider.cpp Change-Id: If771d3fba60b670cb0de3a43c9039e24c74aabb1
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/utils/mimetypes/mimeprovider.cpp38
1 files changed, 16 insertions, 22 deletions
diff --git a/src/libs/utils/mimetypes/mimeprovider.cpp b/src/libs/utils/mimetypes/mimeprovider.cpp
index 46d3eb71bd..9c63c9d08e 100644
--- a/src/libs/utils/mimetypes/mimeprovider.cpp
+++ b/src/libs/utils/mimetypes/mimeprovider.cpp
@@ -784,28 +784,22 @@ void MimeXMLProvider::ensureLoaded()
{
if (!m_loaded /*|| shouldCheck()*/) {
m_loaded = true;
-// bool fdoXmlFound = false;
- QStringList allFiles;
-
-// const QStringList packageDirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QLatin1String("mime/packages"), QStandardPaths::LocateDirectory);
-// //qDebug() << "packageDirs=" << packageDirs;
-// for (const QString &packageDir : packageDirs) {
-// QDir dir(packageDir);
-// const QStringList files = dir.entryList(QDir::Files | QDir::NoDotAndDotDot);
-// //qDebug() << static_cast<const void *>(this) << packageDir << files;
-// if (!fdoXmlFound)
-// fdoXmlFound = files.contains(QLatin1String("freedesktop.org.xml"));
-// QStringList::const_iterator endIt(files.constEnd());
-// for (QStringList::const_iterator it(files.constBegin()); it != endIt; ++it) {
-// allFiles.append(packageDir + QLatin1Char('/') + *it);
-// }
-// }
-
-// if (!fdoXmlFound) {
-// // We could instead install the file as part of installing Qt?
- const char freedesktopOrgXml[] = ":/qt-project.org/qmime/packages/freedesktop.org.xml";
- allFiles.prepend(QLatin1String(freedesktopOrgXml));
-// }
+ QStringList allFiles = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation,
+ QStringLiteral("mime/packages/freedesktop.org.xml"),
+ QStandardPaths::LocateFile);
+
+ if (allFiles.isEmpty()) {
+ // System freedesktop.org.xml file not found, try to use the one in QtCore.
+ // This is private API and has changed in the past:
+ // - Qt 5.11 added "package" subdir in 7a5644d6481a3c1a7416772998ca4e60c977bfbd
+ // - Qt 5.13 added an option to not bundle it at all
+ const QString fdoXml5_11 = QStringLiteral(":/qt-project.org/qmime/packages/freedesktop.org.xml");
+ if (QFile::exists(fdoXml5_11))
+ allFiles << fdoXml5_11;
+ else
+ qFatal("Utils::MimeXMLProvider: could not find the system freedesktop.org.xml file "
+ "and QtCore does not have an accessible copy.");
+ }
m_nameMimeTypeMap.clear();
m_aliases.clear();