From 6fe3d3bde9eed4027b37c88c7d75a62c89ce25f6 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Fri, 11 Nov 2016 16:07:35 +0100 Subject: [PATCH] Git: Only show note about perl if perl is not found in PATH Task-number: QTCREATORBUG-17154 Change-Id: I4602084204a3b26ead8d4e3e8108d6d4642c829a Reviewed-by: Orgad Shaneh --- src/plugins/git/settingspage.cpp | 21 +++++++++++++++++++-- src/plugins/git/settingspage.h | 2 ++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/plugins/git/settingspage.cpp b/src/plugins/git/settingspage.cpp index e5a1997f284..9d974959b64 100644 --- a/src/plugins/git/settingspage.cpp +++ b/src/plugins/git/settingspage.cpp @@ -29,9 +29,11 @@ #include "gitclient.h" #include -#include -#include #include +#include + +#include +#include #include #include @@ -58,9 +60,13 @@ SettingsPageWidget::SettingsPageWidget(QWidget *parent) : VcsClientOptionsPageWi } else { m_ui.winHomeCheckBox->setVisible(false); } + updateNoteField(); + m_ui.repBrowserCommandPathChooser->setExpectedKind(Utils::PathChooser::ExistingCommand); m_ui.repBrowserCommandPathChooser->setHistoryCompleter("Git.RepoCommand.History"); m_ui.repBrowserCommandPathChooser->setPromptDialogTitle(tr("Git Repository Browser Command")); + + connect(m_ui.pathLineEdit, &QLineEdit::textChanged, this, &SettingsPageWidget::updateNoteField); } VcsBaseClientSettings SettingsPageWidget::settings() const @@ -90,6 +96,17 @@ void SettingsPageWidget::setSettings(const VcsBaseClientSettings &s) m_ui.repBrowserCommandPathChooser->setPath(s.stringValue(GitSettings::repositoryBrowserCmd)); } +void SettingsPageWidget::updateNoteField() +{ + Utils::Environment env = Utils::Environment::systemEnvironment(); + env.prependOrSetPath(m_ui.pathLineEdit->text()); + + bool showNote = env.searchInPath("perl").isEmpty(); + + m_ui.noteFieldlabel->setVisible(showNote); + m_ui.noteLabel->setVisible(showNote); +} + // -------- SettingsPage SettingsPage::SettingsPage(Core::IVersionControl *control) : VcsClientOptionsPage(control, GitPlugin::client()) diff --git a/src/plugins/git/settingspage.h b/src/plugins/git/settingspage.h index bfa1b57b494..205bda707e6 100644 --- a/src/plugins/git/settingspage.h +++ b/src/plugins/git/settingspage.h @@ -53,6 +53,8 @@ public: void setSettings(const VcsBase::VcsBaseClientSettings &s) override; private: + void updateNoteField(); + Ui::SettingsPage m_ui; };