Mimetypes: Remove unused API and move one function to DocumentManager

Change-Id: I97b104a75c91ce6dc4a05146b3e10c1b674f3ff0
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Eike Ziller
2022-02-18 15:33:32 +01:00
parent 505358cb82
commit 629ecc4f34
5 changed files with 15 additions and 59 deletions

View File

@@ -61,12 +61,6 @@
#include <algorithm>
#include <functional>
#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<QString> uniqueFilters;
const QList<MimeType> 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<MimeType> 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.

View File

@@ -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<int, QList<Internal::MimeMagicRule> > 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,

View File

@@ -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<QString> 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);

View File

@@ -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*

View File

@@ -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);
}