forked from qt-creator/qt-creator
Use new mime database
Change-Id: I4305872b6b11ef3e8a364280ffa5209a5a793600 Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This commit is contained in:
@@ -49,6 +49,7 @@
|
||||
#include <texteditor/texteditorsettings.h>
|
||||
#include <texteditor/completionsettings.h>
|
||||
|
||||
#include <utils/mimetypes/mimedatabase.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <cplusplus/BackwardsScanner.h>
|
||||
@@ -1120,9 +1121,8 @@ bool InternalCppCompletionAssistProcessor::completeInclude(const QTextCursor &cu
|
||||
if (!headerPaths.contains(currentFilePath))
|
||||
headerPaths.append(currentFilePath);
|
||||
|
||||
const Core::MimeType mimeType =
|
||||
Core::MimeDatabase::findByType(QLatin1String("text/x-c++hdr"));
|
||||
const QStringList suffixes = mimeType.suffixes();
|
||||
Utils::MimeDatabase mdb;
|
||||
const QStringList suffixes = mdb.mimeTypeForName(QLatin1String("text/x-c++hdr")).suffixes();
|
||||
|
||||
foreach (const ProjectPart::HeaderPath &headerPath, headerPaths) {
|
||||
QString realPath = headerPath.path;
|
||||
@@ -1171,9 +1171,10 @@ bool InternalCppCompletionAssistProcessor::objcKeywordsWanted() const
|
||||
|
||||
const QString fileName = m_interface->fileName();
|
||||
|
||||
const QString mt = Core::MimeDatabase::findByFile(fileName).type();
|
||||
return mt == QLatin1String(CppTools::Constants::OBJECTIVE_C_SOURCE_MIMETYPE)
|
||||
|| mt == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE);
|
||||
Utils::MimeDatabase mdb;
|
||||
const Utils::MimeType mt = mdb.mimeTypeForFile(fileName);
|
||||
return mt.matchesName(QLatin1String(CppTools::Constants::OBJECTIVE_C_SOURCE_MIMETYPE))
|
||||
|| mt.matchesName(QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE));
|
||||
}
|
||||
|
||||
int InternalCppCompletionAssistProcessor::startCompletionInternal(const QString &fileName,
|
||||
|
||||
@@ -36,11 +36,11 @@
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <coreplugin/mimedatabase.h>
|
||||
#include <cppeditor/cppeditorconstants.h>
|
||||
|
||||
#include <utils/environment.h>
|
||||
#include <utils/fileutils.h>
|
||||
#include <utils/mimetypes/mimedatabase.h>
|
||||
|
||||
#include <QSettings>
|
||||
#include <QDebug>
|
||||
@@ -118,8 +118,17 @@ void CppFileSettings::fromSettings(QSettings *s)
|
||||
|
||||
bool CppFileSettings::applySuffixesToMimeDB()
|
||||
{
|
||||
return Core::MimeDatabase::setPreferredSuffix(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE), sourceSuffix)
|
||||
&& Core::MimeDatabase::setPreferredSuffix(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE), headerSuffix);
|
||||
Utils::MimeDatabase mdb;
|
||||
Utils::MimeType mt;
|
||||
mt = mdb.mimeTypeForName(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE));
|
||||
if (!mt.isValid())
|
||||
return false;
|
||||
mt.setPreferredSuffix(sourceSuffix);
|
||||
mt = mdb.mimeTypeForName(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE));
|
||||
if (!mt.isValid())
|
||||
return false;
|
||||
mt.setPreferredSuffix(headerSuffix);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CppFileSettings::equals(const CppFileSettings &rhs) const
|
||||
@@ -255,13 +264,18 @@ CppFileSettingsWidget::CppFileSettingsWidget(QWidget *parent) :
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
// populate suffix combos
|
||||
if (const Core::MimeType sourceMt = Core::MimeDatabase::findByType(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE)))
|
||||
Utils::MimeDatabase mdb;
|
||||
const Utils::MimeType sourceMt = mdb.mimeTypeForName(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE));
|
||||
if (sourceMt.isValid()) {
|
||||
foreach (const QString &suffix, sourceMt.suffixes())
|
||||
m_ui->sourceSuffixComboBox->addItem(suffix);
|
||||
}
|
||||
|
||||
if (const Core::MimeType headerMt = Core::MimeDatabase::findByType(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE)))
|
||||
const Utils::MimeType headerMt = mdb.mimeTypeForName(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE));
|
||||
if (headerMt.isValid()) {
|
||||
foreach (const QString &suffix, headerMt.suffixes())
|
||||
m_ui->headerSuffixComboBox->addItem(suffix);
|
||||
}
|
||||
m_ui->licenseTemplatePathChooser->setExpectedKind(Utils::PathChooser::File);
|
||||
m_ui->licenseTemplatePathChooser->setHistoryCompleter(QLatin1String("Cpp.LicenseTemplate.History"));
|
||||
m_ui->licenseTemplatePathChooser->addButton(tr("Edit..."), this, SLOT(slotEdit()));
|
||||
|
||||
@@ -33,7 +33,8 @@
|
||||
#include "cpptoolsconstants.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
|
||||
#include <utils/mimetypes/mimedatabase.h>
|
||||
#
|
||||
#include <QDebug>
|
||||
|
||||
namespace CppTools {
|
||||
@@ -51,11 +52,11 @@ ProjectFile::ProjectFile(const QString &file, Kind kind)
|
||||
|
||||
ProjectFile::Kind ProjectFile::classify(const QString &file)
|
||||
{
|
||||
const QFileInfo fi(file);
|
||||
const Core::MimeType mimeType = Core::MimeDatabase::findByFile(fi);
|
||||
if (!mimeType)
|
||||
Utils::MimeDatabase mdb;
|
||||
const Utils::MimeType mimeType = mdb.mimeTypeForFile(file);
|
||||
if (!mimeType.isValid())
|
||||
return Unclassified;
|
||||
const QString mt = mimeType.type();
|
||||
const QString mt = mimeType.name();
|
||||
if (mt == QLatin1String(CppTools::Constants::C_SOURCE_MIMETYPE))
|
||||
return CSource;
|
||||
if (mt == QLatin1String(CppTools::Constants::C_HEADER_MIMETYPE))
|
||||
@@ -141,20 +142,22 @@ ProjectFileAdder::~ProjectFileAdder()
|
||||
|
||||
bool ProjectFileAdder::maybeAdd(const QString &path)
|
||||
{
|
||||
m_fileInfo.setFile(path);
|
||||
foreach (const Pair &pair, m_mapping)
|
||||
if (pair.first.matchesFile(path)) {
|
||||
m_files << ProjectFile(path, pair.second);
|
||||
return true;
|
||||
}
|
||||
const Utils::MimeType mt = Utils::MimeDatabase::bestMatch(path, m_mimeTypes);
|
||||
if (mt.isValid()) {
|
||||
m_files << ProjectFile(path, m_mimeNameMapping.value(mt.name()));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void ProjectFileAdder::addMapping(const char *mimeName, ProjectFile::Kind kind)
|
||||
{
|
||||
Core::MimeType mimeType = Core::MimeDatabase::findByType(QLatin1String(mimeName));
|
||||
if (!mimeType.isNull())
|
||||
m_mapping.append(Pair(mimeType, kind));
|
||||
Utils::MimeDatabase mdb;
|
||||
Utils::MimeType mimeType = mdb.mimeTypeForName(QLatin1String(mimeName));
|
||||
if (mimeType.isValid()) {
|
||||
m_mimeNameMapping.insert(mimeType.name(), kind);
|
||||
m_mimeTypes.append(mimeType);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
@@ -33,8 +33,10 @@
|
||||
|
||||
#include "cpptools_global.h"
|
||||
|
||||
#include <coreplugin/mimedatabase.h>
|
||||
#include <utils/mimetypes/mimetype.h>
|
||||
|
||||
#include <QHash>
|
||||
#include <QList>
|
||||
#include <QString>
|
||||
|
||||
namespace CppTools {
|
||||
@@ -81,13 +83,12 @@ public:
|
||||
bool maybeAdd(const QString &path);
|
||||
|
||||
private:
|
||||
typedef QPair<Core::MimeType, ProjectFile::Kind> Pair;
|
||||
|
||||
void addMapping(const char *mimeName, ProjectFile::Kind kind);
|
||||
|
||||
QList<ProjectFile> &m_files;
|
||||
QList<Pair> m_mapping;
|
||||
QFileInfo m_fileInfo;
|
||||
QHash<QString, ProjectFile::Kind> m_mimeNameMapping;
|
||||
QList<Utils::MimeType> m_mimeTypes;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
#include <utils/fileutils.h>
|
||||
#include <utils/hostosinfo.h>
|
||||
#include <utils/macroexpander.h>
|
||||
#include <utils/mimetypes/mimedatabase.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QtPlugin>
|
||||
@@ -270,24 +271,25 @@ static QStringList findFilesInProject(const QString &name,
|
||||
// source belonging to a header and vice versa
|
||||
static QStringList matchingCandidateSuffixes(ProjectFile::Kind kind)
|
||||
{
|
||||
Utils::MimeDatabase mdb;
|
||||
switch (kind) {
|
||||
// Note that C/C++ headers are undistinguishable
|
||||
case ProjectFile::CHeader:
|
||||
case ProjectFile::CXXHeader:
|
||||
case ProjectFile::ObjCHeader:
|
||||
case ProjectFile::ObjCXXHeader:
|
||||
return MimeDatabase::findByType(QLatin1String(Constants::C_SOURCE_MIMETYPE)).suffixes()
|
||||
+ MimeDatabase::findByType(QLatin1String(Constants::CPP_SOURCE_MIMETYPE)).suffixes()
|
||||
+ MimeDatabase::findByType(QLatin1String(Constants::OBJECTIVE_C_SOURCE_MIMETYPE)).suffixes()
|
||||
+ MimeDatabase::findByType(QLatin1String(Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)).suffixes();
|
||||
return mdb.mimeTypeForName(QLatin1String(Constants::C_SOURCE_MIMETYPE)).suffixes()
|
||||
+ mdb.mimeTypeForName(QLatin1String(Constants::CPP_SOURCE_MIMETYPE)).suffixes()
|
||||
+ mdb.mimeTypeForName(QLatin1String(Constants::OBJECTIVE_C_SOURCE_MIMETYPE)).suffixes()
|
||||
+ mdb.mimeTypeForName(QLatin1String(Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)).suffixes();
|
||||
case ProjectFile::CSource:
|
||||
case ProjectFile::ObjCSource:
|
||||
return MimeDatabase::findByType(QLatin1String(Constants::C_HEADER_MIMETYPE)).suffixes();
|
||||
return mdb.mimeTypeForName(QLatin1String(Constants::C_HEADER_MIMETYPE)).suffixes();
|
||||
case ProjectFile::CXXSource:
|
||||
case ProjectFile::ObjCXXSource:
|
||||
case ProjectFile::CudaSource:
|
||||
case ProjectFile::OpenCLSource:
|
||||
return MimeDatabase::findByType(QLatin1String(Constants::CPP_HEADER_MIMETYPE)).suffixes();
|
||||
return mdb.mimeTypeForName(QLatin1String(Constants::CPP_HEADER_MIMETYPE)).suffixes();
|
||||
default:
|
||||
return QStringList();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user