Gerrit: Support plink

Change-Id: I7fe7c5d47b17b2e5d8179e7deb9cb8e566f15912
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
This commit is contained in:
Orgad Shaneh
2012-05-16 21:13:42 +03:00
committed by Friedemann Kleint
parent cc6a3b4fd7
commit b7927fe1b0
3 changed files with 18 additions and 1 deletions

View File

@@ -124,6 +124,7 @@ GerritParameters GerritOptionsWidget::parameters() const
result.port = m_portSpinBox->value();
result.additionalQueries = m_additionalQueriesLineEdit->text().trimmed();
result.https = m_httpsCheckBox->isChecked();
result.setPortFlagBySshType();
return result;
}

View File

@@ -38,6 +38,7 @@
#else
# include <utils/environment.h>
#endif
#include <utils/pathchooser.h>
#include <QDebug>
#include <QFileInfo>
#include <QSettings>
@@ -49,12 +50,15 @@ static const char settingsGroupC[] = "Gerrit";
static const char hostKeyC[] = "Host";
static const char userKeyC[] = "User";
static const char portKeyC[] = "Port";
static const char portFlagKeyC[] = "PortFlag";
static const char sshKeyC[] = "Ssh";
static const char httpsKeyC[] = "Https";
static const char defaultHostC[] = "codereview.qt-project.org";
static const char defaultSshC[] = "ssh";
static const char additionalQueriesKeyC[] = "AdditionalQueries";
static const char defaultPortFlag[] = "-p";
enum { defaultPort = 29418 };
static inline QString detectSsh()
@@ -83,17 +87,25 @@ static inline QString detectSsh()
return ssh;
}
void GerritParameters::setPortFlagBySshType()
{
const QString version = Utils::PathChooser::toolVersion(ssh, QStringList(QLatin1String("-V")));
portFlag = (version.contains(QLatin1String("plink"), Qt::CaseInsensitive)) ?
QLatin1String("-P") : QLatin1String(defaultPortFlag);
}
GerritParameters::GerritParameters()
: host(QLatin1String(defaultHostC))
, port(defaultPort)
, https(true)
, portFlag(QLatin1String(defaultPortFlag))
{
}
QStringList GerritParameters::baseCommandArguments() const
{
QStringList result;
result << ssh << QLatin1String("-p") << QString::number(port)
result << ssh << portFlag << QString::number(port)
<< sshHostArgument() << QLatin1String("gerrit");
return result;
}
@@ -116,6 +128,7 @@ void GerritParameters::toSettings(QSettings *s) const
s->setValue(QLatin1String(hostKeyC), host);
s->setValue(QLatin1String(userKeyC), user);
s->setValue(QLatin1String(portKeyC), port);
s->setValue(QLatin1String(portFlagKeyC), portFlag);
s->setValue(QLatin1String(sshKeyC), ssh);
s->setValue(QLatin1String(additionalQueriesKeyC), additionalQueries);
s->setValue(QLatin1String(httpsKeyC), https);
@@ -129,6 +142,7 @@ void GerritParameters::fromSettings(const QSettings *s)
user = s->value(rootKey + QLatin1String(userKeyC), QString()).toString();
ssh = s->value(rootKey + QLatin1String(sshKeyC), QString()).toString();
port = s->value(rootKey + QLatin1String(portKeyC), QVariant(int(defaultPort))).toInt();
portFlag = s->value(rootKey + QLatin1String(portFlagKeyC), QLatin1String(defaultPortFlag)).toString();
additionalQueries = s->value(rootKey + QLatin1String(additionalQueriesKeyC), QString()).toString();
https = s->value(rootKey + QLatin1String(httpsKeyC), QVariant(true)).toBool();
if (ssh.isEmpty())

View File

@@ -51,6 +51,7 @@ public:
bool equals(const GerritParameters &rhs) const;
void toSettings(QSettings *) const;
void fromSettings(const QSettings *);
void setPortFlagBySshType();
QString host;
unsigned short port;
@@ -58,6 +59,7 @@ public:
QString ssh;
QString additionalQueries;
bool https;
QString portFlag;
};
inline bool operator==(const GerritParameters &p1, const GerritParameters &p2)