forked from qt-creator/qt-creator
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:
@@ -1220,26 +1220,29 @@ void ProjectExplorerPlugin::extensionsInitialized()
|
||||
|
||||
const QString filterSeparator = QLatin1String(";;");
|
||||
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) {
|
||||
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();
|
||||
factory->addMimeType(mimeType);
|
||||
MimeType mime = MimeDatabase::findByType(mimeType);
|
||||
allGlobPatterns.append(mime.globPatterns());
|
||||
filterStrings.append(mime.filterString());
|
||||
|
||||
d->m_profileMimeTypes += factory->mimeTypes();
|
||||
addAutoReleasedObject(factory);
|
||||
d->m_profileMimeTypes += mimeType;
|
||||
}
|
||||
|
||||
addAutoReleasedObject(factory);
|
||||
|
||||
filterStrings.prepend(MimeType::formatFilterString(
|
||||
tr("All Projects"), allGlobPatterns));
|
||||
d->m_projectFilterString = filterStrings.join(filterSeparator);
|
||||
|
||||
Reference in New Issue
Block a user