diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.cpp index acbb5be2da177a2db692a2143af64a04a7202790..80ee2c66f8fcd75f6e9979046a5fc4fea5706672 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 7f889a27cdbce0f9c21686992848a4611ed132e2..c221267a9494726c543540555d30a7f6cdd7777b 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 33a4e60d80ff1bddff6d8db614b49c0258fcb181..3f5e4c0ee53f522740c4364c2113b82fa1f2e9a8 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 a97bdab4ec86b6e565d427e1203355ad857ece06..e073c3df72018cfed0dbce2d67f3749cd2a09a6b 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 7a302805116e03fe6ce501adb3e7c480d461c30a..a86d0af11d867e80dceb925706a94687c6a96e2f 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">