forked from qt-creator/qt-creator
SSH: Support password input for private keys in non-GUI applications.
Change-Id: Ibd5e47409e92edb6909053d7f17e67b6fa72e642 Reviewed-on: http://codereview.qt.nokia.com/2384 Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
This commit is contained in:
@@ -31,16 +31,20 @@
|
||||
**************************************************************************/
|
||||
#include "sshkeypasswordretriever_p.h"
|
||||
|
||||
#include <QtCore/QCoreApplication>
|
||||
#include <QtCore/QString>
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QInputDialog>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
namespace Utils {
|
||||
namespace Internal {
|
||||
|
||||
std::string SshKeyPasswordRetriever::get_passphrase(const std::string &, const std::string &,
|
||||
UI_Result &result) const
|
||||
{
|
||||
const bool hasGui = dynamic_cast<QApplication *>(QApplication::instance());
|
||||
if (hasGui) {
|
||||
bool ok;
|
||||
const QString &password = QInputDialog::getText(0,
|
||||
QCoreApplication::translate("Utils::Ssh", "Password Required"),
|
||||
@@ -48,6 +52,13 @@ std::string SshKeyPasswordRetriever::get_passphrase(const std::string &, const s
|
||||
QLineEdit::Password, QString(), &ok);
|
||||
result = ok ? OK : CANCEL_ACTION;
|
||||
return std::string(password.toLocal8Bit().data());
|
||||
} else {
|
||||
result = OK;
|
||||
std::string password;
|
||||
std::cout << "Please enter the password for your private key (set echo off beforehand!): " << std::flush;
|
||||
std::cin >> password;
|
||||
return password;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
Reference in New Issue
Block a user