From 261966dbb73fec54ed1a460f88cf44e1a8478d83 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 15 Feb 2010 17:33:56 +0100 Subject: [PATCH] Have qmakestep trigger the import label * Do not use the BuildManager but have the qmakestep trigger the update via the target and project. Reviewed-by: dt --- src/plugins/qt4projectmanager/qmakestep.cpp | 1 + .../qt4projectmanager/qt4buildconfiguration.cpp | 5 +++++ src/plugins/qt4projectmanager/qt4buildconfiguration.h | 5 +++++ src/plugins/qt4projectmanager/qt4project.cpp | 4 ++++ src/plugins/qt4projectmanager/qt4project.h | 1 + .../qt4projectmanager/qt4projectconfigwidget.cpp | 4 +--- src/plugins/qt4projectmanager/qt4target.cpp | 11 +++++++++++ src/plugins/qt4projectmanager/qt4target.h | 3 +++ 8 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 4edc5abc8f6..60c8ccafd80 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 1cf57a5b054..e205507d9be 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 08c032d8ba4..3846e587ff2 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 &changedVersions); diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 01e6e85221e..05a6ef003c1 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(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 026ae436294..2db01774824 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 9aab42f1344..7825142f70f 100644 --- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp +++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp @@ -41,7 +41,6 @@ #include #include #include -#include #include #include @@ -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 11feec2c3b6..7eb7c60d219 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(bc); + Q_ASSERT(qt4bc); + connect(qt4bc, SIGNAL(buildDirectoryInitialized()), + this, SIGNAL(buildDirectoryInitialized())); +} + void Qt4Target::slotUpdateDeviceInformation() { S60DeviceRunConfiguration *deviceRc(qobject_cast(sender())); diff --git a/src/plugins/qt4projectmanager/qt4target.h b/src/plugins/qt4projectmanager/qt4target.h index 7bd3e0a4915..cd91d392358 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();