diff --git a/src/plugins/remotelinux/abstractlinuxdevicedeploystep.cpp b/src/plugins/remotelinux/abstractlinuxdevicedeploystep.cpp index c236f5a1cf3..b58ba5eff26 100644 --- a/src/plugins/remotelinux/abstractlinuxdevicedeploystep.cpp +++ b/src/plugins/remotelinux/abstractlinuxdevicedeploystep.cpp @@ -31,10 +31,7 @@ **************************************************************************/ #include "abstractlinuxdevicedeploystep.h" -#include "linuxdeviceconfigurations.h" -#include "maemoconstants.h" -#include "maemodeploystepwidget.h" -#include "maemopertargetdeviceconfigurationlistmodel.h" +#include "linuxdeviceconfiguration.h" #include "qt4maemodeployconfiguration.h" using namespace ProjectExplorer; @@ -44,13 +41,22 @@ namespace Internal { AbstractLinuxDeviceDeployStep::AbstractLinuxDeviceDeployStep(DeployConfiguration *dc) - : m_helper(qobject_cast(dc)) + : m_deployConfiguration(qobject_cast(dc)) { } +AbstractLinuxDeviceDeployStep::~AbstractLinuxDeviceDeployStep() +{ +} + +LinuxDeviceConfiguration::ConstPtr AbstractLinuxDeviceDeployStep::deviceConfiguration() const +{ + return m_deviceConfiguration; +} + bool AbstractLinuxDeviceDeployStep::isDeploymentPossible(QString &whyNot) const { - if (!m_helper.deviceConfig()) { + if (!m_deployConfiguration->deviceConfiguration()) { whyNot = tr("No valid device set."); return false; } @@ -61,49 +67,7 @@ bool AbstractLinuxDeviceDeployStep::initialize(QString &errorMsg) { if (!isDeploymentPossible(errorMsg)) return false; - m_helper.prepareDeployment(); - return true; -} - - -LinuxDeviceDeployStepHelper::LinuxDeviceDeployStepHelper(Qt4MaemoDeployConfiguration *dc) - : m_deployConfiguration(dc) -{ - m_deviceConfig = dc->deviceConfigModel()->defaultDeviceConfig(); - connect(dc->deviceConfigModel().data(), SIGNAL(updated()), - SLOT(handleDeviceConfigurationsUpdated())); -} - -LinuxDeviceDeployStepHelper::~LinuxDeviceDeployStepHelper() {} - -void LinuxDeviceDeployStepHelper::handleDeviceConfigurationsUpdated() -{ - setDeviceConfig(LinuxDeviceConfigurations::instance()->internalId(m_deviceConfig)); -} - -void LinuxDeviceDeployStepHelper::setDeviceConfig(LinuxDeviceConfiguration::Id internalId) -{ - m_deviceConfig = deployConfiguration()->deviceConfigModel()->find(internalId); - emit deviceConfigChanged(); -} - -void LinuxDeviceDeployStepHelper::setDeviceConfig(int i) -{ - m_deviceConfig = deployConfiguration()->deviceConfigModel()->deviceAt(i); - emit deviceConfigChanged(); -} - -QVariantMap LinuxDeviceDeployStepHelper::toMap() const -{ - QVariantMap map; - map.insert(DeviceIdKey, - LinuxDeviceConfigurations::instance()->internalId(m_deviceConfig)); - return map; -} - -bool LinuxDeviceDeployStepHelper::fromMap(const QVariantMap &map) -{ - setDeviceConfig(map.value(DeviceIdKey, LinuxDeviceConfiguration::InvalidId).toULongLong()); + m_deviceConfiguration = m_deployConfiguration->deviceConfiguration(); return true; } diff --git a/src/plugins/remotelinux/abstractlinuxdevicedeploystep.h b/src/plugins/remotelinux/abstractlinuxdevicedeploystep.h index 5edb9c82bb1..3144e5f5af3 100644 --- a/src/plugins/remotelinux/abstractlinuxdevicedeploystep.h +++ b/src/plugins/remotelinux/abstractlinuxdevicedeploystep.h @@ -32,68 +32,37 @@ #ifndef ABSTRACTLINUXDEVICEDEPLOYSTEP_H #define ABSTRACTLINUXDEVICEDEPLOYSTEP_H -#include "linuxdeviceconfiguration.h" - #include #include -#include namespace ProjectExplorer { class DeployConfiguration; } namespace RemoteLinux { +class LinuxDeviceConfiguration; + namespace Internal { class Qt4MaemoDeployConfiguration; - -class LinuxDeviceDeployStepHelper : public QObject -{ - Q_OBJECT -public: - LinuxDeviceDeployStepHelper(Qt4MaemoDeployConfiguration *dc); - ~LinuxDeviceDeployStepHelper(); - - QSharedPointer deviceConfig() const { return m_deviceConfig; } - QSharedPointer cachedDeviceConfig() const { return m_cachedDeviceConfig; } - Qt4MaemoDeployConfiguration *deployConfiguration() const { return m_deployConfiguration; } - - void setDeviceConfig(int i); - void prepareDeployment() { m_cachedDeviceConfig = m_deviceConfig; } - - QVariantMap toMap() const; - bool fromMap(const QVariantMap &map); - -signals: - void deviceConfigChanged(); - -private: - void setDeviceConfig(LinuxDeviceConfiguration::Id internalId); - Q_SLOT void handleDeviceConfigurationsUpdated(); - - QSharedPointer m_deviceConfig; - QSharedPointer m_cachedDeviceConfig; - Qt4MaemoDeployConfiguration * const m_deployConfiguration; -}; - class AbstractLinuxDeviceDeployStep { Q_DECLARE_TR_FUNCTIONS(AbstractLinuxDeviceDeployStep) public: - virtual ~AbstractLinuxDeviceDeployStep() {} + virtual ~AbstractLinuxDeviceDeployStep(); - Qt4MaemoDeployConfiguration *maemoDeployConfig() const { return m_helper.deployConfiguration(); } + Qt4MaemoDeployConfiguration *maemoDeployConfig() const { return m_deployConfiguration; } bool isDeploymentPossible(QString &whyNot) const; - LinuxDeviceDeployStepHelper &helper() { return m_helper; } - const LinuxDeviceDeployStepHelper &helper() const { return m_helper; } protected: AbstractLinuxDeviceDeployStep(ProjectExplorer::DeployConfiguration *dc); + QSharedPointer deviceConfiguration() const; bool initialize(QString &errorMsg); private: virtual bool isDeploymentPossibleInternal(QString &whynot) const=0; - LinuxDeviceDeployStepHelper m_helper; + Qt4MaemoDeployConfiguration * const m_deployConfiguration; + mutable QSharedPointer m_deviceConfiguration; }; } // namespace Internal diff --git a/src/plugins/remotelinux/abstractmaemodeploystep.cpp b/src/plugins/remotelinux/abstractmaemodeploystep.cpp index 5ba37f7540b..12ea705367d 100644 --- a/src/plugins/remotelinux/abstractmaemodeploystep.cpp +++ b/src/plugins/remotelinux/abstractmaemodeploystep.cpp @@ -129,14 +129,13 @@ void AbstractMaemoDeployStep::run(QFutureInterface &fi) BuildStepConfigWidget *AbstractMaemoDeployStep::createConfigWidget() { - return new MaemoDeployStepWidget(this); + return new MaemoDeployStepBaseWidget(this); } QVariantMap AbstractMaemoDeployStep::toMap() const { QVariantMap map(BuildStep::toMap()); addDeployTimesToMap(map); - map.unite(helper().toMap()); return map; } @@ -163,8 +162,6 @@ bool AbstractMaemoDeployStep::fromMap(const QVariantMap &map) { if (!BuildStep::fromMap(map)) return false; - if (!helper().fromMap(map)) - return false; getDeployTimesFromMap(map); return true; } @@ -247,8 +244,8 @@ void AbstractMaemoDeployStep::start() } m_hasError = false; - if (isDeploymentNeeded(helper().cachedDeviceConfig()->sshParameters().host)) { - if (helper().cachedDeviceConfig()->type() == LinuxDeviceConfiguration::Emulator + if (isDeploymentNeeded(deviceConfiguration()->sshParameters().host)) { + if (deviceConfiguration()->type() == LinuxDeviceConfiguration::Emulator && !MaemoQemuManager::instance().qemuIsRunning()) { MaemoQemuManager::instance().startRuntime(); raiseError(tr("Cannot deploy: Qemu was not running. " @@ -271,7 +268,7 @@ void AbstractMaemoDeployStep::handleConnectionFailure() return; const QString errorMsg = m_baseState == Connecting - ? MaemoGlobal::failedToConnectToServerMessage(m_connection, helper().cachedDeviceConfig()) + ? MaemoGlobal::failedToConnectToServerMessage(m_connection, deviceConfiguration()) : tr("Connection error: %1").arg(m_connection->errorString()); raiseError(errorMsg); setDeploymentFinished(); @@ -282,7 +279,7 @@ void AbstractMaemoDeployStep::connectToDevice() ASSERT_STATE(QList() << BaseInactive); setBaseState(Connecting); - m_connection = SshConnectionManager::instance().acquireConnection(helper().cachedDeviceConfig()->sshParameters()); + m_connection = SshConnectionManager::instance().acquireConnection(deviceConfiguration()->sshParameters()); connect(m_connection.data(), SIGNAL(error(Utils::SshError)), this, SLOT(handleConnectionFailure())); if (m_connection->state() == SshConnection::Connected) { @@ -374,6 +371,11 @@ const Qt4BuildConfiguration *AbstractMaemoDeployStep::qt4BuildConfiguration() co return static_cast(buildConfiguration()); } +SshConnection::Ptr AbstractMaemoDeployStep::connection() const +{ + return m_connection; +} + MaemoDeployEventHandler::MaemoDeployEventHandler(AbstractMaemoDeployStep *deployStep, QFutureInterface &future) : m_deployStep(deployStep), m_future(future), m_eventLoop(new QEventLoop), diff --git a/src/plugins/remotelinux/abstractmaemodeploystep.h b/src/plugins/remotelinux/abstractmaemodeploystep.h index de105597642..f9b97b60c96 100644 --- a/src/plugins/remotelinux/abstractmaemodeploystep.h +++ b/src/plugins/remotelinux/abstractmaemodeploystep.h @@ -90,7 +90,7 @@ protected: QString deployMountPoint() const; const Qt4ProjectManager::Qt4BuildConfiguration *qt4BuildConfiguration() const; - QSharedPointer connection() const { return m_connection; } + QSharedPointer connection() const; private slots: void start(); diff --git a/src/plugins/remotelinux/maemodebugsupport.cpp b/src/plugins/remotelinux/maemodebugsupport.cpp index 6bbd679e6b7..03e67b86ed6 100644 --- a/src/plugins/remotelinux/maemodebugsupport.cpp +++ b/src/plugins/remotelinux/maemodebugsupport.cpp @@ -30,6 +30,8 @@ **************************************************************************/ #include "maemodebugsupport.h" +#include + #include "maemosshrunner.h" namespace RemoteLinux { diff --git a/src/plugins/remotelinux/maemodeploybymountstep.cpp b/src/plugins/remotelinux/maemodeploybymountstep.cpp index 8d0501c847c..3dd48cf0e88 100644 --- a/src/plugins/remotelinux/maemodeploybymountstep.cpp +++ b/src/plugins/remotelinux/maemodeploybymountstep.cpp @@ -153,7 +153,7 @@ void AbstractMaemoDeployByMountStep::handleMountDebugOutput(const QString &outpu void AbstractMaemoDeployByMountStep::mount() { m_extendedState = Mounting; - m_mounter->setupMounts(connection(), helper().cachedDeviceConfig(), + m_mounter->setupMounts(connection(), deviceConfiguration(), mountSpecifications(), qt4BuildConfiguration()); } @@ -259,8 +259,7 @@ void MaemoMountAndInstallDeployStep::deploy() { const QString remoteFilePath = deployMountPoint() + QLatin1Char('/') + QFileInfo(packagingStep()->packageFilePath()).fileName(); - m_installer->installPackage(connection(), helper().cachedDeviceConfig(), - remoteFilePath, false); + m_installer->installPackage(connection(), deviceConfiguration(), remoteFilePath, false); } void MaemoMountAndInstallDeployStep::cancelInstallation() @@ -367,7 +366,7 @@ QList MaemoMountAndCopyDeployStep::mountSpecifications( void MaemoMountAndCopyDeployStep::deploy() { - m_copyFacility->copyFiles(connection(), helper().cachedDeviceConfig(), + m_copyFacility->copyFiles(connection(), deviceConfiguration(), m_filesToCopy, deployMountPoint()); } diff --git a/src/plugins/remotelinux/maemodeployconfigurationwidget.cpp b/src/plugins/remotelinux/maemodeployconfigurationwidget.cpp index 0650cbd9f20..43816d465f6 100644 --- a/src/plugins/remotelinux/maemodeployconfigurationwidget.cpp +++ b/src/plugins/remotelinux/maemodeployconfigurationwidget.cpp @@ -33,10 +33,15 @@ #include "maemodeployconfigurationwidget.h" #include "ui_maemodeployconfigurationwidget.h" +#include "linuxdeviceconfigurations.h" #include "maemodeployablelistmodel.h" #include "maemodeployables.h" +#include "maemoglobal.h" +#include "maemopertargetdeviceconfigurationlistmodel.h" +#include "maemosettingspages.h" #include "qt4maemodeployconfiguration.h" +#include #include #include @@ -65,7 +70,16 @@ void MaemoDeployConfigurationWidget::init(DeployConfiguration *dc) m_deployConfig = qobject_cast(dc); Q_ASSERT(m_deployConfig); - ui->modelComboBox->setModel(m_deployConfig->deployables().data()); + connect(ui->manageDevConfsLabel, SIGNAL(linkActivated(QString)), + SLOT(showDeviceConfigurations())); + + ui->deviceConfigsComboBox->setModel(m_deployConfig->deviceConfigModel().data()); + connect(ui->deviceConfigsComboBox, SIGNAL(activated(int)), + SLOT(handleSelectedDeviceConfigurationChanged(int))); + connect(m_deployConfig, SIGNAL(deviceConfigurationListChanged()), + SLOT(handleDeviceConfigurationListChanged())); + + ui->projectsComboBox->setModel(m_deployConfig->deployables().data()); connect(m_deployConfig->deployables().data(), SIGNAL(modelAboutToBeReset()), SLOT(handleModelListToBeReset())); @@ -74,7 +88,7 @@ void MaemoDeployConfigurationWidget::init(DeployConfiguration *dc) connect(m_deployConfig->deployables().data(), SIGNAL(modelReset()), SLOT(handleModelListReset()), Qt::QueuedConnection); - connect(ui->modelComboBox, SIGNAL(currentIndexChanged(int)), + connect(ui->projectsComboBox, SIGNAL(currentIndexChanged(int)), SLOT(setModel(int))); connect(ui->addDesktopFileButton, SIGNAL(clicked()), SLOT(addDesktopFile())); @@ -92,12 +106,12 @@ void MaemoDeployConfigurationWidget::handleModelListToBeReset() void MaemoDeployConfigurationWidget::handleModelListReset() { - QTC_ASSERT(m_deployConfig->deployables()->modelCount() == ui->modelComboBox->count(), return); + QTC_ASSERT(m_deployConfig->deployables()->modelCount() == ui->projectsComboBox->count(), return); if (m_deployConfig->deployables()->modelCount() > 0) { - if (ui->modelComboBox->currentIndex() == -1) - ui->modelComboBox->setCurrentIndex(0); + if (ui->projectsComboBox->currentIndex() == -1) + ui->projectsComboBox->setCurrentIndex(0); else - setModel(ui->modelComboBox->currentIndex()); + setModel(ui->projectsComboBox->currentIndex()); } } @@ -117,9 +131,27 @@ void MaemoDeployConfigurationWidget::setModel(int row) ui->addIconButton->setEnabled(canAddIconFile); } +void MaemoDeployConfigurationWidget::handleSelectedDeviceConfigurationChanged(int index) +{ + disconnect(m_deployConfig, SIGNAL(deviceConfigurationListChanged()), this, + SLOT(handleDeviceConfigurationListChanged())); + m_deployConfig->setDeviceConfiguration(index); + connect(m_deployConfig, SIGNAL(deviceConfigurationListChanged()), + SLOT(handleDeviceConfigurationListChanged())); +} + +void MaemoDeployConfigurationWidget::handleDeviceConfigurationListChanged() +{ + const LinuxDeviceConfiguration::ConstPtr &devConf = m_deployConfig->deviceConfiguration(); + const LinuxDeviceConfiguration::Id internalId + = LinuxDeviceConfigurations::instance()->internalId(devConf); + const int newIndex = m_deployConfig->deviceConfigModel()->indexForInternalId(internalId); + ui->deviceConfigsComboBox->setCurrentIndex(newIndex); +} + void MaemoDeployConfigurationWidget::addDesktopFile() { - const int modelRow = ui->modelComboBox->currentIndex(); + const int modelRow = ui->projectsComboBox->currentIndex(); if (modelRow == -1) return; MaemoDeployableListModel *const model @@ -131,7 +163,7 @@ void MaemoDeployConfigurationWidget::addDesktopFile() void MaemoDeployConfigurationWidget::addIcon() { - const int modelRow = ui->modelComboBox->currentIndex(); + const int modelRow = ui->projectsComboBox->currentIndex(); if (modelRow == -1) return; @@ -167,5 +199,11 @@ void MaemoDeployConfigurationWidget::addIcon() ui->tableView->resizeRowsToContents(); } +void MaemoDeployConfigurationWidget::showDeviceConfigurations() +{ + Core::ICore::instance()->showOptionsDialog(MaemoDeviceConfigurationsSettingsPage::Category, + MaemoDeviceConfigurationsSettingsPage::Id); +} + } // namespace Internal } // namespace RemoteLinux diff --git a/src/plugins/remotelinux/maemodeployconfigurationwidget.h b/src/plugins/remotelinux/maemodeployconfigurationwidget.h index 4da395d568f..c1bedc36efe 100644 --- a/src/plugins/remotelinux/maemodeployconfigurationwidget.h +++ b/src/plugins/remotelinux/maemodeployconfigurationwidget.h @@ -59,8 +59,11 @@ private: Q_SLOT void handleModelListToBeReset(); Q_SLOT void handleModelListReset(); Q_SLOT void setModel(int row); + Q_SLOT void handleSelectedDeviceConfigurationChanged(int index); + Q_SLOT void handleDeviceConfigurationListChanged(); Q_SLOT void addDesktopFile(); Q_SLOT void addIcon(); + Q_SLOT void showDeviceConfigurations(); Ui::MaemoDeployConfigurationWidget *ui; Qt4MaemoDeployConfiguration * m_deployConfig; diff --git a/src/plugins/remotelinux/maemodeployconfigurationwidget.ui b/src/plugins/remotelinux/maemodeployconfigurationwidget.ui index 92d3d038192..e0c7f9eb67c 100644 --- a/src/plugins/remotelinux/maemodeployconfigurationwidget.ui +++ b/src/plugins/remotelinux/maemodeployconfigurationwidget.ui @@ -6,8 +6,8 @@ 0 0 - 584 - 315 + 570 + 407 @@ -15,36 +15,74 @@ - - + + + + + Device configuration: + + + + + + + + + + + + <a href="irrelevant">Manage device configurations</a> + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + These show the INSTALLS settings from the project file(s). - <b>Files to install for subproject:</b> + Files to install for subproject: - - - - QComboBox::AdjustToContents - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - + + + + + + QComboBox::AdjustToContents + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + diff --git a/src/plugins/remotelinux/maemodeploystepwidget.cpp b/src/plugins/remotelinux/maemodeploystepwidget.cpp index ed7308077bc..ae4c96d66bb 100644 --- a/src/plugins/remotelinux/maemodeploystepwidget.cpp +++ b/src/plugins/remotelinux/maemodeploystepwidget.cpp @@ -31,32 +31,24 @@ **************************************************************************/ #include "maemodeploystepwidget.h" -#include "ui_maemodeploystepwidget.h" #include "abstractmaemodeploystep.h" -#include "linuxdeviceconfigurations.h" -#include "maemosettingspages.h" #include "maemoglobal.h" -#include "maemopertargetdeviceconfigurationlistmodel.h" -#include "remotelinuxrunconfiguration.h" #include "qt4maemodeployconfiguration.h" -#include "qt4maemotarget.h" -#include #include -#include #include +#include + using namespace ProjectExplorer; namespace RemoteLinux { namespace Internal { -MaemoDeployStepBaseWidget::MaemoDeployStepBaseWidget(AbstractLinuxDeviceDeployStep *step) : - ui(new Ui::MaemoDeployStepWidget), - m_step(step) +MaemoDeployStepBaseWidget::MaemoDeployStepBaseWidget(AbstractLinuxDeviceDeployStep *step) + : m_step(step) { - ui->setupUi(this); BuildStepList * const list = step->maemoDeployConfig()->stepList(); connect(list, SIGNAL(stepInserted(int)), SIGNAL(updateSummary())); connect(list, SIGNAL(stepMoved(int,int)), SIGNAL(updateSummary())); @@ -64,30 +56,12 @@ MaemoDeployStepBaseWidget::MaemoDeployStepBaseWidget(AbstractLinuxDeviceDeploySt connect(list, SIGNAL(aboutToRemoveStep(int)), SLOT(handleStepToBeRemoved(int))); - ui->deviceConfigComboBox->setModel(m_step->maemoDeployConfig()->deviceConfigModel().data()); - connect(&m_step->helper(), SIGNAL(deviceConfigChanged()), - SLOT(handleDeviceUpdate())); - handleDeviceUpdate(); - connect(ui->deviceConfigComboBox, SIGNAL(activated(int)), this, - SLOT(setCurrentDeviceConfig(int))); - connect(ui->manageDevConfsLabel, SIGNAL(linkActivated(QString)), - SLOT(showDeviceConfigurations())); + connect(m_step->maemoDeployConfig(), SIGNAL(currentDeviceConfigurationChanged()), + SIGNAL(updateSummary())); } MaemoDeployStepBaseWidget::~MaemoDeployStepBaseWidget() { - delete ui; -} - -void MaemoDeployStepBaseWidget::handleDeviceUpdate() -{ - const LinuxDeviceConfiguration::ConstPtr &devConf = m_step->helper().deviceConfig(); - const LinuxDeviceConfiguration::Id internalId - = LinuxDeviceConfigurations::instance()->internalId(devConf); - const int newIndex = m_step->maemoDeployConfig()->deviceConfigModel() - ->indexForInternalId(internalId); - ui->deviceConfigComboBox->setCurrentIndex(newIndex); - emit updateSummary(); } void MaemoDeployStepBaseWidget::handleStepToBeRemoved(int step) @@ -108,31 +82,7 @@ QString MaemoDeployStepBaseWidget::summaryText() const + QLatin1String(""); } return tr("%1 using device: %2").arg(dynamic_cast(m_step)->displayName(), - MaemoGlobal::deviceConfigurationName(m_step->helper().deviceConfig())); -} - -void MaemoDeployStepBaseWidget::setCurrentDeviceConfig(int index) -{ - disconnect(&m_step->helper(), SIGNAL(deviceConfigChanged()), this, - SLOT(handleDeviceUpdate())); - m_step->helper().setDeviceConfig(index); - connect(&m_step->helper(), SIGNAL(deviceConfigChanged()), - SLOT(handleDeviceUpdate())); - updateSummary(); -} - -void MaemoDeployStepBaseWidget::showDeviceConfigurations() -{ - Core::ICore::instance()->showOptionsDialog(MaemoDeviceConfigurationsSettingsPage::Category, - MaemoDeviceConfigurationsSettingsPage::Id); -} - - -MaemoDeployStepWidget::MaemoDeployStepWidget(AbstractMaemoDeployStep *step) - : m_baseWidget(step) -{ - connect(&m_baseWidget, SIGNAL(updateSummary()), SIGNAL(updateSummary())); - (new QVBoxLayout(this))->addWidget(&m_baseWidget); + MaemoGlobal::deviceConfigurationName(m_step->maemoDeployConfig()->deviceConfiguration())); } } // namespace Internal diff --git a/src/plugins/remotelinux/maemodeploystepwidget.h b/src/plugins/remotelinux/maemodeploystepwidget.h index 67818dcef55..a5625861818 100644 --- a/src/plugins/remotelinux/maemodeploystepwidget.h +++ b/src/plugins/remotelinux/maemodeploystepwidget.h @@ -35,18 +35,12 @@ #include -QT_BEGIN_NAMESPACE -namespace Ui { - class MaemoDeployStepWidget; -} -QT_END_NAMESPACE - namespace RemoteLinux { namespace Internal { class AbstractLinuxDeviceDeployStep; class AbstractMaemoDeployStep; -class MaemoDeployStepBaseWidget : public QWidget +class MaemoDeployStepBaseWidget : public ProjectExplorer::BuildStepConfigWidget { Q_OBJECT @@ -55,33 +49,14 @@ public: ~MaemoDeployStepBaseWidget(); QString summaryText() const; - -signals: - void updateSummary(); + QString displayName() const { return QString(); } private: - Q_SLOT void handleDeviceUpdate(); - Q_SLOT void setCurrentDeviceConfig(int index); - Q_SLOT void showDeviceConfigurations(); Q_SLOT void handleStepToBeRemoved(int step); - Ui::MaemoDeployStepWidget *ui; AbstractLinuxDeviceDeployStep *const m_step; }; -class MaemoDeployStepWidget : public ProjectExplorer::BuildStepConfigWidget -{ - Q_OBJECT -public: - MaemoDeployStepWidget(AbstractMaemoDeployStep *step); - -private: - virtual QString summaryText() const { return m_baseWidget.summaryText(); } - virtual QString displayName() const { return QString(); } - - MaemoDeployStepBaseWidget m_baseWidget; -}; - } // namespace Internal } // namespace RemoteLinux diff --git a/src/plugins/remotelinux/maemodeploystepwidget.ui b/src/plugins/remotelinux/maemodeploystepwidget.ui deleted file mode 100644 index a724ba6ad6a..00000000000 --- a/src/plugins/remotelinux/maemodeploystepwidget.ui +++ /dev/null @@ -1,72 +0,0 @@ - - - MaemoDeployStepWidget - - - - 0 - 0 - 597 - 74 - - - - Form - - - - - - - - Device configuration: - - - - - - - QComboBox::AdjustToContents - - - - - - - <a href="irrelevant">Manage device configurations</a> - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - diff --git a/src/plugins/remotelinux/maemodirectdeviceuploadstep.cpp b/src/plugins/remotelinux/maemodirectdeviceuploadstep.cpp index c3a8dd8a720..4c14d868fe0 100644 --- a/src/plugins/remotelinux/maemodirectdeviceuploadstep.cpp +++ b/src/plugins/remotelinux/maemodirectdeviceuploadstep.cpp @@ -185,7 +185,7 @@ void MaemoDirectDeviceUploadStep::handleMkdirFinished(int exitStatus) raiseError(tr("Failed to upload file '%1'.").arg(nativePath)); setFinished(); } else if (fi.isDir()) { - setDeployed(helper().cachedDeviceConfig()->sshParameters().host, d); + setDeployed(deviceConfiguration()->sshParameters().host, d); m_filesToUpload.removeFirst(); uploadNextFile(); } else { diff --git a/src/plugins/remotelinux/maemopublisherfremantlefree.cpp b/src/plugins/remotelinux/maemopublisherfremantlefree.cpp index edfbd264c48..ced588f2586 100644 --- a/src/plugins/remotelinux/maemopublisherfremantlefree.cpp +++ b/src/plugins/remotelinux/maemopublisherfremantlefree.cpp @@ -32,6 +32,7 @@ #include "maemopublisherfremantlefree.h" #include "maemodeployablelistmodel.h" +#include "maemodeployables.h" #include "maemoglobal.h" #include "maemopackagecreationstep.h" #include "maemopublishingfileselectiondialog.h" diff --git a/src/plugins/remotelinux/maemorunconfiguration.cpp b/src/plugins/remotelinux/maemorunconfiguration.cpp index b5efddcde73..b6484a0ecbb 100644 --- a/src/plugins/remotelinux/maemorunconfiguration.cpp +++ b/src/plugins/remotelinux/maemorunconfiguration.cpp @@ -36,6 +36,7 @@ #include "maemoglobal.h" #include "maemoremotemountsmodel.h" #include "maemorunconfigurationwidget.h" +#include "qt4maemodeployconfiguration.h" #include #include @@ -121,9 +122,8 @@ QString MaemoRunConfiguration::commandPrefix() const PortList MaemoRunConfiguration::freePorts() const { const Qt4BuildConfiguration * const bc = activeQt4BuildConfiguration(); - const AbstractLinuxDeviceDeployStep * const step = deployStep(); - return bc && step - ? MaemoGlobal::freePorts(deployStep()->helper().deviceConfig(), bc->qtVersion()) + return bc && deployConfig() + ? MaemoGlobal::freePorts(deployConfig()->deviceConfiguration(), bc->qtVersion()) : PortList(); } diff --git a/src/plugins/remotelinux/maemouploadandinstalldeploystep.cpp b/src/plugins/remotelinux/maemouploadandinstalldeploystep.cpp index 3169b6aabe8..8bd118a701d 100644 --- a/src/plugins/remotelinux/maemouploadandinstalldeploystep.cpp +++ b/src/plugins/remotelinux/maemouploadandinstalldeploystep.cpp @@ -154,8 +154,7 @@ void AbstractMaemoUploadAndInstallStep::handleUploadFinished(const QString &erro + QFileInfo(packagingStep()->packageFilePath()).fileName(); m_extendedState = Installing; writeOutput(tr("Installing package to device...")); - m_installer->installPackage(connection(), helper().cachedDeviceConfig(), - remoteFilePath, true); + m_installer->installPackage(connection(), deviceConfiguration(), remoteFilePath, true); } } diff --git a/src/plugins/remotelinux/qt4maemodeployconfiguration.cpp b/src/plugins/remotelinux/qt4maemodeployconfiguration.cpp index 0bff6001fa1..62253ec9b5a 100644 --- a/src/plugins/remotelinux/qt4maemodeployconfiguration.cpp +++ b/src/plugins/remotelinux/qt4maemodeployconfiguration.cpp @@ -32,11 +32,14 @@ #include "qt4maemodeployconfiguration.h" +#include "linuxdeviceconfigurations.h" +#include "maemoconstants.h" #include "maemodeploybymountstep.h" #include "maemodeployconfigurationwidget.h" #include "maemodeployables.h" #include "maemoinstalltosysrootstep.h" #include "maemopackagecreationstep.h" +#include "maemopertargetdeviceconfigurationlistmodel.h" #include "maemouploadandinstalldeploystep.h" #include "qt4maemotarget.h" @@ -77,12 +80,62 @@ Qt4MaemoDeployConfiguration::Qt4MaemoDeployConfiguration(Target *target, m_devConfModel = QSharedPointer (new MaemoPerTargetDeviceConfigurationListModel(0, target)); } + + initialize(); } Qt4MaemoDeployConfiguration::Qt4MaemoDeployConfiguration(ProjectExplorer::Target *target, DeployConfiguration *source) : DeployConfiguration(target, source) { - m_deployables = qobject_cast(source)->deployables(); + const Qt4MaemoDeployConfiguration * const mdc + = qobject_cast(source); + m_deployables = mdc->deployables(); + m_devConfModel = mdc->deviceConfigModel(); + initialize(); +} + +void Qt4MaemoDeployConfiguration::initialize() +{ + m_deviceConfiguration = deviceConfigModel()->defaultDeviceConfig(); + connect(deviceConfigModel().data(), SIGNAL(updated()), + SLOT(handleDeviceConfigurationListUpdated())); +} + +void Qt4MaemoDeployConfiguration::handleDeviceConfigurationListUpdated() +{ + setDeviceConfig(LinuxDeviceConfigurations::instance()->internalId(m_deviceConfiguration)); +} + +void Qt4MaemoDeployConfiguration::setDeviceConfig(LinuxDeviceConfiguration::Id internalId) +{ + m_deviceConfiguration = deviceConfigModel()->find(internalId); + emit deviceConfigurationListChanged(); + emit currentDeviceConfigurationChanged(); +} + +bool Qt4MaemoDeployConfiguration::fromMap(const QVariantMap &map) +{ + if (!DeployConfiguration::fromMap(map)) + return false; + setDeviceConfig(map.value(DeviceIdKey, LinuxDeviceConfiguration::InvalidId).toULongLong()); + return true; +} + +QVariantMap Qt4MaemoDeployConfiguration::toMap() const +{ + QVariantMap map = DeployConfiguration::toMap(); + map.insert(DeviceIdKey, + LinuxDeviceConfigurations::instance()->internalId(m_deviceConfiguration)); + return map; +} + +void Qt4MaemoDeployConfiguration::setDeviceConfiguration(int index) +{ + const LinuxDeviceConfiguration::ConstPtr &newDevConf = deviceConfigModel()->deviceAt(index); + if (m_deviceConfiguration != newDevConf) { + m_deviceConfiguration = newDevConf; + emit currentDeviceConfigurationChanged(); + } } Qt4MaemoDeployConfiguration::~Qt4MaemoDeployConfiguration() {} @@ -92,6 +145,21 @@ DeployConfigurationWidget *Qt4MaemoDeployConfiguration::configurationWidget() co return new MaemoDeployConfigurationWidget; } +QSharedPointer Qt4MaemoDeployConfiguration::deployables() const +{ + return m_deployables; +} + +QSharedPointer Qt4MaemoDeployConfiguration::deviceConfigModel() const +{ + return m_devConfModel; +} + +LinuxDeviceConfiguration::ConstPtr Qt4MaemoDeployConfiguration::deviceConfiguration() const +{ + return m_deviceConfiguration; +} + const QString Qt4MaemoDeployConfiguration::FremantleWithPackagingId = QLatin1String("DeployToFremantleWithPackaging"); const QString Qt4MaemoDeployConfiguration::FremantleWithoutPackagingId diff --git a/src/plugins/remotelinux/qt4maemodeployconfiguration.h b/src/plugins/remotelinux/qt4maemodeployconfiguration.h index e9db6b60cf9..f009d48bbae 100644 --- a/src/plugins/remotelinux/qt4maemodeployconfiguration.h +++ b/src/plugins/remotelinux/qt4maemodeployconfiguration.h @@ -33,8 +33,7 @@ #ifndef QT4PROJECTMANAGER_QT4DEPLOYCONFIGURATION_H #define QT4PROJECTMANAGER_QT4DEPLOYCONFIGURATION_H -#include"maemodeployables.h" -#include "maemopertargetdeviceconfigurationlistmodel.h" +#include "linuxdeviceconfiguration.h" #include @@ -42,6 +41,7 @@ namespace RemoteLinux { namespace Internal { +class MaemoDeployables; class MaemoPerTargetDeviceConfigurationListModel; class Qt4MaemoDeployConfiguration : public ProjectExplorer::DeployConfiguration @@ -53,8 +53,10 @@ public: virtual ProjectExplorer::DeployConfigurationWidget *configurationWidget() const; - QSharedPointer deployables() const { return m_deployables; } - QSharedPointer deviceConfigModel() const { return m_devConfModel; } + void setDeviceConfiguration(int index); + QSharedPointer deployables() const; + QSharedPointer deviceConfigModel() const; + QSharedPointer deviceConfiguration() const; static const QString FremantleWithPackagingId; static const QString FremantleWithoutPackagingId; @@ -62,6 +64,10 @@ public: static const QString MeegoId; static const QString GenericLinuxId; +signals: + void deviceConfigurationListChanged(); + void currentDeviceConfigurationChanged(); + private: friend class Qt4MaemoDeployConfigurationFactory; @@ -70,8 +76,16 @@ private: Qt4MaemoDeployConfiguration(ProjectExplorer::Target *target, ProjectExplorer::DeployConfiguration *source); + bool fromMap(const QVariantMap &map); + QVariantMap toMap() const; + + void initialize(); + void setDeviceConfig(LinuxDeviceConfiguration::Id internalId); + Q_SLOT void handleDeviceConfigurationListUpdated(); + QSharedPointer m_deployables; QSharedPointer m_devConfModel; + QSharedPointer m_deviceConfiguration; }; diff --git a/src/plugins/remotelinux/remotelinux.pro b/src/plugins/remotelinux/remotelinux.pro index 268bf3503dc..4745f93710c 100644 --- a/src/plugins/remotelinux/remotelinux.pro +++ b/src/plugins/remotelinux/remotelinux.pro @@ -169,7 +169,6 @@ FORMS += \ maemodeviceconfigurationssettingswidget.ui \ maemosshconfigdialog.ui \ maemopackagecreationwidget.ui \ - maemodeploystepwidget.ui \ maemoprofilesupdatedialog.ui \ maemoremoteprocessesdialog.ui \ maemopublishingbuildsettingspagefremantlefree.ui \ diff --git a/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp b/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp index bee873b39d1..5a7315ab198 100644 --- a/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp +++ b/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp @@ -242,8 +242,8 @@ QString RemoteLinuxRunConfiguration::defaultDisplayName() LinuxDeviceConfiguration::ConstPtr RemoteLinuxRunConfiguration::deviceConfig() const { - const AbstractLinuxDeviceDeployStep * const step = deployStep(); - return step ? step->helper().deviceConfig() : LinuxDeviceConfiguration::ConstPtr(); + return deployConfig() + ? deployConfig()->deviceConfiguration() : LinuxDeviceConfiguration::ConstPtr(); } QString RemoteLinuxRunConfiguration::gdbCmd() const @@ -256,11 +256,6 @@ Qt4MaemoDeployConfiguration *RemoteLinuxRunConfiguration::deployConfig() const return qobject_cast(target()->activeDeployConfiguration()); } -AbstractLinuxDeviceDeployStep *RemoteLinuxRunConfiguration::deployStep() const -{ - return MaemoGlobal::earlierBuildStep(deployConfig(), 0); -} - QString RemoteLinuxRunConfiguration::arguments() const { return m_d->arguments; @@ -336,24 +331,11 @@ void RemoteLinuxRunConfiguration::handleDeployConfigChanged() if (activeDeployConf) { connect(activeDeployConf->deployables().data(), SIGNAL(modelReset()), SLOT(handleDeployablesUpdated()), Qt::UniqueConnection); - connect(activeDeployConf->stepList(), SIGNAL(stepInserted(int)), - SLOT(handleDeployConfigChanged()), Qt::UniqueConnection); - connect(activeDeployConf->stepList(), SIGNAL(stepInserted(int)), - SLOT(handleDeployConfigChanged()), Qt::UniqueConnection); - connect(activeDeployConf->stepList(), SIGNAL(stepMoved(int,int)), - SLOT(handleDeployConfigChanged()), Qt::UniqueConnection); - connect(activeDeployConf->stepList(), SIGNAL(stepRemoved(int)), - SLOT(handleDeployConfigChanged()), Qt::UniqueConnection); - AbstractLinuxDeviceDeployStep * const step - = MaemoGlobal::earlierBuildStep(activeDeployConf, 0); - if (step) { - connect(&step->helper(), SIGNAL(deviceConfigChanged()), - SLOT(updateDeviceConfigurations()), Qt::UniqueConnection); - } + connect(activeDeployConf, SIGNAL(currentDeviceConfigurationChanged()), + SLOT(updateDeviceConfigurations()), Qt::UniqueConnection); } updateDeviceConfigurations(); - updateEnabledState(); } void RemoteLinuxRunConfiguration::handleDeployablesUpdated() diff --git a/src/plugins/remotelinux/remotelinuxrunconfiguration.h b/src/plugins/remotelinux/remotelinuxrunconfiguration.h index b478e66b0b9..f4a743e9bcb 100644 --- a/src/plugins/remotelinux/remotelinuxrunconfiguration.h +++ b/src/plugins/remotelinux/remotelinuxrunconfiguration.h @@ -133,7 +133,6 @@ protected: QString defaultDisplayName(); void setDisabledReason(const QString &reason) const; QString userEnvironmentChangesAsString() const; - Internal::AbstractLinuxDeviceDeployStep *deployStep() const; Q_SLOT void updateEnabledState() { emit isEnabledChanged(isEnabled()); } private slots: