diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.cpp index 4d54a7b33b8..8cf45b34da2 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.cpp @@ -64,6 +64,7 @@ namespace { const QLatin1String PasswordKey("Password"); const QLatin1String TimeoutKey("Timeout"); const QLatin1String InternalIdKey("InternalId"); + const QLatin1String DefaultKeyFilePathKey("DefaultKeyFile"); const QString DefaultKeyFile = QDesktopServices::storageLocation(QDesktopServices::HomeLocation) @@ -185,7 +186,8 @@ MaemoDeviceConfig::MaemoDeviceConfig(const QString &name, MaemoDeviceConfig::Dev server.port = defaultSshPort(type); server.uname = DefaultUserName; server.authType = DefaultAuthType; - server.privateKeyFile = DefaultKeyFile; + server.privateKeyFile + = MaemoDeviceConfigurations::instance().defaultSshKeyFilePath(); server.timeout = DefaultTimeout; } @@ -283,6 +285,7 @@ void MaemoDeviceConfigurations::save() QSettings *settings = Core::ICore::instance()->settings(); settings->beginGroup(SettingsGroup); settings->setValue(IdCounterKey, m_nextId); + settings->setValue(DefaultKeyFilePathKey, m_defaultSshKeyFilePath); settings->beginWriteArray(ConfigListKey, m_devConfigs.count()); for (int i = 0; i < m_devConfigs.count(); ++i) { settings->setArrayIndex(i); @@ -303,6 +306,8 @@ void MaemoDeviceConfigurations::load() QSettings *settings = Core::ICore::instance()->settings(); settings->beginGroup(SettingsGroup); m_nextId = settings->value(IdCounterKey, 1).toULongLong(); + m_defaultSshKeyFilePath + = settings->value(DefaultKeyFilePathKey, DefaultKeyFile).toString(); int count = settings->beginReadArray(ConfigListKey); for (int i = 0; i < count; ++i) { settings->setArrayIndex(i); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.h b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.h index ede7ae12400..84160b134f4 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurations.h @@ -137,11 +137,16 @@ class MaemoDeviceConfigurations : public QObject public: static MaemoDeviceConfigurations &instance(QObject *parent = 0); + QList devConfigs() const { return m_devConfigs; } void setDevConfigs(const QList &devConfigs); + MaemoDeviceConfig find(const QString &name) const; MaemoDeviceConfig find(quint64 id) const; + void setDefaultSshKeyFilePath(const QString &path) { m_defaultSshKeyFilePath = path; } + QString defaultSshKeyFilePath() const { return m_defaultSshKeyFilePath; } + signals: void updated(); @@ -153,6 +158,7 @@ private: static MaemoDeviceConfigurations *m_instance; QList m_devConfigs; quint64 m_nextId; + QString m_defaultSshKeyFilePath; friend class MaemoDeviceConfig; }; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.cpp index 5bcbc34f77b..23142e3434e 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.cpp @@ -157,6 +157,8 @@ void MaemoDeviceConfigurationsSettingsWidget::initGui() QRegExpValidator * const portsValidator = new QRegExpValidator(QRegExp(MaemoDeviceConfig::portsRegExpr()), this); m_ui->portsLineEdit->setValidator(portsValidator); + connect(m_ui->makeKeyFileDefaultButton, SIGNAL(clicked()), + SLOT(setDefaultKeyFilePath())); foreach (const MaemoDeviceConfig &devConf, m_devConfs) m_ui->configurationComboBox->addItem(devConf.name); connect(m_ui->configurationComboBox, SIGNAL(currentIndexChanged(int)), @@ -302,6 +304,7 @@ void MaemoDeviceConfigurationsSettingsWidget::authenticationTypeChanged() m_ui->passwordLabel->setEnabled(usePassword); m_ui->keyFileLineEdit->setEnabled(!usePassword); m_ui->keyLabel->setEnabled(!usePassword); + m_ui->makeKeyFileDefaultButton->setEnabled(!usePassword); } void MaemoDeviceConfigurationsSettingsWidget::hostNameEditingFinished() @@ -364,6 +367,12 @@ void MaemoDeviceConfigurationsSettingsWidget::showRemoteProcesses() dlg.exec(); } +void MaemoDeviceConfigurationsSettingsWidget::setDefaultKeyFilePath() +{ + MaemoDeviceConfigurations::instance() + .setDefaultSshKeyFilePath(m_ui->keyFileLineEdit->path()); +} + void MaemoDeviceConfigurationsSettingsWidget::setPrivateKey(const QString &path) { m_ui->keyFileLineEdit->setPath(path); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.h b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.h index 68821399d09..83bf92bac9a 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.h @@ -83,6 +83,7 @@ private slots: void showPassword(bool showClearText); void handleFreePortsChanged(); void showRemoteProcesses(); + void setDefaultKeyFilePath(); // For configuration testing. void testConfig(); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.ui b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.ui index 065b167a561..0dca4791783 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.ui +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceconfigurationssettingswidget.ui @@ -67,9 +67,6 @@ - - QFormLayout::AllNonFixedFieldsGrow - @@ -333,7 +330,18 @@ - + + + + + + + + Set as Default + + + +