diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 4edc5abc8f6d785015811cb351c50f340905f385..60c8ccafd8061c670dac28735b39672094b88129 100644 --- a/src/plugins/qt4projectmanager/qmakestep.cpp +++ b/src/plugins/qt4projectmanager/qmakestep.cpp @@ -225,6 +225,7 @@ bool QMakeStep::processFinished(int exitCode, QProcess::ExitStatus status) bool result = AbstractProcessStep::processFinished(exitCode, status); if (!result) m_forced = true; + qt4BuildConfiguration()->emitBuildDirectoryInitialized(); return result; } diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp index 1cf57a5b054473d243e339161947661d80be9053..e205507d9be06e8861be367dacfb0ef2422e09a3 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp @@ -372,6 +372,11 @@ void Qt4BuildConfiguration::emitQMakeBuildConfigurationChanged() emit qmakeBuildConfigurationChanged(); } +void Qt4BuildConfiguration::emitBuildDirectoryInitialized() +{ + emit buildDirectoryInitialized(); +} + void Qt4BuildConfiguration::getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const { QtVersion::QmakeBuildConfigs defaultBuildConfiguration = qtVersion()->defaultBuildConfig(); diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.h b/src/plugins/qt4projectmanager/qt4buildconfiguration.h index 08c032d8ba4a589f2e85a9c65fb1c2e0c13acbf3..3846e587ff200acb8f8f9b369c4660c613e3be5b 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.h +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.h @@ -86,6 +86,9 @@ public: // used by qmake step to notify that the qmake args have changed // not really nice void emitQMakeBuildConfigurationChanged(); + // used by qmake step to notify that the build directory was initialized + // not really nice + void emitBuildDirectoryInitialized(); void getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const; // Those functions are used in a few places. @@ -120,6 +123,8 @@ signals: /// configuration changed void targetInformationChanged(); + void buildDirectoryInitialized(); + private slots: void qtVersionsChanged(const QList<int> &changedVersions); diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 01e6e85221e6af812a8bafd12ab54b1e7f409a5e..05a6ef003c11f73d82fcb7dfa73be1314314089a 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -390,6 +390,10 @@ void Qt4Project::onAddedTarget(ProjectExplorer::Target *t) Q_ASSERT(t); connect(t, SIGNAL(targetInformationChanged()), this, SLOT(changeTargetInformation())); + Qt4Target *qt4target = qobject_cast<Qt4Target *>(t); + Q_ASSERT(qt4target); + connect(qt4target, SIGNAL(buildDirectoryInitialized()), + this, SIGNAL(buildDirectoryInitialized())); } void Qt4Project::updateCodeModel() diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h index 026ae43629499215235c2126e721f6fdba9315a1..2db01774824c8152f513957012886670b4d90173 100644 --- a/src/plugins/qt4projectmanager/qt4project.h +++ b/src/plugins/qt4projectmanager/qt4project.h @@ -172,6 +172,7 @@ signals: /// (which can happen by the active target changing, too). void targetInformationChanged(); void proFileUpdated(Qt4ProjectManager::Internal::Qt4ProFileNode *node); + void buildDirectoryInitialized(); public slots: void proFileParseError(const QString &errorMessage); diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp index 9aab42f1344d073657ea1f3e91a4bb780187337f..7825142f70fcf82f08da68f0da498efcbb0d71df 100644 --- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp +++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp @@ -41,7 +41,6 @@ #include <coreplugin/mainwindow.h> #include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/buildconfiguration.h> -#include <projectexplorer/buildmanager.h> #include <utils/qtcassert.h> #include <extensionsystem/pluginmanager.h> @@ -103,8 +102,7 @@ Qt4ProjectConfigWidget::Qt4ProjectConfigWidget(Qt4Project *project) connect(m_ui->manageQtVersionPushButtons, SIGNAL(clicked()), this, SLOT(manageQtVersions())); - connect(ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager(), - SIGNAL(buildQueueFinished(bool)), + connect(project, SIGNAL(buildDirectoryInitialized()), this, SLOT(updateImportLabel())); QtVersionManager *vm = QtVersionManager::instance(); diff --git a/src/plugins/qt4projectmanager/qt4target.cpp b/src/plugins/qt4projectmanager/qt4target.cpp index 11feec2c3b6ec4dc820d2f0a673fb0f3ec237eac..7eb7c60d219576c31840e4d89c338404ce9c3f10 100644 --- a/src/plugins/qt4projectmanager/qt4target.cpp +++ b/src/plugins/qt4projectmanager/qt4target.cpp @@ -190,6 +190,8 @@ Qt4Target::Qt4Target(Qt4Project *parent, const QString &id) : this, SIGNAL(environmentChanged())); connect(this, SIGNAL(addedRunConfiguration(ProjectExplorer::RunConfiguration*)), this, SLOT(onAddedRunConfiguration(ProjectExplorer::RunConfiguration*))); + connect(this, SIGNAL(addedBuildConfiguration(ProjectExplorer::BuildConfiguration*)), + this, SLOT(onAddedBuildConfiguration(ProjectExplorer::BuildConfiguration*))); connect(this, SIGNAL(activeRunConfigurationChanged(ProjectExplorer::RunConfiguration*)), this, SLOT(updateToolTipAndIcon())); @@ -403,6 +405,15 @@ void Qt4Target::onAddedRunConfiguration(ProjectExplorer::RunConfiguration *rc) this, SLOT(slotUpdateDeviceInformation())); } +void Qt4Target::onAddedBuildConfiguration(ProjectExplorer::BuildConfiguration *bc) +{ + Q_ASSERT(bc); + Qt4BuildConfiguration *qt4bc = qobject_cast<Qt4BuildConfiguration *>(bc); + Q_ASSERT(qt4bc); + connect(qt4bc, SIGNAL(buildDirectoryInitialized()), + this, SIGNAL(buildDirectoryInitialized())); +} + void Qt4Target::slotUpdateDeviceInformation() { S60DeviceRunConfiguration *deviceRc(qobject_cast<S60DeviceRunConfiguration *>(sender())); diff --git a/src/plugins/qt4projectmanager/qt4target.h b/src/plugins/qt4projectmanager/qt4target.h index 7bd3e0a49155cd5df8dc5a7f23106a09aee912d6..cd91d3923584c2661d661821f889a8fc554f89fa 100644 --- a/src/plugins/qt4projectmanager/qt4target.h +++ b/src/plugins/qt4projectmanager/qt4target.h @@ -99,12 +99,15 @@ signals: /// targetInformationChanged() or if the active build configuration changes void targetInformationChanged(); + void buildDirectoryInitialized(); + protected: bool fromMap(const QVariantMap &map); private slots: void updateQtVersion(); void onAddedRunConfiguration(ProjectExplorer::RunConfiguration *rc); + void onAddedBuildConfiguration(ProjectExplorer::BuildConfiguration *bc); void slotUpdateDeviceInformation(); void updateToolTipAndIcon();