void QmakeManager::handleSubDirContextMenu(QmakeManager::Action action, bool isFileBuild, ProjectExplorer::Project *contextProject, ProjectExplorer::Node *contextNode, ProjectExplorer::FileNode *contextFile) { QmakeProject *qmakeProject = qobject_cast<QmakeProject *>(contextProject); QTC_ASSERT(qmakeProject, return); if (!qmakeProject->activeTarget() || !qmakeProject->activeTarget()->activeBuildConfiguration()) return; if (!contextNode || !contextFile) isFileBuild = false; QmakeBuildConfiguration *bc = qobject_cast<QmakeBuildConfiguration *>(qmakeProject->activeTarget()->activeBuildConfiguration()); if (!bc) return; if (contextNode) { if (QmakePriFileNode *prifile = dynamic_cast<QmakePriFileNode *>(contextNode)) { if (QmakeProFileNode *profile = prifile->proFileNode()) { if (profile != qmakeProject->rootProjectNode() || isFileBuild) bc->setSubNodeBuild(profile); } } } if (isFileBuild) bc->setFileNodeBuild(contextFile); if (ProjectExplorerPlugin::saveModifiedFiles()) { const Core::Id buildStep = ProjectExplorer::Constants::BUILDSTEPS_BUILD; const Core::Id cleanStep = ProjectExplorer::Constants::BUILDSTEPS_CLEAN; if (action == BUILD) { const QString name = ProjectExplorerPlugin::displayNameForStepId(buildStep); BuildManager::buildList(bc->stepList(buildStep), name); } else if (action == CLEAN) { const QString name = ProjectExplorerPlugin::displayNameForStepId(cleanStep); BuildManager::buildList(bc->stepList(cleanStep), name); } else if (action == REBUILD) { QStringList names; names << ProjectExplorerPlugin::displayNameForStepId(cleanStep) << ProjectExplorerPlugin::displayNameForStepId(buildStep); QList<ProjectExplorer::BuildStepList *> stepLists; stepLists << bc->stepList(cleanStep) << bc->stepList(buildStep); BuildManager::buildLists(stepLists, names); } } bc->setSubNodeBuild(0); bc->setFileNodeBuild(0); }
void AndroidPackageCreationWidget::setTargetSDK(const QString &sdk) { AndroidManager::setBuildTargetSDK(m_step->target(), sdk); QmakeBuildConfiguration *bc = qobject_cast<QmakeBuildConfiguration *>(m_step->target()->activeBuildConfiguration()); if (!bc) return; QMakeStep *qs = bc->qmakeStep(); if (!qs) return; qs->setForced(true); BuildManager::buildList(bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN), ProjectExplorerPlugin::displayNameForStepId(ProjectExplorer::Constants::BUILDSTEPS_CLEAN)); BuildManager::appendStep(qs, ProjectExplorerPlugin::displayNameForStepId(ProjectExplorer::Constants::BUILDSTEPS_CLEAN)); bc->setSubNodeBuild(0); // Make the buildconfiguration emit a evironmentChanged() signal // TODO find a better way bool use = bc->useSystemEnvironment(); bc->setUseSystemEnvironment(!use); bc->setUseSystemEnvironment(use); }