From 7c7ccdc764629042729ceede4ca3e47b464aee42 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Fri, 25 May 2012 09:19:15 +0200 Subject: [PATCH] Gerrit: Do not run plink executable in accessor of OptionsWidget. Do not run the process every time the user presses 'Ok' or 'Apply' in the settings page, do it only if the gerrit parameters actually changed. Also check for empty binary. Change-Id: I934616e5d9b20404278f1fd9fc751ff161030cd8 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> --- src/plugins/git/gerrit/gerritoptionspage.cpp | 2 +- src/plugins/git/gerrit/gerritparameters.cpp | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/plugins/git/gerrit/gerritoptionspage.cpp b/src/plugins/git/gerrit/gerritoptionspage.cpp index 54d0451d200..50466e695da 100644 --- a/src/plugins/git/gerrit/gerritoptionspage.cpp +++ b/src/plugins/git/gerrit/gerritoptionspage.cpp @@ -73,6 +73,7 @@ void GerritOptionsPage::apply() const GerritParameters newParameters = w->parameters(); if (newParameters != *m_parameters) { *m_parameters = newParameters; + m_parameters->setPortFlagBySshType(); m_parameters->toSettings(Core::ICore::instance()->settings()); } } @@ -124,7 +125,6 @@ GerritParameters GerritOptionsWidget::parameters() const result.port = m_portSpinBox->value(); result.additionalQueries = m_additionalQueriesLineEdit->text().trimmed(); result.https = m_httpsCheckBox->isChecked(); - result.setPortFlagBySshType(); return result; } diff --git a/src/plugins/git/gerrit/gerritparameters.cpp b/src/plugins/git/gerrit/gerritparameters.cpp index 2ab0b787c2a..7286e6b5797 100644 --- a/src/plugins/git/gerrit/gerritparameters.cpp +++ b/src/plugins/git/gerrit/gerritparameters.cpp @@ -89,9 +89,12 @@ static inline QString detectSsh() void GerritParameters::setPortFlagBySshType() { - const QString version = Utils::PathChooser::toolVersion(ssh, QStringList(QLatin1String("-V"))); - portFlag = (version.contains(QLatin1String("plink"), Qt::CaseInsensitive)) ? - QLatin1String("-P") : QLatin1String(defaultPortFlag); + bool isPlink = false; + if (!ssh.isEmpty()) { + const QString version = Utils::PathChooser::toolVersion(ssh, QStringList(QLatin1String("-V"))); + isPlink = version.contains(QLatin1String("plink"), Qt::CaseInsensitive); + } + portFlag = isPlink ? QLatin1String("-P") : QLatin1String(defaultPortFlag); } GerritParameters::GerritParameters() -- GitLab