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 @@
+ -
+
+
+ false
+
+
+ Set As Default
+
+
+
-