diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 6a7f03aaaa32ce6054ff956fe701258b9b811f22..42ab6d246801e7d462ccb455923a5d5796c8f657 100644 --- a/src/plugins/qt4projectmanager/qmakestep.cpp +++ b/src/plugins/qt4projectmanager/qmakestep.cpp @@ -216,10 +216,10 @@ bool QMakeStep::processFinished(int exitCode, QProcess::ExitStatus status) return result; } -void QMakeStep::setQMakeArguments(const QStringList &arguments) +void QMakeStep::setUserArguments(const QStringList &arguments) { m_userArgs = arguments; - emit changed(); + emit userArgumentsChanged(); } QStringList QMakeStep::userArguments() @@ -240,14 +240,14 @@ void QMakeStep::storeIntoLocalMap(QMap<QString, QVariant> &map) } QMakeStepConfigWidget::QMakeStepConfigWidget(QMakeStep *step) - : BuildStepConfigWidget(), m_step(step) + : BuildStepConfigWidget(), m_step(step), m_ignoreChange(false) { m_ui.setupUi(this); connect(m_ui.qmakeAdditonalArgumentsLineEdit, SIGNAL(textEdited(const QString&)), this, SLOT(qmakeArgumentsLineEditTextEdited())); connect(m_ui.buildConfigurationComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(buildConfigurationChanged())); - connect(step, SIGNAL(changed()), - this, SLOT(update())); + connect(step, SIGNAL(userArgumentsChanged()), + this, SLOT(userArgumentsChanged())); connect(step->buildConfiguration(), SIGNAL(qtVersionChanged()), this, SLOT(qtVersionChanged())); } @@ -289,8 +289,10 @@ void QMakeStepConfigWidget::updateTitleLabel() void QMakeStepConfigWidget::qmakeArgumentsLineEditTextEdited() { - m_step->setQMakeArguments( + m_ignoreChange = true; + m_step->setUserArguments( ProjectExplorer::Environment::parseCombinedArgString(m_ui.qmakeAdditonalArgumentsLineEdit->text())); + m_ignoreChange = false; m_step->qt4BuildConfiguration()->qt4Project()->invalidateCachedTargetInformation(); updateTitleLabel(); @@ -321,9 +323,12 @@ QString QMakeStepConfigWidget::displayName() const return m_step->displayName(); } -void QMakeStepConfigWidget::update() +void QMakeStepConfigWidget::userArgumentsChanged() { - init(); + if (m_ignoreChange) + return; + QString qmakeArgs = ProjectExplorer::Environment::joinArgumentList(m_step->userArguments()); + m_ui.qmakeAdditonalArgumentsLineEdit->setText(qmakeArgs); } void QMakeStepConfigWidget::init() diff --git a/src/plugins/qt4projectmanager/qmakestep.h b/src/plugins/qt4projectmanager/qmakestep.h index 36df20026af9378fd46184c0f7906defd4f645d2..c6a4a37b95dbaa5d1c8fcfaa4ce37c4fbfcecdc1 100644 --- a/src/plugins/qt4projectmanager/qmakestep.h +++ b/src/plugins/qt4projectmanager/qmakestep.h @@ -83,13 +83,13 @@ public: QStringList allArguments(); QStringList userArguments(); - void setQMakeArguments(const QStringList &arguments); + void setUserArguments(const QStringList &arguments); virtual void restoreFromLocalMap(const QMap<QString, QVariant> &map); virtual void storeIntoLocalMap(QMap<QString, QVariant> &map); signals: - void changed(); + void userArgumentsChanged(); protected: virtual void processStartupFailed(); @@ -115,7 +115,7 @@ public: private slots: void qmakeArgumentsLineEditTextEdited(); void buildConfigurationChanged(); - void update(); + void userArgumentsChanged(); void qtVersionChanged(); private: void updateTitleLabel(); @@ -123,6 +123,7 @@ private: Ui::QMakeStep m_ui; QMakeStep *m_step; QString m_summaryText; + bool m_ignoreChange; }; } // namespace Qt4ProjectManager diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 88d2afad29758b9b11f56a1a645627ff2b164246..9fafc02dd52ebccd1b1ca770a87f8cc664a03ac2 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -476,7 +476,7 @@ Qt4BuildConfiguration *Qt4Project::addQt4BuildConfiguration(QString displayName, cleanStep->setClean(true); bc->insertCleanStep(0, cleanStep); if (!additionalArguments.isEmpty()) - qmakeStep->setQMakeArguments(additionalArguments); + qmakeStep->setUserArguments(additionalArguments); // set some options for qmake and make if (qmakeBuildConfiguration & QtVersion::BuildAll) // debug_and_release => explicit targets diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp index f97ae476e5dc81f593e865c2c7a7549b82d64651..fb9ba63807c6070dfb855149e664143945f533ef 100644 --- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp +++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp @@ -298,7 +298,7 @@ void Qt4ProjectConfigWidget::importLabelClicked() // Combo box will be updated at the end QMakeStep *qmakeStep = m_buildConfiguration->qmakeStep(); - qmakeStep->setQMakeArguments(additionalArguments); + qmakeStep->setUserArguments(additionalArguments); MakeStep *makeStep = m_buildConfiguration->makeStep(); m_buildConfiguration->setValue("buildConfiguration", int(qmakeBuildConfig));