ParserTreeItem::ConstPtr Parser::parse() { QTime time; if (debug) time.start(); ParserTreeItem::Ptr rootItem(new ParserTreeItem()); // check all projects QList<ProjectExplorer::Project *> projects = getProjectList(); foreach (const ProjectExplorer::Project *prj, projects) { if (!prj) continue; ParserTreeItem::Ptr item; if (!d->flatMode) item = ParserTreeItem::Ptr(new ParserTreeItem()); QString prjName(prj->displayName()); QString prjType(prjName); if (prj->document()) prjType = prj->document()->filePath(); SymbolInformation inf(prjName, prjType); QStringList projectList = addProjectNode(item, prj->rootProjectNode()); if (d->flatMode) { // use prj path (prjType) as a project id // addProject(item, prj->files(ProjectExplorer::Project::ExcludeGeneratedFiles), prjType); //! \todo return back, works too long ParserTreeItem::Ptr flatItem = createFlatTree(projectList); item.swap(flatItem); } item->setIcon(prj->rootProjectNode()->icon()); rootItem->appendChild(item, inf); } if (debug) qDebug() << "Class View:" << QDateTime::currentDateTime().toString() << "Parsed in " << time.elapsed() << "msecs."; return rootItem; }
ParserTreeItem::ConstPtr Parser::parse() { QTime time; if (debug) time.start(); ParserTreeItem::Ptr rootItem(new ParserTreeItem()); // check all projects foreach (const Project *prj, SessionManager::projects()) { if (!prj) continue; ParserTreeItem::Ptr item; QString prjName(prj->displayName()); QString prjType(prjName); if (prj->document()) prjType = prj->projectFilePath().toString(); SymbolInformation inf(prjName, prjType); item = ParserTreeItem::Ptr(new ParserTreeItem()); if (d->flatMode) addFlatTree(item, prj->rootProjectNode()); else addProjectNode(item, prj->rootProjectNode()); item->setIcon(prj->rootProjectNode()->icon()); rootItem->appendChild(item, inf); } if (debug) qDebug() << "Class View:" << QDateTime::currentDateTime().toString() << "Parsed in " << time.elapsed() << "msecs."; return rootItem; }