diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp index f6c63829101..89c88c43fe1 100644 --- a/src/plugins/projectexplorer/buildmanager.cpp +++ b/src/plugins/projectexplorer/buildmanager.cpp @@ -561,26 +561,26 @@ void BuildManager::appendStep(BuildStep *step, const QString &name) } template -int count(const QHash &hash, T *key) +int count(const QHash &hash, const T *key) { - typename QHash::const_iterator it = hash.find(key); + typename QHash::const_iterator it = hash.find(const_cast(key)); typename QHash::const_iterator end = hash.end(); if (it != end) return *it; return 0; } -bool BuildManager::isBuilding(Project *pro) +bool BuildManager::isBuilding(const Project *pro) { return count(d->m_activeBuildSteps, pro) > 0; } -bool BuildManager::isBuilding(Target *t) +bool BuildManager::isBuilding(const Target *t) { return count(d->m_activeBuildStepsPerTarget, t) > 0; } -bool BuildManager::isBuilding(ProjectConfiguration *p) +bool BuildManager::isBuilding(const ProjectConfiguration *p) { return count(d->m_activeBuildStepsPerProjectConfiguration, p) > 0; } diff --git a/src/plugins/projectexplorer/buildmanager.h b/src/plugins/projectexplorer/buildmanager.h index 12bb3ac0e57..16832c8849c 100644 --- a/src/plugins/projectexplorer/buildmanager.h +++ b/src/plugins/projectexplorer/buildmanager.h @@ -54,9 +54,9 @@ public: const QStringList &preambelMessage = QStringList()); static bool buildList(BuildStepList *bsl, const QString &stepListName); - static bool isBuilding(Project *p); - static bool isBuilding(Target *t); - static bool isBuilding(ProjectConfiguration *p); + static bool isBuilding(const Project *p); + static bool isBuilding(const Target *t); + static bool isBuilding(const ProjectConfiguration *p); static bool isBuilding(BuildStep *step); // Append any build step to the list of build steps (currently only used to add the QMakeStep) diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index c0e67506960..cfa397ef16a 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -192,7 +192,7 @@ public: void updateContextMenuActions(); void executeRunConfiguration(RunConfiguration *, Core::Id mode); QPair buildSettingsEnabledForSession(); - QPair buildSettingsEnabled(Project *pro); + QPair buildSettingsEnabled(const Project *pro); void addToRecentProjects(const QString &fileName, const QString &displayName); void startRunControl(RunControl *runControl, Core::Id runMode); @@ -2063,15 +2063,15 @@ QString ProjectExplorerPlugin::directoryFor(Node *node) void ProjectExplorerPluginPrivate::updateActions() { - Project *project = SessionManager::startupProject(); - Project *currentProject = ProjectTree::currentProject(); // for context menu actions + const Project *const project = SessionManager::startupProject(); + const Project *const currentProject = ProjectTree::currentProject(); // for context menu actions - QPair buildActionState = buildSettingsEnabled(project); - QPair buildActionContextState = buildSettingsEnabled(currentProject); - QPair buildSessionState = buildSettingsEnabledForSession(); + const QPair buildActionState = buildSettingsEnabled(project); + const QPair buildActionContextState = buildSettingsEnabled(currentProject); + const QPair buildSessionState = buildSettingsEnabledForSession(); - QString projectName = project ? project->displayName() : QString(); - QString projectNameContextMenu = currentProject ? currentProject->displayName() : QString(); + const QString projectName = project ? project->displayName() : QString(); + const QString projectNameContextMenu = currentProject ? currentProject->displayName() : QString(); m_unloadAction->setParameter(projectName); m_unloadActionContextMenu->setParameter(projectNameContextMenu); @@ -2093,16 +2093,10 @@ void ProjectExplorerPluginPrivate::updateActions() m_setStartupProjectAction->setParameter(projectNameContextMenu); m_setStartupProjectAction->setVisible(currentProject != project); - bool hasDependencies = SessionManager::projectOrder(currentProject).size() > 1; - if (hasDependencies) { - m_buildActionContextMenu->setVisible(true); - m_rebuildActionContextMenu->setVisible(true); - m_cleanActionContextMenu->setVisible(true); - } else { - m_buildActionContextMenu->setVisible(false); - m_rebuildActionContextMenu->setVisible(false); - m_cleanActionContextMenu->setVisible(false); - } + const bool hasDependencies = SessionManager::projectOrder(currentProject).size() > 1; + m_buildActionContextMenu->setVisible(hasDependencies); + m_rebuildActionContextMenu->setVisible(hasDependencies); + m_cleanActionContextMenu->setVisible(hasDependencies); m_buildActionContextMenu->setEnabled(buildActionContextState.first); m_rebuildActionContextMenu->setEnabled(buildActionContextState.first); @@ -2438,16 +2432,16 @@ void ProjectExplorerPluginPrivate::runProjectContextMenu() } } -static bool hasBuildSettings(Project *pro) +static bool hasBuildSettings(const Project *pro) { - return Utils::anyOf(SessionManager::projectOrder(pro), [](Project *project) { + return Utils::anyOf(SessionManager::projectOrder(pro), [](const Project *project) { return project && project->activeTarget() && project->activeTarget()->activeBuildConfiguration(); }); } -QPair ProjectExplorerPluginPrivate::buildSettingsEnabled(Project *pro) +QPair ProjectExplorerPluginPrivate::buildSettingsEnabled(const Project *pro) { QPair result; result.first = true; diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp index a470814c569..9fae7160fba 100644 --- a/src/plugins/projectexplorer/session.cpp +++ b/src/plugins/projectexplorer/session.cpp @@ -574,7 +574,7 @@ QStringList SessionManagerPrivate::dependenciesOrder() const return ordered; } -QList SessionManager::projectOrder(Project *project) +QList SessionManager::projectOrder(const Project *project) { QList result; diff --git a/src/plugins/projectexplorer/session.h b/src/plugins/projectexplorer/session.h index 0b8aebdc5cd..e0958baa441 100644 --- a/src/plugins/projectexplorer/session.h +++ b/src/plugins/projectexplorer/session.h @@ -110,7 +110,7 @@ public: static QVariant value(const QString &name); // NBS rewrite projectOrder (dependency management) - static QList projectOrder(Project *project = 0); + static QList projectOrder(const Project *project = 0); static SessionNode *sessionNode();