diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index ff8ac82dcea6f1d1e6485c9c5291fee2fc21aa11..d6baffdfd3056c9eab1fd620c0322fecb7567c31 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -850,24 +850,15 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er return true; } -// Find a factory by file mime type in a sequence of factories -template <class Factory, class Iterator> - Factory *findFactory(const QString &mimeType, Iterator i1, Iterator i2) -{ - for ( ; i1 != i2; ++i2) { - Factory *f = *i1; - if (f->mimeTypes().contains(mimeType)) - return f; - } - return 0; -} - -ProjectFileFactory * ProjectExplorerPlugin::findProjectFileFactory(const QString &filename) const +ProjectFileFactory *ProjectExplorerPlugin::findProjectFileFactory(const QString &filename) const { // Find factory - if (const Core::MimeType mt = Core::ICore::instance()->mimeDatabase()->findByFile(QFileInfo(filename))) - if (ProjectFileFactory *pf = findFactory<ProjectFileFactory>(mt.type(), d->m_fileFactories.constBegin(), d->m_fileFactories.constEnd())) - return pf; + if (const Core::MimeType mt = Core::ICore::instance()->mimeDatabase()->findByFile(QFileInfo(filename))) { + const QString mimeType = mt.type(); + foreach (ProjectFileFactory *f, d->m_fileFactories) + if (f->mimeTypes().contains(mimeType)) + return f; + } qWarning("Unable to find project file factory for '%s'", filename.toUtf8().constData()); return 0; }