diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp index e01f2105d9b3bc33b35c5e4f8a35e2f246c28461..e4080c750cd468c58a05bf1673b9d2ae794bf6e6 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp @@ -278,14 +278,6 @@ MaemoDeviceConfig MaemoDeployStep::deviceConfig() const return deviceConfigModel()->current(); } -MaemoDeviceConfigListModel *MaemoDeployStep::deviceConfigModel() const -{ - const MaemoRunConfiguration * const rc = - qobject_cast<const MaemoRunConfiguration *>(buildConfiguration() - ->target()->activeRunConfiguration()); - return rc ? rc->deviceConfigModel() : m_deviceConfigModel; -} - void MaemoDeployStep::start() { #ifdef DEPLOY_VIA_MOUNT diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.h b/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.h index 7459e06075784340d86ad948d6f30b3469998301..559109cb855a5e5d9474b47ebe6a4fc602ae2876 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.h @@ -78,7 +78,7 @@ public: virtual ~MaemoDeployStep(); MaemoDeviceConfig deviceConfig() const; - MaemoDeviceConfigListModel *deviceConfigModel() const; + MaemoDeviceConfigListModel *deviceConfigModel() const { return m_deviceConfigModel; } bool currentlyNeedsDeployment(const QString &host, const MaemoDeployable &deployable) const; void setDeployed(const QString &host, const MaemoDeployable &deployable); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp index db1b8625ccd49a8570ff0669f17e64eaef60f95c..eef64f68df0925439b7d38973839dba22c400452 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp @@ -87,15 +87,13 @@ MaemoRunConfiguration::MaemoRunConfiguration(Qt4Target *parent, void MaemoRunConfiguration::init() { - m_devConfigModel = new MaemoDeviceConfigListModel(this); m_remoteMounts = new MaemoRemoteMountsModel(this); setDisplayName(QFileInfo(m_proFilePath).completeBaseName()); - updateDeviceConfigurations(); - connect(m_devConfigModel, SIGNAL(currentChanged()), this, - SLOT(updateDeviceConfigurations())); - connect(m_devConfigModel, SIGNAL(modelReset()), this, - SLOT(updateDeviceConfigurations())); + connect(target(), + SIGNAL(activeDeployConfigurationChanged(ProjectExplorer::DeployConfiguration*)), + this, SLOT(handleDeployConfigChanged())); + handleDeployConfigChanged(); connect(qt4Target()->qt4Project(), SIGNAL(proFileUpdated(Qt4ProjectManager::Internal::Qt4ProFileNode*)), @@ -150,7 +148,6 @@ QVariantMap MaemoRunConfiguration::toMap() const map.insert(BaseEnvironmentBaseKey, m_baseEnvironmentBase); map.insert(UserEnvironmentChangesKey, ProjectExplorer::EnvironmentItem::toStringList(m_userEnvironmentChanges)); - map.unite(m_devConfigModel->toMap()); map.unite(m_remoteMounts->toMap()); return map; } @@ -169,7 +166,6 @@ bool MaemoRunConfiguration::fromMap(const QVariantMap &map) .toStringList()); m_baseEnvironmentBase = static_cast<BaseEnvironmentBase> (map.value(BaseEnvironmentBaseKey, SystemEnvironmentBase).toInt()); - m_devConfigModel->fromMap(map); m_remoteMounts->fromMap(map); return true; @@ -177,12 +173,7 @@ bool MaemoRunConfiguration::fromMap(const QVariantMap &map) MaemoDeviceConfig MaemoRunConfiguration::deviceConfig() const { - return m_devConfigModel->current(); -} - -MaemoDeviceConfigListModel *MaemoRunConfiguration::deviceConfigModel() const -{ - return m_devConfigModel; + return deployStep()->deviceConfigModel()->current(); } const MaemoToolChain *MaemoRunConfiguration::toolchain() const @@ -301,6 +292,30 @@ void MaemoRunConfiguration::updateDeviceConfigurations() emit deviceConfigurationChanged(target()); } +void MaemoRunConfiguration::handleDeployConfigChanged() +{ + const QList<DeployConfiguration *> &deployConfigs + = target()->deployConfigurations(); + DeployConfiguration * const activeDeployConf + = target()->activeDeployConfiguration(); + for (int i = 0; i < deployConfigs.count(); ++i) { + MaemoDeployStep * const step + = MaemoGlobal::buildStep<MaemoDeployStep>(deployConfigs.at(i)); + MaemoDeviceConfigListModel * const devConfigModel + = step->deviceConfigModel(); + if (deployConfigs.at(i) == activeDeployConf) { + connect(devConfigModel, SIGNAL(currentChanged()), this, + SLOT(updateDeviceConfigurations())); + connect(devConfigModel, SIGNAL(modelReset()), this, + SLOT(updateDeviceConfigurations())); + } else { + disconnect(devConfigModel, 0, this, + SLOT(updateDeviceConfigurations())); + } + } + updateDeviceConfigurations(); +} + QString MaemoRunConfiguration::baseEnvironmentText() const { if (m_baseEnvironmentBase == CleanEnvironmentBase) diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h index bdac522f10d0dafb57ebb4dada192f480510ddf6..ffd8f4d5ce0e22bca6a3938812e60625ae78ff87 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h @@ -92,7 +92,6 @@ public: const QStringList arguments() const; void setArguments(const QStringList &args); MaemoDeviceConfig deviceConfig() const; - MaemoDeviceConfigListModel *deviceConfigModel() const; MaemoPortList freePorts() const; bool useRemoteGdb() const { return m_useRemoteGdb; } void setUseRemoteGdb(bool useRemoteGdb) { m_useRemoteGdb = useRemoteGdb; } @@ -132,6 +131,7 @@ protected: private slots: void proFileUpdate(Qt4ProjectManager::Internal::Qt4ProFileNode *pro); void updateDeviceConfigurations(); + void handleDeployConfigChanged(); private: void init(); @@ -139,7 +139,6 @@ private: private: QString m_proFilePath; mutable QString m_gdbPath; - MaemoDeviceConfigListModel *m_devConfigModel; MaemoRemoteMountsModel *m_remoteMounts; QStringList m_arguments; bool m_useRemoteGdb; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp index 1db8816256214338597e4bc03765d6310d0fb192..db3dec83ff2249470ce49ae2de338aa2960de28b 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp @@ -78,7 +78,8 @@ MaemoRunConfigurationWidget::MaemoRunConfigurationWidget( addDebuggingWidgets(mainLayout); addMountWidgets(mainLayout); addEnvironmentWidgets(mainLayout); - connect(m_runConfiguration->deviceConfigModel(), SIGNAL(currentChanged()), + connect(m_runConfiguration, + SIGNAL(deviceConfigurationChanged(ProjectExplorer::Target*)), this, SLOT(handleCurrentDeviceConfigChanged())); handleCurrentDeviceConfigChanged(); } @@ -93,11 +94,9 @@ void MaemoRunConfigurationWidget::addGenericWidgets(QVBoxLayout *mainLayout) QWidget *devConfWidget = new QWidget; QHBoxLayout *devConfLayout = new QHBoxLayout(devConfWidget); - m_devConfBox = new QComboBox; - m_devConfBox->setSizeAdjustPolicy(QComboBox::AdjustToContents); - m_devConfBox->setModel(m_runConfiguration->deviceConfigModel()); + m_devConfLabel = new QLabel; devConfLayout->setMargin(0); - devConfLayout->addWidget(m_devConfBox); + devConfLayout->addWidget(m_devConfLabel); QLabel *addDevConfLabel= new QLabel(tr("<a href=\"%1\">Manage device configurations</a>") .arg(QLatin1String("deviceconfig"))); addDevConfLabel->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred); @@ -125,8 +124,6 @@ void MaemoRunConfigurationWidget::addGenericWidgets(QVBoxLayout *mainLayout) SLOT(configNameEdited(QString))); connect(m_argsLineEdit, SIGNAL(textEdited(QString)), this, SLOT(argumentsEdited(QString))); - connect(m_devConfBox, SIGNAL(activated(int)), this, - SLOT(setCurrentDeviceConfig(int))); connect(m_runConfiguration, SIGNAL(targetInformationChanged()), this, SLOT(updateTargetInformation())); connect(m_runConfiguration->deployStep()->deployables(), @@ -278,16 +275,10 @@ void MaemoRunConfigurationWidget::showSettingsDialog(const QString &link) void MaemoRunConfigurationWidget::handleCurrentDeviceConfigChanged() { - m_devConfBox->setCurrentIndex(m_runConfiguration->deviceConfigModel() - ->currentIndex()); + m_devConfLabel->setText(m_runConfiguration->deviceConfig().name); updateMountWarning(); } -void MaemoRunConfigurationWidget::setCurrentDeviceConfig(int index) -{ - m_runConfiguration->deviceConfigModel()->setCurrentIndex(index); -} - void MaemoRunConfigurationWidget::enableOrDisableRemoveMountSpecButton() { const QModelIndexList selectedRows diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h index b693c074d41efe6b5c8e51170032d39a4ceb5f65..2452847125be1179f61422925e1d4344776df1c6 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h @@ -74,7 +74,6 @@ private slots: void showSettingsDialog(const QString &link); void updateTargetInformation(); void handleCurrentDeviceConfigChanged(); - void setCurrentDeviceConfig(int index); void addMount(); void removeMount(); void changeLocalMountDir(const QModelIndex &index); @@ -101,7 +100,7 @@ private: QLineEdit *m_argsLineEdit; QLabel *m_localExecutableLabel; QLabel *m_remoteExecutableLabel; - QComboBox *m_devConfBox; + QLabel *m_devConfLabel; QLabel *m_mountWarningLabel; QTableView *m_mountView; QToolButton *m_removeMountButton;