From 629ecc4f34880c1bbcb7f7cb78c794d55cf34a82 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 18 Feb 2022 15:33:32 +0100 Subject: [PATCH] Mimetypes: Remove unused API and move one function to DocumentManager Change-Id: I97b104a75c91ce6dc4a05146b3e10c1b674f3ff0 Reviewed-by: Qt CI Bot Reviewed-by: David Schulz --- src/libs/utils/mimetypes/mimedatabase.cpp | 53 ------------------- src/libs/utils/mimetypes/mimedatabase.h | 3 -- src/plugins/coreplugin/documentmanager.cpp | 15 +++++- src/plugins/coreplugin/documentmanager.h | 1 + .../studiowelcome/studiowelcomeplugin.cpp | 2 +- 5 files changed, 15 insertions(+), 59 deletions(-) diff --git a/src/libs/utils/mimetypes/mimedatabase.cpp b/src/libs/utils/mimetypes/mimedatabase.cpp index 35e0257e5e7..c24dd91d008 100644 --- a/src/libs/utils/mimetypes/mimedatabase.cpp +++ b/src/libs/utils/mimetypes/mimedatabase.cpp @@ -61,12 +61,6 @@ #include #include -#ifdef Q_OS_WIN -static struct {const char *source; const char *comment; } ALL_FILES_FILTER = QT_TRANSLATE_NOOP3("Core", "All Files (*.*)", "On Windows"); -#else -static struct {const char *source; const char *comment; } ALL_FILES_FILTER = QT_TRANSLATE_NOOP3("Core", "All Files (*)", "On Linux/macOS"); -#endif - using namespace Utils; using namespace Utils::Internal; @@ -347,53 +341,6 @@ void Utils::addMimeTypes(const QString &fileName, const QByteArray &data) xmlProvider->addData(fileName, data); } -QString Utils::allFiltersString(QString *allFilesFilter) -{ - MimeDatabase mdb; - QSet uniqueFilters; - const QList allMimeTypes = mdb.allMimeTypes(); - for (const MimeType &mt : allMimeTypes) { - const QString &filterString = mt.filterString(); - if (!filterString.isEmpty()) - uniqueFilters.insert(mt.filterString()); - } - QStringList filters; - for (const QString &filter : uniqueFilters) - filters.append(filter); - filters.sort(); - const QString allFiles = allFilesFilterString(); - if (allFilesFilter) - *allFilesFilter = allFiles; - - // Prepend all files filter - filters.prepend(allFiles); - - return filters.join(QLatin1String(";;")); -} - -QString Utils::allFilesFilterString() -{ - auto d = MimeDatabasePrivate::instance(); - if (d->m_startupPhase <= MimeDatabase::PluginsInitializing) - qWarning("Accessing MimeDatabase files filter strings before plugins are initialized"); - - return QCoreApplication::translate("Core", ALL_FILES_FILTER.source, ALL_FILES_FILTER.comment); -} - -QStringList Utils::allGlobPatterns() -{ - auto d = MimeDatabasePrivate::instance(); - if (d->m_startupPhase <= MimeDatabase::PluginsInitializing) - qWarning("Accessing MimeDatabase glob patterns before plugins are initialized"); - - MimeDatabase mdb; - QStringList patterns; - const QList allMimeTypes = mdb.allMimeTypes(); - for (const MimeType &mt : allMimeTypes) - patterns.append(mt.globPatterns()); - return patterns; -} - /*! \fn MimeType MimeDatabase::mimeTypeForName(const QString &nameOrAlias) const; Returns a MIME type for \a nameOrAlias or an invalid one if none found. diff --git a/src/libs/utils/mimetypes/mimedatabase.h b/src/libs/utils/mimetypes/mimedatabase.h index 9e217245421..47a9a740368 100644 --- a/src/libs/utils/mimetypes/mimedatabase.h +++ b/src/libs/utils/mimetypes/mimedatabase.h @@ -80,9 +80,6 @@ enum class MimeStartupPhase { QTCREATOR_UTILS_EXPORT void setMimeStartupPhase(MimeStartupPhase); QTCREATOR_UTILS_EXPORT void addMimeTypes(const QString &id, const QByteArray &data); -QTCREATOR_UTILS_EXPORT QString allFiltersString(QString *allFilesFilter = nullptr); -QTCREATOR_UTILS_EXPORT QString allFilesFilterString(); -QTCREATOR_UTILS_EXPORT QStringList allGlobPatterns(); QTCREATOR_UTILS_EXPORT QMap > magicRulesForMimeType(const MimeType &mimeType); // priority -> rules QTCREATOR_UTILS_EXPORT void setGlobPatternsForMimeType(const MimeType &mimeType, const QStringList &patterns); QTCREATOR_UTILS_EXPORT void setMagicRulesForMimeType(const MimeType &mimeType, diff --git a/src/plugins/coreplugin/documentmanager.cpp b/src/plugins/coreplugin/documentmanager.cpp index 43ddad0ceef..4b9190a45a8 100644 --- a/src/plugins/coreplugin/documentmanager.cpp +++ b/src/plugins/coreplugin/documentmanager.cpp @@ -781,6 +781,17 @@ QString DocumentManager::fileDialogFilter(QString *selectedFilter) return allDocumentFactoryFiltersString(selectedFilter); } +#ifdef Q_OS_WIN +static struct {const char *source; const char *comment; } ALL_FILES_FILTER = QT_TRANSLATE_NOOP3("Core", "All Files (*.*)", "On Windows"); +#else +static struct {const char *source; const char *comment; } ALL_FILES_FILTER = QT_TRANSLATE_NOOP3("Core", "All Files (*)", "On Linux/macOS"); +#endif + +QString DocumentManager::allFilesFilterString() +{ + return QCoreApplication::translate("Core", ALL_FILES_FILTER.source, ALL_FILES_FILTER.comment); +} + QString DocumentManager::allDocumentFactoryFiltersString(QString *allFilesFilter = nullptr) { QSet uniqueFilters; @@ -803,7 +814,7 @@ QString DocumentManager::allDocumentFactoryFiltersString(QString *allFilesFilter QStringList filters = Utils::toList(uniqueFilters); filters.sort(); - const QString allFiles = Utils::allFilesFilterString(); + const QString allFiles = allFilesFilterString(); if (allFilesFilter) *allFilesFilter = allFiles; filters.prepend(allFiles); @@ -825,7 +836,7 @@ FilePath DocumentManager::getSaveFileName(const QString &title, const FilePath & // specified. Otherwise the suffix must be one available in the selected filter. If // the name already ends with such suffix nothing needs to be done. But if not, the // first one from the filter is appended. - if (selectedFilter && *selectedFilter != Utils::allFilesFilterString()) { + if (selectedFilter && *selectedFilter != allFilesFilterString()) { // Mime database creates filter strings like this: Anything here (*.foo *.bar) const QRegularExpression regExp(QLatin1String(".*\\s+\\((.*)\\)$")); QRegularExpressionMatchIterator matchIt = regExp.globalMatch(*selectedFilter); diff --git a/src/plugins/coreplugin/documentmanager.h b/src/plugins/coreplugin/documentmanager.h index 46667cf8ded..3f0e2bebe2f 100644 --- a/src/plugins/coreplugin/documentmanager.h +++ b/src/plugins/coreplugin/documentmanager.h @@ -145,6 +145,7 @@ public: static void setFileDialogFilter(const QString &filter); static QString fileDialogFilter(QString *selectedFilter = nullptr); + static QString allFilesFilterString(); signals: /* Used to notify e.g. the code model to update the given files. Does *not* diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp index 72f6afcdb57..861695898c9 100644 --- a/src/plugins/studiowelcome/studiowelcomeplugin.cpp +++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp @@ -582,7 +582,7 @@ void StudioWelcomePlugin::extensionsInitialized() const QString filters = QString("Project (*.qmlproject);;UI file (*.ui.qml);;QML file " "(*.qml);;JavaScript file (*.js);;%1") - .arg(Utils::allFilesFilterString()); + .arg(Core::DocumentManager::allFilesFilterString()); Core::DocumentManager::setFileDialogFilter(filters); }