SSH: Add support for ssh-agent

Task-number: QTCREATORBUG-16245
Change-Id: Ifd30c89d19e547d7657765790b7520e42b3741c3
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
Christian Kandeler
2016-07-20 18:04:56 +02:00
committed by Christian Kandeler
parent fcdc9342b5
commit 3ee2445fb1
21 changed files with 748 additions and 40 deletions

View File

@@ -64,6 +64,10 @@ GenericLinuxDeviceConfigurationWizardSetupPage::GenericLinuxDeviceConfigurationW
this, &QWizardPage::completeChanged);
connect(d->ui.passwordButton, &QAbstractButton::toggled,
this, &GenericLinuxDeviceConfigurationWizardSetupPage::handleAuthTypeChanged);
connect(d->ui.keyButton, &QAbstractButton::toggled,
this, &GenericLinuxDeviceConfigurationWizardSetupPage::handleAuthTypeChanged);
connect(d->ui.agentButton, &QAbstractButton::toggled,
this, &GenericLinuxDeviceConfigurationWizardSetupPage::handleAuthTypeChanged);
}
GenericLinuxDeviceConfigurationWizardSetupPage::~GenericLinuxDeviceConfigurationWizardSetupPage()
@@ -107,8 +111,9 @@ QString GenericLinuxDeviceConfigurationWizardSetupPage::userName() const
SshConnectionParameters::AuthenticationType GenericLinuxDeviceConfigurationWizardSetupPage::authenticationType() const
{
return d->ui.passwordButton->isChecked()
? SshConnectionParameters::AuthenticationTypeTryAllPasswordBasedMethods
: SshConnectionParameters::AuthenticationTypePublicKey;
? SshConnectionParameters::AuthenticationTypeTryAllPasswordBasedMethods
: d->ui.keyButton->isChecked() ? SshConnectionParameters::AuthenticationTypePublicKey
: SshConnectionParameters::AuthenticationTypeAgent;
}
QString GenericLinuxDeviceConfigurationWizardSetupPage::password() const
@@ -143,8 +148,10 @@ QString GenericLinuxDeviceConfigurationWizardSetupPage::defaultPassWord() const
void GenericLinuxDeviceConfigurationWizardSetupPage::handleAuthTypeChanged()
{
d->ui.passwordLineEdit->setEnabled(authenticationType() != SshConnectionParameters::AuthenticationTypePublicKey);
d->ui.privateKeyPathChooser->setEnabled(!d->ui.passwordLineEdit->isEnabled());
d->ui.passwordLineEdit->setEnabled(authenticationType()
== SshConnectionParameters::AuthenticationTypeTryAllPasswordBasedMethods);
d->ui.privateKeyPathChooser->setEnabled(authenticationType()
== SshConnectionParameters::AuthenticationTypePublicKey);
emit completeChanged();
}