diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index f90146b0d7b..8af44707c45 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -51,6 +51,11 @@ CMakeBuildConfiguration::~CMakeBuildConfiguration() delete m_toolChain; } +CMakeProject *CMakeBuildConfiguration::cmakeProject() const +{ + return static_cast(project()); +} + ProjectExplorer::Environment CMakeBuildConfiguration::baseEnvironment() const { ProjectExplorer::Environment env = useSystemEnvironment() ? @@ -99,7 +104,7 @@ QString CMakeBuildConfiguration::buildDirectory() const { QString buildDirectory = value("buildDirectory").toString(); if (buildDirectory.isEmpty()) - buildDirectory = static_cast(project())->sourceDirectory() + "/qtcreator-build"; + buildDirectory = cmakeProject()->sourceDirectory() + "/qtcreator-build"; return buildDirectory; } diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h index b662b81a945..6078ac577d3 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h @@ -46,6 +46,8 @@ public: CMakeBuildConfiguration(BuildConfiguration *source); ~CMakeBuildConfiguration(); + CMakeProject *cmakeProject() const; + ProjectExplorer::Environment environment() const; ProjectExplorer::Environment baseEnvironment() const; void setUserEnvironmentChanges(const QList &diff); diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index a40c0625624..45b78955d36 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -166,6 +166,11 @@ CMakeProject::~CMakeProject() delete m_rootNode; } +CMakeBuildConfiguration *CMakeProject::activeCMakeBuildConfiguration() const +{ + return static_cast(activeBuildConfiguration()); +} + IBuildConfigurationFactory *CMakeProject::buildConfigurationFactory() const { return m_buildConfigurationFactory; @@ -228,8 +233,8 @@ QString CMakeProject::sourceDirectory() const bool CMakeProject::parseCMakeLists() { // Find cbp file - CMakeBuildConfiguration *activeCmakeBuildConfiguration = static_cast(activeBuildConfiguration()); - QString cbpFile = CMakeManager::findCbpFile(activeCmakeBuildConfiguration->buildDirectory()); + CMakeBuildConfiguration *activeBC = activeCMakeBuildConfiguration(); + QString cbpFile = CMakeManager::findCbpFile(activeBC->buildDirectory()); // setFolderName m_rootNode->setFolderName(QFileInfo(cbpFile).completeBaseName()); @@ -238,7 +243,7 @@ bool CMakeProject::parseCMakeLists() //qDebug()<<"Parsing file "<updateToolChain(cbpparser.compilerName()); + activeBC->updateToolChain(cbpparser.compilerName()); m_projectName = cbpparser.projectName(); m_rootNode->setFolderName(cbpparser.projectName()); @@ -291,7 +296,7 @@ bool CMakeProject::parseCMakeLists() QStringList allIncludePaths; QStringList allFrameworkPaths; - QList allHeaderPaths = activeCmakeBuildConfiguration->toolChain()->systemHeaderPaths(); + QList allHeaderPaths = activeBC->toolChain()->systemHeaderPaths(); foreach (ProjectExplorer::HeaderPath headerPath, allHeaderPaths) { if (headerPath.kind() == ProjectExplorer::HeaderPath::FrameworkHeaderPath) allFrameworkPaths.append(headerPath.path()); @@ -307,12 +312,12 @@ bool CMakeProject::parseCMakeLists() CppTools::CppModelManagerInterface::ProjectInfo pinfo = modelmanager->projectInfo(this); if (pinfo.includePaths != allIncludePaths || pinfo.sourceFiles != m_files - || pinfo.defines != activeCmakeBuildConfiguration->toolChain()->predefinedMacros() + || pinfo.defines != activeBC->toolChain()->predefinedMacros() || pinfo.frameworkPaths != allFrameworkPaths) { pinfo.includePaths = allIncludePaths; // TODO we only want C++ files, not all other stuff that might be in the project pinfo.sourceFiles = m_files; - pinfo.defines = activeCmakeBuildConfiguration->toolChain()->predefinedMacros(); // TODO this is to simplistic + pinfo.defines = activeBC->toolChain()->predefinedMacros(); // TODO this is to simplistic pinfo.frameworkPaths = allFrameworkPaths; modelmanager->updateProjectInfo(pinfo); modelmanager->updateSourceFiles(pinfo.sourceFiles); @@ -370,7 +375,7 @@ bool CMakeProject::parseCMakeLists() } else { // TODO report error qDebug()<<"Parsing failed"; - activeCmakeBuildConfiguration->updateToolChain(QString::null); + activeBC->updateToolChain(QString::null); return false; } return true; diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h index ffe0c25e7b7..1693faca7a8 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.h +++ b/src/plugins/cmakeprojectmanager/cmakeproject.h @@ -91,6 +91,8 @@ public: CMakeProject(CMakeManager *manager, const QString &filename); ~CMakeProject(); + CMakeBuildConfiguration *activeCMakeBuildConfiguration() const; + virtual QString name() const; virtual Core::IFile *file() const; virtual ProjectExplorer::IBuildConfigurationFactory *buildConfigurationFactory() const; diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp index 89f97ee555e..a6ac74ec982 100644 --- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp @@ -66,6 +66,12 @@ CMakeRunConfiguration::CMakeRunConfiguration(CMakeProject *pro, const QString &t CMakeRunConfiguration::~CMakeRunConfiguration() { + +} + +CMakeProject *CMakeRunConfiguration::cmakeProject() const +{ + return static_cast(project()); } QString CMakeRunConfiguration::type() const @@ -228,7 +234,7 @@ void CMakeRunConfiguration::setUserEnvironmentChanges(const QList(project()->activeBuildConfiguration()); + CMakeBuildConfiguration *bc = cmakeProject()->activeCMakeBuildConfiguration(); return bc->toolChainType(); } diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h index 385232d3f40..189b5830b4c 100644 --- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h +++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h @@ -53,6 +53,8 @@ class CMakeRunConfiguration : public ProjectExplorer::LocalApplicationRunConfigu public: CMakeRunConfiguration(CMakeProject *pro, const QString &target, const QString &workingDirectory, const QString &title); virtual ~CMakeRunConfiguration(); + CMakeProject *cmakeProject() const; + virtual QString type() const; virtual QString executable() const; virtual RunMode runMode() const; diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp index 7b876d7d7c8..68e97354b3a 100644 --- a/src/plugins/cmakeprojectmanager/makestep.cpp +++ b/src/plugins/cmakeprojectmanager/makestep.cpp @@ -64,6 +64,11 @@ MakeStep::~MakeStep() } +CMakeBuildConfiguration *MakeStep::cmakeBuildConfiguration() const +{ + return static_cast(buildConfiguration()); +} + void MakeStep::setClean(bool clean) { m_clean = clean; @@ -96,7 +101,7 @@ void MakeStep::storeIntoLocalMap(QMap &map) bool MakeStep::init() { - CMakeBuildConfiguration *bc = static_cast(buildConfiguration()); + CMakeBuildConfiguration *bc = cmakeBuildConfiguration(); // TODO, we should probably have a member cmakeBuildConfiguration(); setBuildParser(bc->buildParser()); @@ -204,7 +209,7 @@ MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep) // TODO update this list also on rescans of the CMakeLists.txt // TODO shouldn't be accessing project - CMakeProject *pro = static_cast(m_makeStep->buildConfiguration()->project()); + CMakeProject *pro = m_makeStep->cmakeBuildConfiguration()->cmakeProject(); foreach(const QString& target, pro->targets()) { QListWidgetItem *item = new QListWidgetItem(target, m_targetsList); item->setFlags(item->flags() | Qt::ItemIsUserCheckable); @@ -254,7 +259,7 @@ void MakeStepConfigWidget::updateDetails() QStringList arguments = m_makeStep->m_buildTargets; arguments << m_makeStep->additionalArguments(); - CMakeBuildConfiguration *bc = static_cast(m_makeStep->buildConfiguration()); + CMakeBuildConfiguration *bc = m_makeStep->cmakeBuildConfiguration(); m_summaryText = tr("Make: %1 %2").arg(bc->toolChain()->makeCommand(), arguments.join(" ")); emit updateSummary(); } diff --git a/src/plugins/cmakeprojectmanager/makestep.h b/src/plugins/cmakeprojectmanager/makestep.h index 1fa3ff36a99..05b7e8ea9a0 100644 --- a/src/plugins/cmakeprojectmanager/makestep.h +++ b/src/plugins/cmakeprojectmanager/makestep.h @@ -41,7 +41,7 @@ QT_END_NAMESPACE namespace CMakeProjectManager { namespace Internal { -class CMakeProject; +class CMakeBuildConfiguration; class MakeStep : public ProjectExplorer::AbstractMakeStep { @@ -52,6 +52,9 @@ public: MakeStep(ProjectExplorer::BuildConfiguration *bc); MakeStep(MakeStep *bs, ProjectExplorer::BuildConfiguration *bc); ~MakeStep(); + + CMakeBuildConfiguration *cmakeBuildConfiguration() const; + virtual bool init(); virtual void run(QFutureInterface &fi); diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp index 5e6e1553ea6..3c1b38ec521 100644 --- a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp +++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp @@ -64,3 +64,8 @@ QString GenericBuildConfiguration::buildDirectory() const return buildDirectory; } +GenericProject *GenericBuildConfiguration::genericProject() const +{ + return static_cast(project()); +} + diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.h b/src/plugins/genericprojectmanager/genericbuildconfiguration.h index 82ad2746a59..b42d7ae062b 100644 --- a/src/plugins/genericprojectmanager/genericbuildconfiguration.h +++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.h @@ -45,6 +45,8 @@ public: GenericBuildConfiguration(GenericProject *pro); GenericBuildConfiguration(GenericBuildConfiguration *source); + GenericProject *genericProject() const; + virtual ProjectExplorer::Environment environment() const; virtual QString buildDirectory() const; }; diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp index bb9fdc1f814..b57a23e4c61 100644 --- a/src/plugins/genericprojectmanager/genericmakestep.cpp +++ b/src/plugins/genericprojectmanager/genericmakestep.cpp @@ -65,11 +65,16 @@ GenericMakeStep::~GenericMakeStep() { } +GenericBuildConfiguration *GenericMakeStep::genericBuildConfiguration() const +{ + return static_cast(buildConfiguration()); +} + bool GenericMakeStep::init() { - GenericBuildConfiguration *bc = static_cast(buildConfiguration()); + GenericBuildConfiguration *bc = genericBuildConfiguration(); //TODO - const QString buildParser = static_cast(bc->project())->buildParser(bc); + const QString buildParser = genericBuildConfiguration()->genericProject()->buildParser(bc); setBuildParser(buildParser); setEnabled(true); @@ -121,7 +126,7 @@ QString GenericMakeStep::makeCommand() const QString command = m_makeCommand; if (command.isEmpty()) { // TODO - GenericProject *pro = static_cast(buildConfiguration()->project()); + GenericProject *pro = genericBuildConfiguration()->genericProject(); if (ProjectExplorer::ToolChain *toolChain = pro->toolChain()) command = toolChain->makeCommand(); else @@ -183,7 +188,7 @@ GenericMakeStepConfigWidget::GenericMakeStepConfigWidget(GenericMakeStep *makeSt // TODO update this list also on rescans of the GenericLists.txt //TODO - GenericProject *pro = static_cast(m_makeStep->buildConfiguration()->project()); + GenericProject *pro = m_makeStep->genericBuildConfiguration()->genericProject(); foreach (const QString &target, pro->targets()) { QListWidgetItem *item = new QListWidgetItem(target, m_ui->targetsList); item->setFlags(item->flags() | Qt::ItemIsUserCheckable); diff --git a/src/plugins/genericprojectmanager/genericmakestep.h b/src/plugins/genericprojectmanager/genericmakestep.h index 98b2a8018e7..57a8ee4a11a 100644 --- a/src/plugins/genericprojectmanager/genericmakestep.h +++ b/src/plugins/genericprojectmanager/genericmakestep.h @@ -43,7 +43,7 @@ QT_END_NAMESPACE namespace GenericProjectManager { namespace Internal { -class GenericProject; +class GenericBuildConfiguration; class GenericMakeStepConfigWidget; struct GenericMakeStepSettings @@ -59,6 +59,8 @@ public: GenericMakeStep(ProjectExplorer::BuildConfiguration *bc); GenericMakeStep(GenericMakeStep *bs, ProjectExplorer::BuildConfiguration *bc); ~GenericMakeStep(); + GenericBuildConfiguration *genericBuildConfiguration() const; + virtual bool init(); virtual void run(QFutureInterface &fi); diff --git a/src/plugins/qt4projectmanager/externaleditors.cpp b/src/plugins/qt4projectmanager/externaleditors.cpp index f1b0b68f3de..b165315f5df 100644 --- a/src/plugins/qt4projectmanager/externaleditors.cpp +++ b/src/plugins/qt4projectmanager/externaleditors.cpp @@ -100,7 +100,7 @@ bool ExternalQtEditor::getEditorLaunchData(const QString &fileName, const Qt4Project *project = qt4ProjectFor(fileName); // Get the binary either from the current Qt version of the project or Path if (project) { - Qt4BuildConfiguration *qt4bc = static_cast(project->activeBuildConfiguration()); + Qt4BuildConfiguration *qt4bc = project->activeQt4BuildConfiguration(); const QtVersion *qtVersion= qt4bc->qtVersion(); data->binary = (qtVersion->*commandAccessor)(); data->workingDirectory = QFileInfo(project->file()->fileName()).absolutePath(); diff --git a/src/plugins/qt4projectmanager/makestep.cpp b/src/plugins/qt4projectmanager/makestep.cpp index 7c9026a6f11..f3442a1a024 100644 --- a/src/plugins/qt4projectmanager/makestep.cpp +++ b/src/plugins/qt4projectmanager/makestep.cpp @@ -65,6 +65,11 @@ MakeStep::~MakeStep() } +Qt4BuildConfiguration *MakeStep::qt4BuildConfiguration() const +{ + return static_cast(buildConfiguration()); +} + void MakeStep::setClean(bool clean) { m_clean = clean; @@ -97,7 +102,7 @@ void MakeStep::storeIntoLocalMap(QMap &map) bool MakeStep::init() { - Qt4BuildConfiguration *bc = static_cast(buildConfiguration()); + Qt4BuildConfiguration *bc = qt4BuildConfiguration(); Environment environment = bc->environment(); setEnvironment(environment); @@ -164,7 +169,7 @@ bool MakeStep::init() void MakeStep::run(QFutureInterface & fi) { - if (static_cast(buildConfiguration()->project())->rootProjectNode()->projectType() == ScriptTemplate) { + if (qt4BuildConfiguration()->qt4Project()->rootProjectNode()->projectType() == ScriptTemplate) { fi.reportResult(true); return; } @@ -225,13 +230,13 @@ MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep) void MakeStepConfigWidget::updateMakeOverrideLabel() { - Qt4BuildConfiguration *qt4bc = static_cast(m_makeStep->buildConfiguration()); + Qt4BuildConfiguration *qt4bc = m_makeStep->qt4BuildConfiguration(); m_ui.makeLabel->setText(tr("Override %1:").arg(qt4bc->makeCommand())); } void MakeStepConfigWidget::updateDetails() { - Qt4BuildConfiguration *bc = static_cast(m_makeStep->buildConfiguration()); + Qt4BuildConfiguration *bc = m_makeStep->qt4BuildConfiguration(); QString workingDirectory = bc->buildDirectory(); QString makeCmd = bc->makeCommand(); diff --git a/src/plugins/qt4projectmanager/makestep.h b/src/plugins/qt4projectmanager/makestep.h index 5c674cf7dd7..8e670fa2f19 100644 --- a/src/plugins/qt4projectmanager/makestep.h +++ b/src/plugins/qt4projectmanager/makestep.h @@ -43,8 +43,9 @@ class Project; } namespace Qt4ProjectManager { - namespace Internal { +class Qt4BuildConfiguration; + class MakeStepFactory : public ProjectExplorer::IBuildStepFactory { Q_OBJECT @@ -57,7 +58,7 @@ public: QStringList canCreateForBuildConfiguration(ProjectExplorer::BuildConfiguration *bc) const; QString displayNameForName(const QString &name) const; }; -} +} //namespace Internal class Qt4Project; @@ -70,6 +71,9 @@ public: MakeStep(ProjectExplorer::BuildConfiguration *bc); MakeStep(MakeStep *bs, ProjectExplorer::BuildConfiguration *bc); ~MakeStep(); + + Internal::Qt4BuildConfiguration *qt4BuildConfiguration() const; + virtual bool init(); virtual void run(QFutureInterface &); virtual QString name(); diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index e08bef33ee0..5a9441b9db2 100644 --- a/src/plugins/qt4projectmanager/qmakestep.cpp +++ b/src/plugins/qt4projectmanager/qmakestep.cpp @@ -67,10 +67,15 @@ QMakeStep::~QMakeStep() { } +Qt4BuildConfiguration *QMakeStep::qt4BuildConfiguration() const +{ + return static_cast(buildConfiguration()); +} + QStringList QMakeStep::arguments() { QStringList additonalArguments = m_qmakeArgs; - Qt4BuildConfiguration *bc = static_cast(buildConfiguration()); + Qt4BuildConfiguration *bc = qt4BuildConfiguration(); QStringList arguments; arguments << buildConfiguration()->project()->file()->fileName(); arguments << "-r"; @@ -112,7 +117,7 @@ QStringList QMakeStep::arguments() bool QMakeStep::init() { // TODO - Qt4BuildConfiguration *qt4bc = static_cast(buildConfiguration()); + Qt4BuildConfiguration *qt4bc = qt4BuildConfiguration(); const QtVersion *qtVersion = qt4bc->qtVersion(); if (!qtVersion->isValid()) { @@ -155,8 +160,7 @@ bool QMakeStep::init() void QMakeStep::run(QFutureInterface &fi) { - //TODO - Qt4Project *pro = static_cast(buildConfiguration()->project()); + Qt4Project *pro = qt4BuildConfiguration()->qt4Project(); if (pro->rootProjectNode()->projectType() == ScriptTemplate) { fi.reportResult(true); return; @@ -263,7 +267,7 @@ void QMakeStepConfigWidget::qtVersionChanged(ProjectExplorer::BuildConfiguration void QMakeStepConfigWidget::updateTitleLabel() { - Qt4BuildConfiguration *qt4bc = static_cast(m_step->buildConfiguration()); + Qt4BuildConfiguration *qt4bc = m_step->qt4BuildConfiguration(); const QtVersion *qtVersion = qt4bc->qtVersion(); if (!qtVersion) { m_summaryText = tr("QMake: No Qt version set. QMake can not be run."); @@ -290,7 +294,7 @@ void QMakeStepConfigWidget::qmakeArgumentsLineEditTextEdited() m_step->setQMakeArguments( ProjectExplorer::Environment::parseCombinedArgString(m_ui.qmakeAdditonalArgumentsLineEdit->text())); - static_cast(m_step->buildConfiguration()->project())->invalidateCachedTargetInformation(); + m_step->qt4BuildConfiguration()->qt4Project()->invalidateCachedTargetInformation(); updateTitleLabel(); updateEffectiveQMakeCall(); } @@ -306,12 +310,12 @@ void QMakeStepConfigWidget::buildConfigurationChanged() buildConfiguration = buildConfiguration & ~QtVersion::DebugBuild; } bc->setValue("buildConfiguration", int(buildConfiguration)); - static_cast(m_step->buildConfiguration()->project())->invalidateCachedTargetInformation(); + m_step->qt4BuildConfiguration()->qt4Project()->invalidateCachedTargetInformation(); updateTitleLabel(); updateEffectiveQMakeCall(); // TODO if exact parsing is the default, we need to update the code model // and all the Qt4ProFileNodes - //static_cast(m_step->project())->update(); + // m_step->qt4Project()->update(); } QString QMakeStepConfigWidget::displayName() const @@ -337,7 +341,7 @@ void QMakeStepConfigWidget::init() void QMakeStepConfigWidget::updateEffectiveQMakeCall() { - Qt4BuildConfiguration *qt4bc = static_cast(m_step->buildConfiguration()); + Qt4BuildConfiguration *qt4bc = m_step->qt4BuildConfiguration(); const QtVersion *qtVersion = qt4bc->qtVersion(); if (qtVersion) { QString program = QFileInfo(qtVersion->qmakeCommand()).fileName(); diff --git a/src/plugins/qt4projectmanager/qmakestep.h b/src/plugins/qt4projectmanager/qmakestep.h index ef0176c47c5..d1b0ac6f696 100644 --- a/src/plugins/qt4projectmanager/qmakestep.h +++ b/src/plugins/qt4projectmanager/qmakestep.h @@ -43,7 +43,10 @@ class Project; } namespace Qt4ProjectManager { +class Qt4Project; + namespace Internal { +class Qt4BuildConfiguration; class QMakeStepFactory : public ProjectExplorer::IBuildStepFactory { @@ -57,9 +60,9 @@ public: QStringList canCreateForBuildConfiguration(ProjectExplorer::BuildConfiguration *bc) const; QString displayNameForName(const QString &name) const; }; -} -class Qt4Project; +} // namespace Internal + class QMakeStep : public ProjectExplorer::AbstractMakeStep { @@ -68,6 +71,7 @@ public: QMakeStep(ProjectExplorer::BuildConfiguration *bc); QMakeStep(QMakeStep *bs, ProjectExplorer::BuildConfiguration *bc); ~QMakeStep(); + Internal::Qt4BuildConfiguration *qt4BuildConfiguration() const; virtual bool init(); virtual void run(QFutureInterface &); virtual QString name(); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp index 67cba594f55..3e329ef6589 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp @@ -322,7 +322,7 @@ Qt4Project *MaemoRunConfiguration::project() const bool MaemoRunConfiguration::isEnabled() const { - Qt4BuildConfiguration *qt4bc = static_cast(project()->activeBuildConfiguration()); + Qt4BuildConfiguration *qt4bc = project()->activeQt4BuildConfiguration(); QTC_ASSERT(qt4bc, return false); ToolChain::ToolChainType type = qt4bc->toolChainType(); return type == ToolChain::GCC_MAEMO; @@ -411,7 +411,7 @@ void MaemoRunConfiguration::wasDeployed() bool MaemoRunConfiguration::hasDebuggingHelpers() const { - Qt4BuildConfiguration *qt4bc = static_cast(project()->activeBuildConfiguration()); + Qt4BuildConfiguration *qt4bc = project()->activeQt4BuildConfiguration(); return qt4bc->qtVersion()->hasDebuggingHelper(); } @@ -517,7 +517,7 @@ const QStringList MaemoRunConfiguration::arguments() const const QString MaemoRunConfiguration::dumperLib() const { - Qt4BuildConfiguration *qt4bc = static_cast(project()->activeBuildConfiguration()); + Qt4BuildConfiguration *qt4bc = project()->activeQt4BuildConfiguration(); return qt4bc->qtVersion()->debuggingHelperLibrary(); } @@ -666,8 +666,8 @@ void MaemoRunConfiguration::updateTarget() m_executable = QString::null; m_cachedTargetInformationValid = true; - if (Qt4Project *qt4Project = static_cast(project())) { - Qt4BuildConfiguration *qt4bc = static_cast(project()->activeBuildConfiguration()); + if (Qt4Project *qt4Project = project()) { + Qt4BuildConfiguration *qt4bc = qt4Project->activeQt4BuildConfiguration(); Qt4PriFileNode * priFileNode = qt4Project->rootProjectNode() ->findProFileFor(m_proFilePath); if (!priFileNode) { diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp index daf08c2ad97..bcb257b11b9 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp @@ -55,6 +55,7 @@ #include using namespace ProjectExplorer; +using namespace Qt4ProjectManager; using namespace Qt4ProjectManager::Internal; enum { debug = 0 }; @@ -99,6 +100,11 @@ S60DeviceRunConfiguration::~S60DeviceRunConfiguration() { } +Qt4Project *S60DeviceRunConfiguration::qt4Project() const +{ + return static_cast(project()); +} + QString S60DeviceRunConfiguration::type() const { return QLatin1String("Qt4ProjectManager.DeviceRunConfiguration"); @@ -259,8 +265,8 @@ void S60DeviceRunConfiguration::updateTarget() { if (m_cachedTargetInformationValid) return; - Qt4BuildConfiguration *qt4bc = static_cast(project()->activeBuildConfiguration()); - Qt4PriFileNode * priFileNode = static_cast(project())->rootProjectNode()->findProFileFor(m_proFilePath); + Qt4BuildConfiguration *qt4bc = qt4Project()->activeQt4BuildConfiguration(); + Qt4PriFileNode * priFileNode = qt4Project()->rootProjectNode()->findProFileFor(m_proFilePath); if (!priFileNode) { m_baseFileName = QString::null; m_cachedTargetInformationValid = true; @@ -418,10 +424,10 @@ S60DeviceRunControlBase::S60DeviceRunControlBase(RunConfiguration *runConfigurat connect(m_makesis, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(makesisProcessFinished())); - Qt4BuildConfiguration *activeBuildConf = - static_cast(runConfiguration->project()->activeBuildConfiguration()); - S60DeviceRunConfiguration *s60runConfig = qobject_cast(runConfiguration); + + Qt4BuildConfiguration *activeBuildConf = s60runConfig->qt4Project()->activeQt4BuildConfiguration(); + QTC_ASSERT(s60runConfig, return); m_toolChain = s60runConfig->toolChainType(); m_serialPortName = s60runConfig->serialPortName(); diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h index 10464514ca6..c68dff066fc 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h +++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h @@ -47,6 +47,8 @@ namespace Debugger { } namespace Qt4ProjectManager { +class Qt4Project; + namespace Internal { class S60DeviceRunConfiguration : public ProjectExplorer::RunConfiguration @@ -61,6 +63,8 @@ public: explicit S60DeviceRunConfiguration(ProjectExplorer::Project *project, const QString &proFilePath); ~S60DeviceRunConfiguration(); + Qt4Project *qt4Project() const; + QString type() const; bool isEnabled(ProjectExplorer::BuildConfiguration *configuration) const; QWidget *configurationWidget(); diff --git a/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp index 59fc165d361..eb63185f30b 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp @@ -48,6 +48,7 @@ #include using namespace ProjectExplorer; +using namespace Qt4ProjectManager; using namespace Qt4ProjectManager::Internal; // ======== S60EmulatorRunConfiguration @@ -72,6 +73,11 @@ S60EmulatorRunConfiguration::~S60EmulatorRunConfiguration() { } +Qt4Project *S60EmulatorRunConfiguration::qt4Project() const +{ + return static_cast(project()); +} + QString S60EmulatorRunConfiguration::type() const { return "Qt4ProjectManager.EmulatorRunConfiguration"; @@ -114,8 +120,8 @@ void S60EmulatorRunConfiguration::updateTarget() { if (m_cachedTargetInformationValid) return; - Qt4BuildConfiguration *qt4bc = static_cast(project()->activeBuildConfiguration()); - Qt4PriFileNode * priFileNode = static_cast(project())->rootProjectNode()->findProFileFor(m_proFilePath); + Qt4BuildConfiguration *qt4bc = qt4Project()->activeQt4BuildConfiguration(); + Qt4PriFileNode * priFileNode = qt4Project()->rootProjectNode()->findProFileFor(m_proFilePath); if (!priFileNode) { m_executable = QString::null; m_cachedTargetInformationValid = true; @@ -282,8 +288,7 @@ S60EmulatorRunControl::S60EmulatorRunControl(S60EmulatorRunConfiguration *runCon { // stuff like the EPOCROOT and EPOCDEVICE env variable Environment env = Environment::systemEnvironment(); - Project *project = runConfiguration->project(); - static_cast(project->activeBuildConfiguration())->toolChain()->addToEnvironment(env); + runConfiguration->qt4Project()->activeQt4BuildConfiguration()->toolChain()->addToEnvironment(env); m_applicationLauncher.setEnvironment(env.toStringList()); m_executable = runConfiguration->executable(); diff --git a/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.h b/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.h index 1650a0e710d..64c8cdfce93 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.h +++ b/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.h @@ -45,6 +45,8 @@ namespace Utils { } namespace Qt4ProjectManager { +class Qt4Project; + namespace Internal { class S60EmulatorRunConfiguration : public ProjectExplorer::RunConfiguration @@ -54,6 +56,8 @@ public: S60EmulatorRunConfiguration(ProjectExplorer::Project *project, const QString &proFilePath); ~S60EmulatorRunConfiguration(); + Qt4Project *qt4Project() const; + QString type() const; bool isEnabled(ProjectExplorer::BuildConfiguration *configuration) const; QWidget *configurationWidget(); diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp index 2916badccb2..56498625bd1 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp @@ -59,6 +59,11 @@ Qt4BuildConfiguration::~Qt4BuildConfiguration() } +Qt4Project *Qt4BuildConfiguration::qt4Project() const +{ + return static_cast(project()); +} + ProjectExplorer::Environment Qt4BuildConfiguration::baseEnvironment() const { Environment env = useSystemEnvironment() ? Environment::systemEnvironment() : Environment(); @@ -221,13 +226,13 @@ void Qt4BuildConfiguration::setQtVersion(int id) { setValue(KEY_QT_VERSION_ID, id); emit qtVersionChanged(); - static_cast(project())->updateActiveRunConfiguration(); + qt4Project()->updateActiveRunConfiguration(); } void Qt4BuildConfiguration::setToolChainType(ProjectExplorer::ToolChain::ToolChainType type) { setValue("ToolChain", (int)type); - static_cast(project())->updateActiveRunConfiguration(); + qt4Project()->updateActiveRunConfiguration(); } ProjectExplorer::ToolChain::ToolChainType Qt4BuildConfiguration::toolChainType() const diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.h b/src/plugins/qt4projectmanager/qt4buildconfiguration.h index f74aed9df43..bab8f0627b6 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.h +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.h @@ -51,6 +51,8 @@ public: Qt4BuildConfiguration(Qt4BuildConfiguration *source); ~Qt4BuildConfiguration(); + Qt4Project *qt4Project() const; + ProjectExplorer::Environment environment() const; ProjectExplorer::Environment baseEnvironment() const; void setUserEnvironmentChanges(const QList &diff); diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index 7276f950eb6..550e7593772 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.cpp +++ b/src/plugins/qt4projectmanager/qt4nodes.cpp @@ -1102,7 +1102,7 @@ ProFileReader *Qt4PriFileNode::createProFileReader() const connect(reader, SIGNAL(errorFound(QString)), m_project, SLOT(proFileParseError(QString))); - Qt4BuildConfiguration *qt4bc = static_cast(m_project->activeBuildConfiguration()); + Qt4BuildConfiguration *qt4bc = m_project->activeQt4BuildConfiguration(); QtVersion *version = qt4bc->qtVersion(); if (version->isValid()) diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 40b494e72e0..d3cb0ac77f7 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -336,6 +336,11 @@ Qt4Project::~Qt4Project() delete m_projectFiles; } +Qt4BuildConfiguration *Qt4Project::activeQt4BuildConfiguration() const +{ + return static_cast(activeBuildConfiguration()); +} + void Qt4Project::defaultQtVersionChanged() { if (static_cast(activeBuildConfiguration())->qtVersionId() == 0) @@ -521,7 +526,7 @@ void Qt4Project::updateCodeModel() if (debug) qDebug()<<"Qt4Project::updateCodeModel()"; - Qt4BuildConfiguration *activeQt4BuildConfiguration = static_cast(activeBuildConfiguration()); + Qt4BuildConfiguration *activeBC = activeQt4BuildConfiguration(); CppTools::CppModelManagerInterface *modelmanager = ExtensionSystem::PluginManager::instance() @@ -534,7 +539,7 @@ void Qt4Project::updateCodeModel() QStringList predefinedFrameworkPaths; QByteArray predefinedMacros; - ToolChain *tc = activeQt4BuildConfiguration->toolChain(); + ToolChain *tc = activeBC->toolChain(); QList allHeaderPaths; if (tc) { predefinedMacros = tc->predefinedMacros(); @@ -553,7 +558,7 @@ void Qt4Project::updateCodeModel() predefinedIncludePaths.append(headerPath.path()); } - const QHash versionInfo = activeQt4BuildConfiguration->qtVersion()->versionInfo(); + const QHash versionInfo = activeBC->qtVersion()->versionInfo(); const QString newQtIncludePath = versionInfo.value(QLatin1String("QT_INSTALL_HEADERS")); predefinedIncludePaths.append(newQtIncludePath); @@ -638,7 +643,7 @@ void Qt4Project::updateCodeModel() } // Add mkspec directory - info.includes.append(activeQt4BuildConfiguration->qtVersion()->mkspecPath()); + info.includes.append(activeBC->qtVersion()->mkspecPath()); info.frameworkPaths = allFrameworkPaths; @@ -652,7 +657,7 @@ void Qt4Project::updateCodeModel() } // Add mkspec directory - allIncludePaths.append(activeQt4BuildConfiguration->qtVersion()->mkspecPath()); + allIncludePaths.append(activeBC->qtVersion()->mkspecPath()); // Dump things out // This is debugging output... diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h index cff0723018d..758ec630f8f 100644 --- a/src/plugins/qt4projectmanager/qt4project.h +++ b/src/plugins/qt4projectmanager/qt4project.h @@ -158,6 +158,8 @@ public: explicit Qt4Project(Qt4Manager *manager, const QString &proFile); virtual ~Qt4Project(); + Internal::Qt4BuildConfiguration *activeQt4BuildConfiguration() const; + QString name() const; Core::IFile *file() const; ProjectExplorer::IProjectManager *projectManager() const; diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp index b069c09a44c..b155944af6a 100644 --- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp +++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp @@ -221,7 +221,7 @@ void Qt4ProjectConfigWidget::shadowBuildCheckBoxClicked(bool checked) else m_buildConfiguration->setValue("buildDirectory", QVariant(QString::null)); updateDetails(); - static_cast(m_buildConfiguration->project())->invalidateCachedTargetInformation(); + m_buildConfiguration->qt4Project()->invalidateCachedTargetInformation(); updateImportLabel(); } @@ -261,7 +261,7 @@ void Qt4ProjectConfigWidget::shadowBuildLineEditTextChanged() // offer to import it updateImportLabel(); - static_cast(m_buildConfiguration->project())->invalidateCachedTargetInformation(); + m_buildConfiguration->qt4Project()->invalidateCachedTargetInformation(); updateDetails(); } @@ -339,7 +339,7 @@ void Qt4ProjectConfigWidget::qtVersionComboBoxCurrentIndexChanged(const QString if (newQtVersion != m_buildConfiguration->qtVersionId()) { m_buildConfiguration->setQtVersion(newQtVersion); updateToolChainCombo(); - static_cast(m_buildConfiguration->project())->update(); + m_buildConfiguration->qt4Project()->update(); } updateDetails(); } @@ -359,7 +359,7 @@ void Qt4ProjectConfigWidget::updateToolChainCombo() void Qt4ProjectConfigWidget::selectToolChain(int index) { setToolChain(index); - static_cast(m_buildConfiguration->project())->update(); + m_buildConfiguration->qt4Project()->update(); } void Qt4ProjectConfigWidget::setToolChain(int index) diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp index 93dcffe431f..5cd5c93eb34 100644 --- a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp @@ -89,6 +89,11 @@ Qt4RunConfiguration::~Qt4RunConfiguration() { } +Qt4Project *Qt4RunConfiguration::qt4Project() const +{ + return static_cast(project()); +} + QString Qt4RunConfiguration::type() const { return "Qt4ProjectManager.Qt4RunConfiguration"; @@ -555,8 +560,8 @@ void Qt4RunConfiguration::updateTarget() if (m_cachedTargetInformationValid) return; //qDebug()<<"updateTarget"; - Qt4BuildConfiguration *qt4bc = static_cast(project()->activeBuildConfiguration()); - Qt4PriFileNode * priFileNode = static_cast(project())->rootProjectNode()->findProFileFor(m_proFilePath); + Qt4BuildConfiguration *qt4bc = qt4Project()->activeQt4BuildConfiguration(); + Qt4PriFileNode * priFileNode = qt4Project()->rootProjectNode()->findProFileFor(m_proFilePath); if (!priFileNode) { m_workingDir = QString::null; m_executable = QString::null; @@ -654,8 +659,7 @@ void Qt4RunConfiguration::invalidateCachedTargetInformation() QString Qt4RunConfiguration::dumperLibrary() const { - Qt4BuildConfiguration *qt4bc = static_cast(project()->activeBuildConfiguration()); - QtVersion *version = qt4bc->qtVersion(); + QtVersion *version = qt4Project()->activeQt4BuildConfiguration()->qtVersion(); if (version) return version->debuggingHelperLibrary(); else @@ -664,8 +668,7 @@ QString Qt4RunConfiguration::dumperLibrary() const QStringList Qt4RunConfiguration::dumperLibraryLocations() const { - Qt4BuildConfiguration *qt4bc = static_cast(project()->activeBuildConfiguration()); - QtVersion *version = qt4bc->qtVersion(); + QtVersion *version = qt4Project()->activeQt4BuildConfiguration()->qtVersion(); if (version) return version->debuggingHelperLibraryLocations(); else @@ -686,7 +689,7 @@ Qt4RunConfiguration::BaseEnvironmentBase Qt4RunConfiguration::baseEnvironmentBas } ProjectExplorer::ToolChain::ToolChainType Qt4RunConfiguration::toolChainType() const { - Qt4BuildConfiguration *qt4bc = static_cast(project()->activeBuildConfiguration()); + Qt4BuildConfiguration *qt4bc = qt4Project()->activeQt4BuildConfiguration(); return qt4bc->toolChainType(); } diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.h b/src/plugins/qt4projectmanager/qt4runconfiguration.h index 9fddd5efa2e..ce16df7c16a 100644 --- a/src/plugins/qt4projectmanager/qt4runconfiguration.h +++ b/src/plugins/qt4projectmanager/qt4runconfiguration.h @@ -65,6 +65,8 @@ public: Qt4RunConfiguration(Qt4Project *pro, const QString &proFilePath); virtual ~Qt4RunConfiguration(); + Qt4Project *qt4Project() const; + virtual QString type() const; virtual bool isEnabled(ProjectExplorer::BuildConfiguration *configuration) const; virtual QWidget *configurationWidget(); diff --git a/src/plugins/qt4projectmanager/qtuicodemodelsupport.cpp b/src/plugins/qt4projectmanager/qtuicodemodelsupport.cpp index 14b5982ca45..029028a2542 100644 --- a/src/plugins/qt4projectmanager/qtuicodemodelsupport.cpp +++ b/src/plugins/qt4projectmanager/qtuicodemodelsupport.cpp @@ -89,7 +89,7 @@ void Qt4UiCodeModelSupport::setFileName(const QString &name) bool Qt4UiCodeModelSupport::runUic(const QString &ui) const { - Qt4BuildConfiguration *qt4bc = static_cast(m_project->activeBuildConfiguration()); + Qt4BuildConfiguration *qt4bc = m_project->activeQt4BuildConfiguration(); QProcess uic; uic.setEnvironment(m_project->activeBuildConfiguration()->environment().toStringList()); uic.start(qt4bc->qtVersion()->uicCommand(), QStringList(), QIODevice::ReadWrite);