forked from qt-creator/qt-creator
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>
This commit is contained in:
committed by
Tobias Hunger
parent
0a09ba7319
commit
f2b8e9acd1
@@ -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();
|
||||
|
@@ -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();
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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();
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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));
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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); } );
|
||||
|
@@ -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;
|
||||
|
@@ -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());
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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,
|
||||
|
@@ -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;
|
||||
|
@@ -1257,7 +1257,7 @@ static QTextCodec *findProjectCodec(const QString &dir)
|
||||
return codec;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QTextCodec *VcsBaseEditor::getCodec(const QString &source)
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user