From a8bea59d88503cca5b2c61310ee4e5622b1fef29 Mon Sep 17 00:00:00 2001 From: Christian Kandeler <christian.kandeler@nokia.com> Date: Thu, 13 Jan 2011 15:00:48 +0100 Subject: [PATCH] Maemo: Allow user to set default device configuration. Task-number: QTCREATORBUG-3486 --- .../qt-maemo/maemodeviceconfigurations.cpp | 21 +++++++++++++++++++ .../qt-maemo/maemodeviceconfigurations.h | 2 ++ ...aemodeviceconfigurationssettingswidget.cpp | 10 +++++++++ .../maemodeviceconfigurationssettingswidget.h | 1 + ...maemodeviceconfigurationssettingswidget.ui | 10 +++++++++ 5 files changed, 44 insertions(+) diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.cpp index acbb5be2da1..80ee2c66f8f 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.cpp @@ -432,6 +432,27 @@ void MaemoDeviceConfigurations::setPortsSpec(int i, const QString &portsSpec) m_devConfigs.at(i)->m_portsSpec = portsSpec; } +void MaemoDeviceConfigurations::setDefaultDevice(int idx) +{ + Q_ASSERT(idx >= 0 && idx < rowCount()); + if (m_devConfigs.at(idx)->m_isDefault) + return; + QModelIndex oldDefaultIndex; + for(int i = 0; i < m_devConfigs.count(); ++i) { + const MaemoDeviceConfig::Ptr &oldDefaultDev = m_devConfigs.at(i); + if (oldDefaultDev->m_isDefault) { + oldDefaultDev->m_isDefault = false; + oldDefaultIndex = index(i, 0); + break; + } + } + Q_ASSERT(oldDefaultIndex.isValid()); + emit dataChanged(oldDefaultIndex, oldDefaultIndex); + m_devConfigs.at(idx)->m_isDefault = true; + const QModelIndex newDefaultIndex = index(idx, 0); + emit dataChanged(newDefaultIndex, newDefaultIndex); +} + MaemoDeviceConfigurations::MaemoDeviceConfigurations(QObject *parent) : QAbstractListModel(parent) { diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.h b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.h index 7f889a27cdb..c221267a949 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.h @@ -104,6 +104,7 @@ public: QString name() const { return m_name; } DeviceType type() const { return m_type; } QString portsSpec() const { return m_portsSpec; } + bool isDefault() const { return m_isDefault; } Id internalId() const { return m_internalId; } static QString portsRegExpr(); @@ -164,6 +165,7 @@ public: void setDeviceType(int i, const MaemoDeviceConfig::DeviceType type); void setSshParameters(int i, const Core::SshConnectionParameters ¶ms); void setPortsSpec(int i, const QString &portsSpec); + void setDefaultDevice(int index); virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; virtual QVariant data(const QModelIndex &index, diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.cpp index 33a4e60d80f..3f5e4c0ee53 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.cpp @@ -164,6 +164,8 @@ void MaemoDeviceConfigurationsSettingsWidget::initGui() connect(m_ui->configurationComboBox, SIGNAL(currentIndexChanged(int)), SLOT(currentConfigChanged(int))); currentConfigChanged(currentIndex()); + connect(m_ui->defaultDeviceButton, SIGNAL(clicked()), + SLOT(setDefaultDevice())); } void MaemoDeviceConfigurationsSettingsWidget::addConfig() @@ -194,6 +196,7 @@ void MaemoDeviceConfigurationsSettingsWidget::deleteConfig() void MaemoDeviceConfigurationsSettingsWidget::displayCurrent() { const MaemoDeviceConfig::ConstPtr ¤t = currentConfig(); + m_ui->defaultDeviceButton->setEnabled(!current->isDefault()); const SshConnectionParameters &sshParams = current->sshParameters(); if (current->type() == MaemoDeviceConfig::Physical) m_ui->deviceButton->setChecked(true); @@ -356,6 +359,12 @@ void MaemoDeviceConfigurationsSettingsWidget::setDefaultKeyFilePath() m_devConfigs->setDefaultSshKeyFilePath(m_ui->keyFileLineEdit->path()); } +void MaemoDeviceConfigurationsSettingsWidget::setDefaultDevice() +{ + m_devConfigs->setDefaultDevice(currentIndex()); + m_ui->defaultDeviceButton->setEnabled(false); +} + void MaemoDeviceConfigurationsSettingsWidget::setPrivateKey(const QString &path) { m_ui->keyFileLineEdit->setPath(path); @@ -456,6 +465,7 @@ void MaemoDeviceConfigurationsSettingsWidget::currentConfigChanged(int index) m_ui->remoteProcessesButton->setEnabled(false); clearDetails(); m_ui->detailsWidget->setEnabled(false); + m_ui->defaultDeviceButton->setEnabled(false); } else { m_ui->removeConfigButton->setEnabled(true); m_ui->testConfigButton->setEnabled(true); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.h b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.h index a97bdab4ec8..e073c3df720 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.h @@ -85,6 +85,7 @@ private slots: void handleFreePortsChanged(); void showRemoteProcesses(); void setDefaultKeyFilePath(); + void setDefaultDevice(); // For configuration testing. void testConfig(); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.ui b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.ui index 7a302805116..a86d0af11d8 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.ui +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.ui @@ -422,6 +422,16 @@ </property> </widget> </item> + <item> + <widget class="QPushButton" name="defaultDeviceButton"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Set As Default</string> + </property> + </widget> + </item> <item> <spacer name="verticalSpacer"> <property name="orientation"> -- GitLab