Ssh: Get confirmation from user for overwriting an existing key.

Change-Id: I3d74423ef647fd59d303517b0a0e987b24973095
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
This commit is contained in:
Christian Kandeler
2013-03-27 16:42:08 +01:00
parent 6c12a06029
commit a167286b3f
2 changed files with 14 additions and 0 deletions

View File

@@ -69,6 +69,9 @@ void SshKeyCreationDialog::keyTypeChanged()
void SshKeyCreationDialog::generateKeys()
{
if (userForbidsOverwriting())
return;
const SshKeyGenerator::KeyType keyType = m_ui->rsa->isChecked()
? SshKeyGenerator::Rsa
: SshKeyGenerator::Dsa;
@@ -130,6 +133,16 @@ void SshKeyCreationDialog::saveKeys()
accept();
}
bool SshKeyCreationDialog::userForbidsOverwriting()
{
if (!QFileInfo(privateKeyFilePath()).exists() && !QFileInfo(publicKeyFilePath()).exists())
return false;
const QMessageBox::StandardButton reply = QMessageBox::question(this, tr("File Exists"),
tr("There already is a file of that name. Do you want to overwrite it?"),
QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
return reply != QMessageBox::Yes;
}
QString SshKeyCreationDialog::privateKeyFilePath() const
{
return m_ui->privateKeyFileValueLabel->text();

View File

@@ -57,6 +57,7 @@ private slots:
private:
void setPrivateKeyFile(const QString &filePath);
void saveKeys();
bool userForbidsOverwriting();
private:
SshKeyGenerator *m_keyGenerator;