diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp index 5ea73b73a16..ff1918129bf 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp @@ -98,8 +98,12 @@ MaemoPackageCreationStep::~MaemoPackageCreationStep() void MaemoPackageCreationStep::ctor() { setDisplayName(tr("Packaging for Maemo")); - connect(buildConfiguration(), SIGNAL(buildDirectoryChanged()), this, - SIGNAL(packageFilePathChanged())); + + m_lastBuildConfig = qt4BuildConfiguration(); + connect(target(), + SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)), + this, SLOT(handleBuildConfigChanged())); + handleBuildConfigChanged(); } bool MaemoPackageCreationStep::init() @@ -274,6 +278,19 @@ void MaemoPackageCreationStep::handleBuildOutput() } } +void MaemoPackageCreationStep::handleBuildConfigChanged() +{ + if (m_lastBuildConfig) + disconnect(m_lastBuildConfig, 0, this, 0); + m_lastBuildConfig = qt4BuildConfiguration(); + connect(m_lastBuildConfig, SIGNAL(qtVersionChanged()), this, + SIGNAL(qtVersionChanged())); + connect(m_lastBuildConfig, SIGNAL(buildDirectoryChanged()), this, + SIGNAL(packageFilePathChanged())); + emit qtVersionChanged(); + emit packageFilePathChanged(); +} + const Qt4BuildConfiguration *MaemoPackageCreationStep::qt4BuildConfiguration() const { return static_cast(buildConfiguration()); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h index e986176b21d..dffcf93adfe 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h @@ -74,6 +74,8 @@ public: QString versionString(QString *error) const; bool setVersionString(const QString &version, QString *error); + const MaemoToolChain *maemoToolChain() const; + static bool preparePackagingProcess(QProcess *proc, const MaemoToolChain *tc, const QString &workingDir, QString *error); static QString packagingCommand(const MaemoToolChain *tc, @@ -86,9 +88,11 @@ public: signals: void packageFilePathChanged(); + void qtVersionChanged(); private slots: void handleBuildOutput(); + void handleBuildConfigChanged(); private: MaemoPackageCreationStep(ProjectExplorer::BuildStepList *buildConfig, @@ -114,7 +118,6 @@ private: QString buildDirectory() const; QString projectName() const; const Qt4BuildConfiguration *qt4BuildConfiguration() const; - const MaemoToolChain *maemoToolChain() const; MaemoDeployStep * deployStep() const; void checkProjectName(); @@ -122,6 +125,7 @@ private: bool m_packagingEnabled; QScopedPointer m_buildProc; + const Qt4BuildConfiguration *m_lastBuildConfig; }; } // namespace Internal diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp index b1b9975f637..2720b986139 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp @@ -44,6 +44,7 @@ #include "maemopackagecreationstep.h" #include "maemotemplatesmanager.h" +#include "maemotoolchain.h" #include #include @@ -83,6 +84,9 @@ void MaemoPackageCreationWidget::initGui() updatePackageManagerIcon(project); connect(m_step, SIGNAL(packageFilePathChanged()), this, SIGNAL(updateSummary())); + connect(m_step, SIGNAL(qtVersionChanged()), this, + SLOT(handleToolchainChanged())); + handleToolchainChanged(); versionInfoChanged(); connect(MaemoTemplatesManager::instance(), SIGNAL(debianDirContentsChanged(const ProjectExplorer::Project*)), @@ -158,6 +162,14 @@ void MaemoPackageCreationWidget::setPackageManagerIcon() } } +void MaemoPackageCreationWidget::handleToolchainChanged() +{ + m_ui->skipCheckBox + ->setVisible(m_step->maemoToolChain()->allowsPackagingDisabling()); + m_ui->skipCheckBox->setChecked(!m_step->isPackagingEnabled()); + emit updateSummary(); +} + QString MaemoPackageCreationWidget::summaryText() const { const QString constantString = tr("Create Package: "); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.h b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.h index c77be479179..1bf2bb7e29b 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.h @@ -50,7 +50,6 @@ QT_END_NAMESPACE namespace Qt4ProjectManager { namespace Internal { - class MaemoPackageCreationStep; class MaemoPackageCreationWidget : public ProjectExplorer::BuildStepConfigWidget @@ -72,6 +71,7 @@ private slots: void updateVersionInfo(const ProjectExplorer::Project *project); void updatePackageManagerIcon(const ProjectExplorer::Project *project); void setPackageManagerIcon(); + void handleToolchainChanged(); private: MaemoPackageCreationStep * const m_step; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h index f4fea4fa142..7584f47534f 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h @@ -55,7 +55,6 @@ class Qt4Target; class MaemoDeviceConfigListModel; class MaemoDeployStep; class MaemoManager; -class MaemoPackageCreationStep; class MaemoRemoteMountsModel; class MaemoRunConfigurationFactory; class MaemoToolChain; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp index db3dec83ff2..a0d962ec4b0 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp @@ -42,10 +42,13 @@ #include "maemoremotemountsmodel.h" #include "maemorunconfiguration.h" #include "maemosettingspage.h" +#include "maemotoolchain.h" #include #include #include +#include +#include #include #include @@ -71,6 +74,7 @@ MaemoRunConfigurationWidget::MaemoRunConfigurationWidget( m_ignoreChange(false), m_deviceEnvReader(new MaemoDeviceEnvReader(this, runConfiguration)) { + m_lastActiveBuildConfig = m_runConfiguration->activeQt4BuildConfiguration(); QVBoxLayout *mainLayout = new QVBoxLayout; setLayout(mainLayout); addGenericWidgets(mainLayout); @@ -82,6 +86,10 @@ MaemoRunConfigurationWidget::MaemoRunConfigurationWidget( SIGNAL(deviceConfigurationChanged(ProjectExplorer::Target*)), this, SLOT(handleCurrentDeviceConfigChanged())); handleCurrentDeviceConfigChanged(); + connect(m_runConfiguration->qt4Target(), + SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)), + this, SLOT(handleBuildConfigChanged())); + handleBuildConfigChanged(); } void MaemoRunConfigurationWidget::addGenericWidgets(QVBoxLayout *mainLayout) @@ -262,6 +270,26 @@ void MaemoRunConfigurationWidget::handleDeploySpecsChanged() m_remoteExecutableLabel->setText(m_runConfiguration->remoteExecutableFilePath()); } +void MaemoRunConfigurationWidget::handleBuildConfigChanged() +{ + if (m_lastActiveBuildConfig) + disconnect(m_lastActiveBuildConfig, 0, this, 0); + m_lastActiveBuildConfig = m_runConfiguration->activeQt4BuildConfiguration(); + if (m_lastActiveBuildConfig) { + connect(m_lastActiveBuildConfig, SIGNAL(qtVersionChanged()), this, + SLOT(handleToolchainChanged())); + } + handleToolchainChanged(); +} + +void MaemoRunConfigurationWidget::handleToolchainChanged() +{ + const bool remoteMountsAvailable + = m_runConfiguration->toolchain()->allowsRemoteMounts(); + m_debugDetailsContainer->setVisible(remoteMountsAvailable); + m_mountDetailsContainer->setVisible(remoteMountsAvailable); +} + void MaemoRunConfigurationWidget::showSettingsDialog(const QString &link) { if (link == QLatin1String("deviceconfig")) { diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h index 2452847125b..17e13f486d9 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h @@ -60,6 +60,7 @@ namespace Internal { class MaemoDeviceEnvReader; class MaemoRunConfiguration; +class Qt4BuildConfiguration; class MaemoRunConfigurationWidget : public QWidget { @@ -88,6 +89,8 @@ private slots: void userEnvironmentChangesChanged(const QList &userChanges); void handleRemoteMountsChanged(); void handleDeploySpecsChanged(); + void handleBuildConfigChanged(); + void handleToolchainChanged(); private: void addGenericWidgets(QVBoxLayout *mainLayout); @@ -113,6 +116,7 @@ private: QComboBox *m_baseEnvironmentComboBox; MaemoDeviceEnvReader *m_deviceEnvReader; ProjectExplorer::EnvironmentWidget *m_environmentWidget; + Qt4BuildConfiguration *m_lastActiveBuildConfig; }; } // namespace Internal