ProjectExplorerPlugin: Use one factory for all project managers

Change-Id: Ie2204cd82bf8e060136fd28098cce5affac2cbde
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
Daniel Teske
2014-07-17 14:25:04 +02:00
parent 3bb05f213f
commit 21500d384d

View File

@@ -1220,26 +1220,29 @@ void ProjectExplorerPlugin::extensionsInitialized()
const QString filterSeparator = QLatin1String(";;"); const QString filterSeparator = QLatin1String(";;");
QStringList filterStrings; QStringList filterStrings;
auto factory = new IDocumentFactory;
factory->setOpener([this](const QString &fileName) -> IDocument* {
QString errorMessage;
ProjectExplorerPlugin::instance()->openProject(fileName, &errorMessage);
if (!errorMessage.isEmpty())
QMessageBox::critical(Core::ICore::mainWindow(),
tr("Failed to open project"), errorMessage);
return 0;
});
foreach (IProjectManager *manager, projectManagers) { foreach (IProjectManager *manager, projectManagers) {
auto factory = new IDocumentFactory;
factory->addMimeType(manager->mimeType());
factory->setOpener([this](const QString &fileName) -> IDocument* {
QString errorMessage;
ProjectExplorerPlugin::instance()->openProject(fileName, &errorMessage);
if (!errorMessage.isEmpty())
QMessageBox::critical(Core::ICore::mainWindow(),
tr("Failed to open project"), errorMessage);
return 0;
});
const QString mimeType = manager->mimeType(); const QString mimeType = manager->mimeType();
factory->addMimeType(mimeType);
MimeType mime = MimeDatabase::findByType(mimeType); MimeType mime = MimeDatabase::findByType(mimeType);
allGlobPatterns.append(mime.globPatterns()); allGlobPatterns.append(mime.globPatterns());
filterStrings.append(mime.filterString()); filterStrings.append(mime.filterString());
d->m_profileMimeTypes += factory->mimeTypes(); d->m_profileMimeTypes += mimeType;
addAutoReleasedObject(factory);
} }
addAutoReleasedObject(factory);
filterStrings.prepend(MimeType::formatFilterString( filterStrings.prepend(MimeType::formatFilterString(
tr("All Projects"), allGlobPatterns)); tr("All Projects"), allGlobPatterns));
d->m_projectFilterString = filterStrings.join(filterSeparator); d->m_projectFilterString = filterStrings.join(filterSeparator);