本文整理汇总了C++中utils::MimeDatabase类的典型用法代码示例。如果您正苦于以下问题:C++ MimeDatabase类的具体用法?C++ MimeDatabase怎么用?C++ MimeDatabase使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MimeDatabase类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: generateFiles
Core::GeneratedFiles GenericProjectWizard::generateFiles(const QWizard *w,
QString *errorMessage) const
{
Q_UNUSED(errorMessage)
const GenericProjectWizardDialog *wizard = qobject_cast<const GenericProjectWizardDialog *>(w);
const QString projectPath = wizard->path();
const QDir dir(projectPath);
const QString projectName = wizard->projectName();
const QString creatorFileName = QFileInfo(dir, projectName + QLatin1String(".creator")).absoluteFilePath();
const QString filesFileName = QFileInfo(dir, projectName + QLatin1String(".files")).absoluteFilePath();
const QString includesFileName = QFileInfo(dir, projectName + QLatin1String(".includes")).absoluteFilePath();
const QString configFileName = QFileInfo(dir, projectName + QLatin1String(".config")).absoluteFilePath();
const QStringList paths = wizard->selectedPaths();
Utils::MimeDatabase mdb;
Utils::MimeType headerTy = mdb.mimeTypeForName(QLatin1String("text/x-chdr"));
QStringList nameFilters = headerTy.globPatterns();
QStringList includePaths;
foreach (const QString &path, paths) {
QFileInfo fileInfo(path);
QDir thisDir(fileInfo.absoluteFilePath());
if (! thisDir.entryList(nameFilters, QDir::Files).isEmpty()) {
QString relative = dir.relativeFilePath(path);
if (relative.isEmpty())
relative = QLatin1Char('.');
includePaths.append(relative);
}
}
示例2: otherFile
// Switch between form ('ui') and source file ('cpp'):
// Find corresponding 'other' file, simply assuming it is in the same directory.
static QString otherFile()
{
// Determine mime type of current file.
const QString current = currentFile();
if (current.isEmpty())
return QString();
Utils::MimeDatabase mdb;
const Utils::MimeType currentMimeType = mdb.mimeTypeForFile(current);
if (!currentMimeType.isValid())
return QString();
// Determine potential suffixes of candidate files
// 'ui' -> 'cpp', 'cpp/h' -> 'ui'.
QStringList candidateSuffixes;
if (currentMimeType.matchesName(QLatin1String(FORM_MIMETYPE))) {
candidateSuffixes += mdb.mimeTypeForName(
QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE)).suffixes();
} else if (currentMimeType.matchesName(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE))
|| currentMimeType.matchesName(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE))) {
candidateSuffixes += mdb.mimeTypeForName(QLatin1String(FORM_MIMETYPE)).suffixes();
} else {
return QString();
}
// Try to find existing file with desired suffix
const QFileInfo currentFI(current);
const QString currentBaseName = currentFI.path() + QLatin1Char('/')
+ currentFI.baseName() + QLatin1Char('.');
foreach (const QString &candidateSuffix, candidateSuffixes) {
const QFileInfo fi(currentBaseName + candidateSuffix);
if (fi.isFile())
return fi.absoluteFilePath();
}
return QString();
}
示例3: reset
void CustomWizardContext::reset()
{
// Basic replacement fields: Suffixes and date/time.
const QDate currentDate = QDate::currentDate();
const QTime currentTime = QTime::currentTime();
baseReplacements.clear();
Utils::MimeDatabase mdb;
baseReplacements.insert(QLatin1String("CppSourceSuffix"),
mdb.mimeTypeForName(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE))
.preferredSuffix());
baseReplacements.insert(QLatin1String("CppHeaderSuffix"),
mdb.mimeTypeForName(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE))
.preferredSuffix());
baseReplacements.insert(QLatin1String("CurrentDate"),
currentDate.toString(Qt::ISODate));
baseReplacements.insert(QLatin1String("CurrentTime"),
currentTime.toString(Qt::ISODate));
baseReplacements.insert(QLatin1String("CurrentDate:ISO"),
currentDate.toString(Qt::ISODate));
baseReplacements.insert(QLatin1String("CurrentTime:ISO"),
currentTime.toString(Qt::ISODate));
baseReplacements.insert(QLatin1String("CurrentDate:RFC"),
currentDate.toString(Qt::RFC2822Date));
baseReplacements.insert(QLatin1String("CurrentTime:RFC"),
currentTime.toString(Qt::RFC2822Date));
baseReplacements.insert(QLatin1String("CurrentDate:Locale"),
currentDate.toString(Qt::DefaultLocaleShortDate));
baseReplacements.insert(QLatin1String("CurrentTime:Locale"),
currentTime.toString(Qt::DefaultLocaleShortDate));
replacements.clear();
path.clear();
targetPath.clear();
}
示例4: priority
int ROSBuildConfigurationFactory::priority(const Kit *k, const QString &projectPath) const
{
Utils::MimeDatabase mdb;
if (k && mdb.mimeTypeForFile(projectPath).matchesName(QLatin1String(Constants::ROSMIMETYPE)))
return 0;
return -1;
}
示例5: setupProjectFiles
void JsonKitsPage::setupProjectFiles(const JsonWizard::GeneratorFiles &files)
{
Project *project = 0;
QList<IProjectManager *> managerList = ExtensionSystem::PluginManager::getObjects<IProjectManager>();
foreach (const JsonWizard::GeneratorFile &f, files) {
if (f.file.attributes() & GeneratedFile::OpenProjectAttribute) {
QString errorMessage;
QString path = f.file.path();
const QFileInfo fi(path);
if (fi.exists())
path = fi.canonicalFilePath();
Utils::MimeDatabase mdb;
Utils::MimeType mt = mdb.mimeTypeForFile(fi);
if (!mt.isValid())
continue;
auto manager = Utils::findOrDefault(managerList, Utils::equal(&IProjectManager::mimeType, mt.name()));
project = manager ? manager->openProject(path, &errorMessage) : 0;
if (project) {
if (setupProject(project))
project->saveSettings();
delete project;
project = 0;
}
}
}
}
示例6: priority
int CMakeBuildConfigurationFactory::priority(const ProjectExplorer::Kit *k, const QString &projectPath) const
{
Utils::MimeDatabase mdb;
if (k && mdb.mimeTypeForFile(projectPath).matchesName(QLatin1String(Constants::CMAKEPROJECTMIMETYPE)))
return 0;
return -1;
}
示例7: addMapping
void ProjectFileAdder::addMapping(const char *mimeName, ProjectFile::Kind kind)
{
Utils::MimeDatabase mdb;
Utils::MimeType mimeType = mdb.mimeTypeForName(QLatin1String(mimeName));
if (mimeType.isValid())
m_mimeNameMapping.insert(mimeType.name(), kind);
}
示例8: updateEnabled
void QmlProjectRunConfiguration::updateEnabled()
{
bool qmlFileFound = false;
if (mainScriptSource() == FileInEditor) {
Utils::MimeDatabase mimeDataBase;
IDocument *document = EditorManager::currentDocument();
Utils::MimeType mainScriptMimeType = mimeDataBase.mimeTypeForFile(mainScript());
if (document) {
m_currentFileFilename = document->filePath().toString();
if (mainScriptMimeType.matchesName(QLatin1String(ProjectExplorer::Constants::QML_MIMETYPE)))
qmlFileFound = true;
}
if (!document
|| mainScriptMimeType.matchesName(QLatin1String(QmlJSTools::Constants::QMLPROJECT_MIMETYPE))) {
// find a qml file with lowercase filename. This is slow, but only done
// in initialization/other border cases.
foreach (const QString &filename, target()->project()->files(Project::AllFiles)) {
const QFileInfo fi(filename);
if (!filename.isEmpty() && fi.baseName()[0].isLower()
&& mimeDataBase.mimeTypeForFile(fi).matchesName(QLatin1String(ProjectExplorer::Constants::QML_MIMETYPE)))
{
m_currentFileFilename = filename;
qmlFileFound = true;
break;
}
}
}
示例9: maybeAdd
bool ProjectFileAdder::maybeAdd(const QString &path)
{
Utils::MimeDatabase mdb;
const Utils::MimeType mt = mdb.mimeTypeForFile(path);
if (m_mimeNameMapping.contains(mt.name())) {
m_files << ProjectFile(path, m_mimeNameMapping.value(mt.name()));
return true;
}
return false;
}
示例10: QWidget
CppFileSettingsWidget::CppFileSettingsWidget(QWidget *parent) :
QWidget(parent),
m_ui(new Internal::Ui::CppFileSettingsPage)
{
m_ui->setupUi(this);
// populate suffix combos
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);
}
示例11: priority
static bool priority(const QStringList &files)
{
if (files.isEmpty())
return false;
Utils::MimeDatabase mdb;
QString type = mdb.mimeTypeForFile(files.at(0)).name();
if (type.startsWith(QLatin1String("image/"))
|| type == QLatin1String(QmlJSTools::Constants::QML_MIMETYPE)
|| type == QLatin1String(QmlJSTools::Constants::JS_MIMETYPE))
return true;
return false;
}
示例12: preferredSuffix
QString BaseFileWizardFactory::preferredSuffix(const QString &mimeType)
{
QString rc;
Utils::MimeDatabase mdb;
Utils::MimeType mt = mdb.mimeTypeForName(mimeType);
if (mt.isValid())
rc = mt.preferredSuffix();
if (rc.isEmpty())
qWarning("%s: WARNING: Unable to find a preferred suffix for %s.",
Q_FUNC_INFO, mimeType.toUtf8().constData());
return rc;
}
示例13: isApplicable
bool AbstractSettings::isApplicable(const Core::IDocument *document) const
{
if (!document)
return false;
if (m_supportedMimeTypes.isEmpty())
return true;
const Utils::MimeDatabase mdb;
const Utils::MimeType documentMimeType = mdb.mimeTypeForName(document->mimeType());
return Utils::anyOf(m_supportedMimeTypes, [&documentMimeType](const QString &mime) {
return documentMimeType.inherits(mime);
});
}
示例14: matchingCandidateSuffixes
// Return the suffixes that should be checked when trying to find a
// 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 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 mdb.mimeTypeForName(QLatin1String(Constants::C_HEADER_MIMETYPE)).suffixes();
case ProjectFile::CXXSource:
case ProjectFile::ObjCXXSource:
case ProjectFile::CudaSource:
case ProjectFile::OpenCLSource:
return mdb.mimeTypeForName(QLatin1String(Constants::CPP_HEADER_MIMETYPE)).suffixes();
default:
return QStringList();
}
}
示例15: definitionIdByMimeType
QString Manager::definitionIdByMimeType(const Utils::MimeType &mimeType) const
{
Utils::MimeDatabase mdb;
QList<Utils::MimeType> queue;
queue.append(mimeType);
while (!queue.isEmpty()) {
const Utils::MimeType mt = queue.takeFirst();
const QString id = m_register.m_idByMimeType.value(mt.name());
if (!id.isEmpty())
return id;
foreach (const QString &parent, mt.parentMimeTypes()) {
const Utils::MimeType parentMt = mdb.mimeTypeForName(parent);
if (parentMt.isValid())
queue.append(parentMt);
}
}
return QString();
}