forked from qt-creator/qt-creator
Git: Use the new AspectContainer::applied signal
Change-Id: Ib40e206e84228e91e4816c5b91800a5611f441a1 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -408,7 +408,7 @@ public:
|
||||
QString m_commitMessageFileName;
|
||||
bool m_submitActionTriggered = false;
|
||||
|
||||
GitSettingsPage settingPage{&m_settings, std::bind(&GitPluginPrivate::onApplySettings, this)};
|
||||
GitSettingsPage settingPage{&m_settings};
|
||||
|
||||
GitGrep gitGrep{&m_gitClient};
|
||||
|
||||
@@ -1022,6 +1022,7 @@ GitPluginPrivate::GitPluginPrivate()
|
||||
m_gerritPlugin->updateActions(currentState());
|
||||
m_gerritPlugin->addToLocator(m_commandLocator);
|
||||
|
||||
connect(&m_settings, &AspectContainer::applied, this, &GitPluginPrivate::onApplySettings);
|
||||
}
|
||||
|
||||
void GitPluginPrivate::diffCurrentFile()
|
||||
|
@@ -25,9 +25,6 @@
|
||||
|
||||
#include "gitsettings.h"
|
||||
|
||||
#include <utils/environment.h>
|
||||
#include <utils/fileutils.h>
|
||||
#include <utils/hostosinfo.h>
|
||||
#include <utils/layoutbuilder.h>
|
||||
|
||||
#include <vcsbase/vcsbaseconstants.h>
|
||||
@@ -153,73 +150,45 @@ FilePath GitSettings::gitExecutable(bool *ok, QString *errorMessage) const
|
||||
return binPath;
|
||||
}
|
||||
|
||||
// GitSettingsPage
|
||||
|
||||
// GitSettingsPageWidget
|
||||
|
||||
class GitSettingsPageWidget final : public Core::IOptionsPageWidget
|
||||
GitSettingsPage::GitSettingsPage(GitSettings *settings)
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(Git::Internal::SettingsPageWidget)
|
||||
setId(VcsBase::Constants::VCS_ID_GIT);
|
||||
setDisplayName(GitSettings::tr("Git"));
|
||||
setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
|
||||
setSettings(settings);
|
||||
|
||||
public:
|
||||
GitSettingsPageWidget(GitSettings *settings, const std::function<void()> &onChange);
|
||||
|
||||
void apply() final;
|
||||
|
||||
private:
|
||||
std::function<void()> m_onChange;
|
||||
GitSettings *m_settings;
|
||||
};
|
||||
|
||||
GitSettingsPageWidget::GitSettingsPageWidget(GitSettings *settings, const std::function<void()> &onChange)
|
||||
: m_onChange(onChange), m_settings(settings)
|
||||
{
|
||||
GitSettings &s = *m_settings;
|
||||
setLayouter([settings](QWidget *widget) {
|
||||
GitSettings &s = *settings;
|
||||
using namespace Layouting;
|
||||
|
||||
Column {
|
||||
Group {
|
||||
Title(tr("Configuration")),
|
||||
Title(GitSettings::tr("Configuration")),
|
||||
Row { s.path },
|
||||
s.winSetHomeEnvironment,
|
||||
},
|
||||
|
||||
Group {
|
||||
Title(tr("Miscellaneous")),
|
||||
Title(GitSettings::tr("Miscellaneous")),
|
||||
Row { s.logCount, s.timeout, Stretch() },
|
||||
s.pullRebase
|
||||
},
|
||||
|
||||
Group {
|
||||
Title(tr("Gitk")),
|
||||
Title(GitSettings::tr("Gitk")),
|
||||
Row { s.gitkOptions }
|
||||
},
|
||||
|
||||
Group {
|
||||
Title(tr("Repository Browser")),
|
||||
Title(GitSettings::tr("Repository Browser")),
|
||||
Row { s.repositoryBrowserCmd }
|
||||
},
|
||||
|
||||
Stretch()
|
||||
}.attachTo(this);
|
||||
}
|
||||
|
||||
void GitSettingsPageWidget::apply()
|
||||
{
|
||||
if (m_settings->isDirty()) {
|
||||
m_settings->apply();
|
||||
m_onChange();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// GitSettingsPage
|
||||
|
||||
GitSettingsPage::GitSettingsPage(GitSettings *settings, const std::function<void()> &onChange)
|
||||
{
|
||||
setId(VcsBase::Constants::VCS_ID_GIT);
|
||||
setDisplayName(GitSettingsPageWidget::tr("Git"));
|
||||
setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
|
||||
setWidgetCreator([settings, onChange] { return new GitSettingsPageWidget(settings, onChange); });
|
||||
}.attachTo(widget);
|
||||
});
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
|
@@ -70,7 +70,7 @@ public:
|
||||
class GitSettingsPage final : public Core::IOptionsPage
|
||||
{
|
||||
public:
|
||||
GitSettingsPage(GitSettings *settings, const std::function<void()> &onChange);
|
||||
explicit GitSettingsPage(GitSettings *settings);
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
Reference in New Issue
Block a user