ProjectExplorer: Move configWidget from Project to Target

Reviewed-By: hunger
This commit is contained in:
dt
2010-12-06 12:45:05 +01:00
parent 68d6bfe33b
commit b477441ef9
21 changed files with 60 additions and 53 deletions

View File

@@ -474,11 +474,6 @@ QList<ProjectExplorer::Project *> CMakeProject::dependsOn()
return QList<Project *>();
}
ProjectExplorer::BuildConfigWidget *CMakeProject::createConfigWidget()
{
return new CMakeBuildSettingsWidget(this);
}
QList<ProjectExplorer::BuildConfigWidget*> CMakeProject::subConfigWidgets()
{
QList<ProjectExplorer::BuildConfigWidget*> list;
@@ -795,8 +790,8 @@ void CMakeFile::reload(ReloadFlag flag, ChangeType type)
Q_UNUSED(type)
}
CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeProject *project)
: m_project(project), m_buildConfiguration(0)
CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeTarget *target)
: m_target(target), m_buildConfiguration(0)
{
QFormLayout *fl = new QFormLayout(this);
fl->setContentsMargins(20, -1, 0, -1);
@@ -832,7 +827,7 @@ void CMakeBuildSettingsWidget::init(BuildConfiguration *bc)
{
m_buildConfiguration = static_cast<CMakeBuildConfiguration *>(bc);
m_pathLineEdit->setText(m_buildConfiguration->buildDirectory());
if (m_buildConfiguration->buildDirectory() == m_project->projectDirectory())
if (m_buildConfiguration->buildDirectory() == m_target->cmakeProject()->projectDirectory())
m_changeButton->setEnabled(false);
else
m_changeButton->setEnabled(true);
@@ -840,12 +835,13 @@ void CMakeBuildSettingsWidget::init(BuildConfiguration *bc)
void CMakeBuildSettingsWidget::openChangeBuildDirectoryDialog()
{
CMakeOpenProjectWizard copw(m_project->projectManager(),
m_project->projectDirectory(),
CMakeProject *project = m_target->cmakeProject();
CMakeOpenProjectWizard copw(project->projectManager(),
project->projectDirectory(),
m_buildConfiguration->buildDirectory(),
m_buildConfiguration->environment());
if (copw.exec() == QDialog::Accepted) {
m_project->changeBuildDirectory(m_buildConfiguration, copw.buildDirectory());
project->changeBuildDirectory(m_buildConfiguration, copw.buildDirectory());
m_pathLineEdit->setText(m_buildConfiguration->buildDirectory());
}
}
@@ -853,13 +849,14 @@ void CMakeBuildSettingsWidget::openChangeBuildDirectoryDialog()
void CMakeBuildSettingsWidget::runCMake()
{
// TODO skip build directory
CMakeOpenProjectWizard copw(m_project->projectManager(),
m_project->projectDirectory(),
CMakeProject *project = m_target->cmakeProject();
CMakeOpenProjectWizard copw(project->projectManager(),
project->projectDirectory(),
m_buildConfiguration->buildDirectory(),
CMakeOpenProjectWizard::WantToUpdate,
m_buildConfiguration->environment());
if (copw.exec() == QDialog::Accepted) {
m_project->parseCMakeLists();
project->parseCMakeLists();
}
}

View File

@@ -85,7 +85,6 @@ public:
QList<ProjectExplorer::Project *> dependsOn(); //NBS TODO implement dependsOn
ProjectExplorer::BuildConfigWidget *createConfigWidget();
QList<ProjectExplorer::BuildConfigWidget*> subConfigWidgets();
ProjectExplorer::ProjectNode *rootProjectNode() const;
@@ -222,7 +221,7 @@ class CMakeBuildSettingsWidget : public ProjectExplorer::BuildConfigWidget
{
Q_OBJECT
public:
explicit CMakeBuildSettingsWidget(CMakeProject *project);
explicit CMakeBuildSettingsWidget(CMakeTarget *target);
QString displayName() const;
// This is called to set up the config widget before showing it
@@ -232,7 +231,7 @@ private slots:
void openChangeBuildDirectoryDialog();
void runCMake();
private:
CMakeProject *m_project;
CMakeTarget *m_target;
QLineEdit *m_pathLineEdit;
QPushButton *m_changeButton;
CMakeBuildConfiguration *m_buildConfiguration;

View File

@@ -78,6 +78,11 @@ CMakeProject *CMakeTarget::cmakeProject() const
return static_cast<CMakeProject *>(project());
}
ProjectExplorer::BuildConfigWidget *CMakeTarget::createConfigWidget()
{
return new CMakeBuildSettingsWidget(this);
}
bool CMakeTargetFactory::supportsTargetId(const QString &id) const
{
return id == DEFAULT_CMAKE_TARGET_ID;

View File

@@ -54,6 +54,8 @@ public:
CMakeTarget(CMakeProject *parent);
~CMakeTarget();
ProjectExplorer::BuildConfigWidget *createConfigWidget();
CMakeProject *cmakeProject() const;
CMakeBuildConfiguration *activeBuildConfiguration() const;