diff options
author | Tim Jenssen <tim.jenssen@qt.io> | 2017-03-01 17:53:15 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2017-03-02 09:31:23 +0000 |
commit | f2b8e9acd1c710fa2e24bf5b73d36041893041f0 (patch) | |
tree | 24bb6d301e004f0e151722d0fe62413bd3ce9c95 /src/plugins | |
parent | 0a09ba7319d56d0d77175bf35399fbb776c20d1b (diff) | |
download | qt-creator-f2b8e9acd1c710fa2e24bf5b73d36041893041f0.tar.gz |
SessionManager: Clean up methods around projects
Clean up methods around projects() and update its usages to modern
language standards.
Change-Id: Ia0a4574d014ce41e0d511a392e4eed4680981d0e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/plugins')
18 files changed, 54 insertions, 52 deletions
diff --git a/src/plugins/android/androidmanifesteditorwidget.cpp b/src/plugins/android/androidmanifesteditorwidget.cpp index 9d7bb67662..70d1ece18e 100644 --- a/src/plugins/android/androidmanifesteditorwidget.cpp +++ b/src/plugins/android/androidmanifesteditorwidget.cpp @@ -86,7 +86,7 @@ bool checkPackageName(const QString &packageName) Project *androidProject(const Utils::FileName &fileName) { - foreach (Project *project, SessionManager::projects()) { + for (Project *project : SessionManager::projects()) { if (!project->activeTarget()) continue; Kit *kit = project->activeTarget()->kit(); diff --git a/src/plugins/classview/classviewparser.cpp b/src/plugins/classview/classviewparser.cpp index c9f7080511..901edacf91 100644 --- a/src/plugins/classview/classviewparser.cpp +++ b/src/plugins/classview/classviewparser.cpp @@ -284,10 +284,7 @@ ParserTreeItem::ConstPtr Parser::parse() ParserTreeItem::Ptr rootItem(new ParserTreeItem()); // check all projects - foreach (const Project *prj, SessionManager::projects()) { - if (!prj) - continue; - + for (const Project *prj : SessionManager::projects()) { ParserTreeItem::Ptr item; QString prjName(prj->displayName()); QString prjType(prjName); @@ -644,10 +641,8 @@ void Parser::resetData(const CPlusPlus::Snapshot &snapshot) QStringList fileList; // check all projects - foreach (const Project *prj, SessionManager::projects()) { - if (prj) - fileList += prj->files(Project::SourceFiles); - } + for (const Project *prj : SessionManager::projects()) + fileList += prj->files(Project::SourceFiles); setFileList(fileList); emit resetDataDone(); diff --git a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp index 39b892d966..11b7696bae 100644 --- a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp +++ b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp @@ -60,7 +60,7 @@ CMakeLocatorFilter::CMakeLocatorFilter() void CMakeLocatorFilter::prepareSearch(const QString &entry) { m_result.clear(); - foreach (Project *p, SessionManager::projects()) { + for (Project *p : SessionManager::projects()) { CMakeProject *cmakeProject = qobject_cast<CMakeProject *>(p); if (!cmakeProject) continue; diff --git a/src/plugins/cpptools/cppincludesfilter.cpp b/src/plugins/cpptools/cppincludesfilter.cpp index 053ad8d70a..3f8c2d6af7 100644 --- a/src/plugins/cpptools/cppincludesfilter.cpp +++ b/src/plugins/cpptools/cppincludesfilter.cpp @@ -158,7 +158,7 @@ void CppIncludesFilter::prepareSearch(const QString &entry) if (m_needsUpdate) { m_needsUpdate = false; QSet<QString> seedPaths; - foreach (Project *project, SessionManager::projects()) { + for (Project *project : SessionManager::projects()) { foreach (const QString &filePath, project->files(Project::AllFiles)) seedPaths.insert(filePath); } diff --git a/src/plugins/cpptools/symbolsfindfilter.cpp b/src/plugins/cpptools/symbolsfindfilter.cpp index 78d8dda01c..104cac2ba8 100644 --- a/src/plugins/cpptools/symbolsfindfilter.cpp +++ b/src/plugins/cpptools/symbolsfindfilter.cpp @@ -132,7 +132,7 @@ void SymbolsFindFilter::startSearch(SearchResult *search) SymbolSearcher::Parameters parameters = search->userData().value<SymbolSearcher::Parameters>(); QSet<QString> projectFileNames; if (parameters.scope == SymbolSearcher::SearchProjectsOnly) { - foreach (ProjectExplorer::Project *project, ProjectExplorer::SessionManager::projects()) + for (ProjectExplorer::Project *project : ProjectExplorer::SessionManager::projects()) projectFileNames += project->files(ProjectExplorer::Project::AllFiles).toSet(); } diff --git a/src/plugins/designer/resourcehandler.cpp b/src/plugins/designer/resourcehandler.cpp index 8a3f905331..0a8b913392 100644 --- a/src/plugins/designer/resourcehandler.cpp +++ b/src/plugins/designer/resourcehandler.cpp @@ -60,7 +60,7 @@ void ResourceHandler::ensureInitialized() connect(p, &Project::fileListChanged, this, &ResourceHandler::updateResources); }; - foreach (Project *p, SessionManager::projects()) + for (Project *p : SessionManager::projects()) connector(p); connect(SessionManager::instance(), &SessionManager::projectAdded, this, connector); diff --git a/src/plugins/modeleditor/componentviewcontroller.cpp b/src/plugins/modeleditor/componentviewcontroller.cpp index 86e9df81b7..c893967122 100644 --- a/src/plugins/modeleditor/componentviewcontroller.cpp +++ b/src/plugins/modeleditor/componentviewcontroller.cpp @@ -255,7 +255,7 @@ bool UpdateIncludeDependenciesVisitor::haveMatchingStereotypes(const qmt::MObjec QStringList UpdateIncludeDependenciesVisitor::findFilePathOfComponent(const qmt::MComponent *component) { QMultiHash<QString, Node> filePaths; - foreach (const ProjectExplorer::Project *project, ProjectExplorer::SessionManager::projects()) { + for (const ProjectExplorer::Project *project : ProjectExplorer::SessionManager::projects()) { ProjectExplorer::ProjectNode *projectNode = project->rootProjectNode(); if (projectNode) collectElementPaths(projectNode, &filePaths); diff --git a/src/plugins/projectexplorer/allprojectsfilter.cpp b/src/plugins/projectexplorer/allprojectsfilter.cpp index fa82b38052..f03e5eef49 100644 --- a/src/plugins/projectexplorer/allprojectsfilter.cpp +++ b/src/plugins/projectexplorer/allprojectsfilter.cpp @@ -58,7 +58,7 @@ void AllProjectsFilter::prepareSearch(const QString &entry) Q_UNUSED(entry) if (!fileIterator()) { QStringList paths; - foreach (Project *project, SessionManager::projects()) + for (Project *project : SessionManager::projects()) paths.append(project->files(Project::AllFiles)); Utils::sort(paths); setFileIterator(new BaseFileFilter::ListIterator(paths)); diff --git a/src/plugins/projectexplorer/currentprojectfind.cpp b/src/plugins/projectexplorer/currentprojectfind.cpp index c67c26a62f..b595f8f041 100644 --- a/src/plugins/projectexplorer/currentprojectfind.cpp +++ b/src/plugins/projectexplorer/currentprojectfind.cpp @@ -79,7 +79,7 @@ Utils::FileIterator *CurrentProjectFind::files(const QStringList &nameFilters, QTC_ASSERT(additionalParameters.isValid(), return new Utils::FileListIterator(QStringList(), QList<QTextCodec *>())); QString projectFile = additionalParameters.toString(); - foreach (Project *project, SessionManager::projects()) { + for (Project *project : SessionManager::projects()) { if (project->document() && projectFile == project->projectFilePath().toString()) return filesForProjects(nameFilters, exclusionFilters, QList<Project *>() << project); } @@ -105,7 +105,7 @@ void CurrentProjectFind::recheckEnabled() if (!search) return; QString projectFile = getAdditionalParameters(search).toString(); - foreach (Project *project, SessionManager::projects()) { + for (Project *project : SessionManager::projects()) { if (projectFile == project->projectFilePath().toString()) { search->setSearchAgainEnabled(true); return; diff --git a/src/plugins/projectexplorer/miniprojecttargetselector.cpp b/src/plugins/projectexplorer/miniprojecttargetselector.cpp index 357494ebcb..1826ef5b5f 100644 --- a/src/plugins/projectexplorer/miniprojecttargetselector.cpp +++ b/src/plugins/projectexplorer/miniprojecttargetselector.cpp @@ -1172,7 +1172,7 @@ void MiniProjectTargetSelector::updateProjectListVisible() void MiniProjectTargetSelector::updateTargetListVisible() { int maxCount = 0; - foreach (Project *p, SessionManager::projects()) + for (Project *p : SessionManager::projects()) maxCount = qMax(p->targets().size(), maxCount); bool visible = maxCount > 1; @@ -1185,7 +1185,7 @@ void MiniProjectTargetSelector::updateTargetListVisible() void MiniProjectTargetSelector::updateBuildListVisible() { int maxCount = 0; - foreach (Project *p, SessionManager::projects()) + for (Project *p : SessionManager::projects()) foreach (Target *t, p->targets()) maxCount = qMax(t->buildConfigurations().size(), maxCount); @@ -1199,7 +1199,7 @@ void MiniProjectTargetSelector::updateBuildListVisible() void MiniProjectTargetSelector::updateDeployListVisible() { int maxCount = 0; - foreach (Project *p, SessionManager::projects()) + for (Project *p : SessionManager::projects()) foreach (Target *t, p->targets()) maxCount = qMax(t->deployConfigurations().size(), maxCount); @@ -1213,7 +1213,7 @@ void MiniProjectTargetSelector::updateDeployListVisible() void MiniProjectTargetSelector::updateRunListVisible() { int maxCount = 0; - foreach (Project *p, SessionManager::projects()) + for (Project *p : SessionManager::projects()) foreach (Target *t, p->targets()) maxCount = qMax(t->runConfigurations().size(), maxCount); @@ -1493,7 +1493,7 @@ void MiniProjectTargetSelector::updateActionAndSummary() Project *project = SessionManager::startupProject(); if (project) { projectName = project->displayName(); - foreach (Project *p, SessionManager::projects()) { + for (Project *p : SessionManager::projects()) { if (p != project && p->displayName() == projectName) { fileName = project->projectFilePath().toUserOutput(); break; diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index d0880a1747..f18dd79a5f 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -1572,7 +1572,7 @@ void ProjectExplorerPluginPrivate::savePersistentSettings() return; if (!SessionManager::loadingSession()) { - foreach (Project *pro, SessionManager::projects()) + for (Project *pro : SessionManager::projects()) pro->saveSettings(); SessionManager::save(); @@ -1688,7 +1688,7 @@ ProjectExplorerPlugin::OpenProjectResult ProjectExplorerPlugin::openProjects(con const QFileInfo fi(fileName); const QString filePath = fi.absoluteFilePath(); bool found = false; - foreach (Project *pi, SessionManager::projects()) { + for (Project *pi : SessionManager::projects()) { if (filePath == pi->projectFilePath().toString()) { alreadyOpen.append(pi); found = true; @@ -2866,7 +2866,7 @@ void ProjectExplorerPluginPrivate::updateUnloadProjectMenu() ActionContainer *aci = ActionManager::actionContainer(Constants::M_UNLOADPROJECTS); QMenu *menu = aci->menu(); menu->clear(); - foreach (Project *project, SessionManager::projects()) { + for (Project *project : SessionManager::projects()) { QAction *action = menu->addAction(tr("Close Project \"%1\"").arg(project->displayName())); connect(action, &QAction::triggered, [project] { ProjectExplorerPlugin::unloadProject(project); } ); diff --git a/src/plugins/projectexplorer/projecttree.cpp b/src/plugins/projectexplorer/projecttree.cpp index 57d7f349ea..3f7c8a4a41 100644 --- a/src/plugins/projectexplorer/projecttree.cpp +++ b/src/plugins/projectexplorer/projecttree.cpp @@ -296,7 +296,7 @@ void ProjectTree::updateExternalFileWarning() const QList<Project *> projects = SessionManager::projects(); if (projects.isEmpty()) return; - foreach (Project *project, projects) { + for (Project *project : projects) { FileName projectDir = project->projectDirectory(); if (projectDir.isEmpty()) continue; diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp index 3b68746c8a..e08416b4e7 100644 --- a/src/plugins/projectexplorer/session.cpp +++ b/src/plugins/projectexplorer/session.cpp @@ -89,10 +89,12 @@ public: QStringList dependenciesOrder() const; void dependencies(const QString &proName, QStringList &result) const; -public: static QString windowTitleAddition(const QString &filePath); static QString sessionTitle(const QString &filePath); + bool hasProjects() const { return !m_projects.isEmpty(); } + bool hasProject(Project *p) const { return m_projects.contains(p); } + SessionNode m_sessionNode; QString m_sessionName = QLatin1String("default"); bool m_virginSession = true; @@ -291,7 +293,7 @@ void SessionManager::setActiveTarget(Project *project, Target *target, SetActive return; Core::Id kitId = target->kit()->id(); - foreach (Project *otherProject, SessionManager::projects()) { + for (Project *otherProject : SessionManager::projects()) { if (otherProject == project) continue; if (Target *otherTarget = Utils::findOrDefault(otherProject->targets(), @@ -312,7 +314,7 @@ void SessionManager::setActiveBuildConfiguration(Target *target, BuildConfigurat Core::Id kitId = target->kit()->id(); QString name = bc->displayName(); // We match on displayname - foreach (Project *otherProject, SessionManager::projects()) { + for (Project *otherProject : SessionManager::projects()) { if (otherProject == target->project()) continue; Target *otherTarget = otherProject->activeTarget(); @@ -340,7 +342,7 @@ void SessionManager::setActiveDeployConfiguration(Target *target, DeployConfigur Core::Id kitId = target->kit()->id(); QString name = dc->displayName(); // We match on displayname - foreach (Project *otherProject, SessionManager::projects()) { + for (Project *otherProject : SessionManager::projects()) { if (otherProject == target->project()) continue; Target *otherTarget = otherProject->activeTarget(); @@ -359,7 +361,7 @@ void SessionManager::setActiveDeployConfiguration(Target *target, DeployConfigur void SessionManager::setStartupProject(Project *startupProject) { QTC_ASSERT((!startupProject) - || (startupProject && d->m_projects.contains(startupProject)), return); + || (startupProject && hasProject(startupProject)), return); if (d->m_startupProject == startupProject) return; @@ -378,7 +380,7 @@ void SessionManager::addProject(Project *pro) QTC_ASSERT(pro, return); d->m_virginSession = false; - QTC_ASSERT(!d->m_projects.contains(pro), return); + QTC_ASSERT(!hasProject(pro), return); d->m_projects.append(pro); d->m_sessionNode.addNode(pro->rootProjectNode()); @@ -436,10 +438,8 @@ bool SessionManager::save() data.insert(QLatin1String("Color"), tmp); } - QStringList projectFiles; - foreach (Project *pro, d->m_projects) - projectFiles << pro->projectFilePath().toString(); - + QStringList projectFiles + = Utils::transform(projects(), [](Project *p) { return p->projectFilePath().toString(); }); // Restore infromation on projects that failed to load: // don't readd projects to the list, which the user loaded foreach (const QString &failed, d->m_failedProjects) { @@ -492,14 +492,19 @@ void SessionManager::closeAllProjects() removeProjects(projects()); } -QList<Project *> SessionManager::projects() +const QList<Project *> SessionManager::projects() { return d->m_projects; } bool SessionManager::hasProjects() { - return !d->m_projects.isEmpty(); + return d->hasProjects(); +} + +bool SessionManager::hasProject(Project *p) +{ + return d->hasProject(p); } QStringList SessionManagerPrivate::dependencies(const QString &proName) const @@ -570,7 +575,7 @@ QStringList SessionManagerPrivate::dependenciesOrder() const QStringList ordered; // copy the map to a temporary list - foreach (Project *pro, m_projects) { + for (Project *pro : m_projects) { const QString proName = pro->projectFilePath().toString(); unordered << QPair<QString, QStringList>(proName, m_depMap.value(proName)); } @@ -608,7 +613,7 @@ QList<Project *> SessionManager::projectOrder(const Project *project) pros = d->dependenciesOrder(); foreach (const QString &proFile, pros) { - foreach (Project *pro, projects()) { + for (Project *pro : projects()) { if (pro->projectFilePath().toString() == proFile) { result << pro; break; @@ -651,7 +656,7 @@ Project *SessionManager::projectForNode(Node *node) while (rootProjectNode && rootProjectNode->parentFolderNode() != &d->m_sessionNode) rootProjectNode = rootProjectNode->parentFolderNode(); - return Utils::findOrDefault(d->m_projects, Utils::equal(&Project::rootProjectNode, rootProjectNode)); + return Utils::findOrDefault(projects(), Utils::equal(&Project::rootProjectNode, rootProjectNode)); } Project *SessionManager::projectForFile(const Utils::FileName &fileName) @@ -705,7 +710,7 @@ void SessionManager::removeProjects(QList<Project *> remove) // Refresh dependencies QSet<QString> projectFiles; - foreach (Project *pro, projects()) { + for (Project *pro : projects()) { if (!remove.contains(pro)) projectFiles.insert(pro->projectFilePath().toString()); } @@ -743,9 +748,10 @@ void SessionManager::removeProjects(QList<Project *> remove) delete pro; } - if (!startupProject()) - if (!d->m_projects.isEmpty()) - setStartupProject(d->m_projects.first()); + if (!startupProject()) { + if (hasProjects()) + setStartupProject(projects().first()); + } } /*! @@ -914,7 +920,7 @@ void SessionManagerPrivate::restoreStartupProject(const PersistentSettingsReader { const QString startupProject = reader.restoreValue(QLatin1String("StartupProject")).toString(); if (!startupProject.isEmpty()) { - foreach (Project *pro, d->m_projects) { + foreach (Project *pro, m_projects) { if (pro->projectFilePath().toString() == startupProject) { m_instance->setStartupProject(pro); break; @@ -924,7 +930,7 @@ void SessionManagerPrivate::restoreStartupProject(const PersistentSettingsReader if (!m_startupProject) { if (!startupProject.isEmpty()) qWarning() << "Could not find startup project" << startupProject; - if (!m_projects.isEmpty()) + if (hasProjects()) m_instance->setStartupProject(m_projects.first()); } } diff --git a/src/plugins/projectexplorer/session.h b/src/plugins/projectexplorer/session.h index e0958baa44..b58d2bdbca 100644 --- a/src/plugins/projectexplorer/session.h +++ b/src/plugins/projectexplorer/session.h @@ -99,8 +99,9 @@ public: static Utils::FileName sessionNameToFileName(const QString &session); static Project *startupProject(); - static QList<Project *> projects(); + static const QList<Project *> projects(); static bool hasProjects(); + static bool hasProject(Project *p); static bool isDefaultVirgin(); static bool isDefaultSession(const QString &session); diff --git a/src/plugins/valgrind/memchecktool.cpp b/src/plugins/valgrind/memchecktool.cpp index 5ee597784f..5c2b1d184d 100644 --- a/src/plugins/valgrind/memchecktool.cpp +++ b/src/plugins/valgrind/memchecktool.cpp @@ -195,7 +195,7 @@ bool MemcheckErrorFilterProxyModel::filterAcceptsRow(int sourceRow, const QModel // ALGORITHM: look at last five stack frames, if none of these is inside any open projects, // assume this error was created by an external library QSet<QString> validFolders; - foreach (Project *project, SessionManager::projects()) { + for (Project *project : SessionManager::projects()) { validFolders << project->projectDirectory().toString(); foreach (Target *target, project->targets()) { foreach (const DeployableFile &file, diff --git a/src/plugins/valgrind/suppressiondialog.cpp b/src/plugins/valgrind/suppressiondialog.cpp index 40b8d82426..573b281610 100644 --- a/src/plugins/valgrind/suppressiondialog.cpp +++ b/src/plugins/valgrind/suppressiondialog.cpp @@ -209,7 +209,7 @@ void SuppressionDialog::accept() // Add file to project if there is a project containing this file on the file system. if (!ProjectExplorer::SessionManager::projectForFile(Utils::FileName::fromString(path))) { - foreach (ProjectExplorer::Project *p, ProjectExplorer::SessionManager::projects()) { + for (ProjectExplorer::Project *p : ProjectExplorer::SessionManager::projects()) { if (path.startsWith(p->projectDirectory().toString())) { p->rootProjectNode()->addFiles(QStringList() << path); break; diff --git a/src/plugins/vcsbase/vcsbaseeditor.cpp b/src/plugins/vcsbase/vcsbaseeditor.cpp index 4191c77db9..c42154ce4c 100644 --- a/src/plugins/vcsbase/vcsbaseeditor.cpp +++ b/src/plugins/vcsbase/vcsbaseeditor.cpp @@ -1257,7 +1257,7 @@ static QTextCodec *findProjectCodec(const QString &dir) return codec; } } - return 0; + return nullptr; } QTextCodec *VcsBaseEditor::getCodec(const QString &source) diff --git a/src/plugins/vcsbase/vcsprojectcache.cpp b/src/plugins/vcsbase/vcsprojectcache.cpp index 43dee8c873..6540daf2a7 100644 --- a/src/plugins/vcsbase/vcsprojectcache.cpp +++ b/src/plugins/vcsbase/vcsprojectcache.cpp @@ -125,7 +125,7 @@ ProjectExplorer::Project *VcsProjectCache::projectForToplevel(const Utils::FileN { PathMatcher parentMatcher; PathMatcher childMatcher; - foreach (ProjectExplorer::Project *project, ProjectExplorer::SessionManager::projects()) { + for (ProjectExplorer::Project *project : ProjectExplorer::SessionManager::projects()) { const Utils::FileName projectDir = project->projectDirectory(); if (projectDir == vcsTopLevel) return project; |