aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/vcsbase/commonvcssettings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/vcsbase/commonvcssettings.cpp')
-rw-r--r--src/plugins/vcsbase/commonvcssettings.cpp111
1 files changed, 43 insertions, 68 deletions
diff --git a/src/plugins/vcsbase/commonvcssettings.cpp b/src/plugins/vcsbase/commonvcssettings.cpp
index 160095d38dc..d286164b5b9 100644
--- a/src/plugins/vcsbase/commonvcssettings.cpp
+++ b/src/plugins/vcsbase/commonvcssettings.cpp
@@ -20,8 +20,7 @@
using namespace Utils;
-namespace VcsBase {
-namespace Internal {
+namespace VcsBase::Internal {
// Return default for the ssh-askpass command (default to environment)
static QString sshPasswordPromptDefault()
@@ -39,27 +38,21 @@ CommonVcsSettings::CommonVcsSettings()
setSettingsGroup("VCS");
setAutoApply(false);
- registerAspect(&nickNameMailMap);
nickNameMailMap.setSettingsKey("NickNameMailMap");
- nickNameMailMap.setDisplayStyle(StringAspect::PathChooserDisplay);
nickNameMailMap.setExpectedKind(PathChooser::File);
nickNameMailMap.setHistoryCompleter("Vcs.NickMap.History");
nickNameMailMap.setLabelText(Tr::tr("User/&alias configuration file:"));
nickNameMailMap.setToolTip(Tr::tr("A file listing nicknames in a 4-column mailmap format:\n"
"'name <email> alias <email>'."));
- registerAspect(&nickNameFieldListFile);
nickNameFieldListFile.setSettingsKey("NickNameFieldListFile");
- nickNameFieldListFile.setDisplayStyle(StringAspect::PathChooserDisplay);
nickNameFieldListFile.setExpectedKind(PathChooser::File);
nickNameFieldListFile.setHistoryCompleter("Vcs.NickFields.History");
nickNameFieldListFile.setLabelText(Tr::tr("User &fields configuration file:"));
nickNameFieldListFile.setToolTip(Tr::tr("A simple file containing lines with field names like "
"\"Reviewed-By:\" which will be added below the submit editor."));
- registerAspect(&submitMessageCheckScript);
submitMessageCheckScript.setSettingsKey("SubmitMessageCheckScript");
- submitMessageCheckScript.setDisplayStyle(StringAspect::PathChooserDisplay);
submitMessageCheckScript.setExpectedKind(PathChooser::ExistingCommand);
submitMessageCheckScript.setHistoryCompleter("Vcs.MessageCheckScript.History");
submitMessageCheckScript.setLabelText(Tr::tr("Submit message &check script:"));
@@ -67,9 +60,7 @@ CommonVcsSettings::CommonVcsSettings()
"in a temporary file as first argument. It should return with an exit != 0 and a message "
"on standard error to indicate failure."));
- registerAspect(&sshPasswordPrompt);
sshPasswordPrompt.setSettingsKey("SshPasswordPrompt");
- sshPasswordPrompt.setDisplayStyle(StringAspect::PathChooserDisplay);
sshPasswordPrompt.setExpectedKind(PathChooser::ExistingCommand);
sshPasswordPrompt.setHistoryCompleter("Vcs.SshPrompt.History");
sshPasswordPrompt.setDefaultValue(sshPasswordPromptDefault());
@@ -78,12 +69,10 @@ CommonVcsSettings::CommonVcsSettings()
"for a password,\nshould a repository require SSH-authentication "
"(see documentation on SSH and the environment variable SSH_ASKPASS)."));
- registerAspect(&lineWrap);
lineWrap.setSettingsKey("LineWrap");
lineWrap.setDefaultValue(true);
lineWrap.setLabelText(Tr::tr("Wrap submit message at:"));
- registerAspect(&lineWrapWidth);
lineWrapWidth.setSettingsKey("LineWrapWidth");
lineWrapWidth.setSuffix(Tr::tr(" characters"));
lineWrapWidth.setDefaultValue(72);
@@ -94,61 +83,48 @@ CommonVcsSettings::CommonVcsSettings()
class CommonSettingsWidget final : public Core::IOptionsPageWidget
{
public:
- CommonSettingsWidget(CommonOptionsPage *page);
-
- void apply() final;
-
-private:
- void updatePath();
- CommonOptionsPage *m_page;
-};
-
-
-CommonSettingsWidget::CommonSettingsWidget(CommonOptionsPage *page)
- : m_page(page)
-{
- CommonVcsSettings &s = m_page->settings();
-
- auto cacheResetButton = new QPushButton(Tr::tr("Reset VCS Cache"));
- cacheResetButton->setToolTip(Tr::tr("Reset information about which "
- "version control system handles which directory."));
-
- updatePath();
-
- using namespace Layouting;
- Column {
- Row { s.lineWrap, s.lineWrapWidth, st },
- Form {
- s.submitMessageCheckScript,
- s.nickNameMailMap,
- s.nickNameFieldListFile,
- s.sshPasswordPrompt,
- {}, cacheResetButton
- }
- }.attachTo(this);
-
- connect(Core::VcsManager::instance(), &Core::VcsManager::configurationChanged,
- this, &CommonSettingsWidget::updatePath);
- connect(cacheResetButton, &QPushButton::clicked,
- Core::VcsManager::instance(), &Core::VcsManager::clearVersionControlCache);
-}
-
-void CommonSettingsWidget::updatePath()
-{
- EnvironmentChange change;
- change.addAppendToPath(Core::VcsManager::additionalToolsPath());
- m_page->settings().sshPasswordPrompt.setEnvironmentChange(change);
-}
-
-void CommonSettingsWidget::apply()
-{
- CommonVcsSettings &s = m_page->settings();
- if (s.isDirty()) {
- s.apply();
- s.writeSettings(Core::ICore::settings());
- emit m_page->settingsChanged();
+ CommonSettingsWidget(CommonOptionsPage *page)
+ {
+ CommonVcsSettings &s = page->settings();
+
+ auto cacheResetButton = new QPushButton(Tr::tr("Reset VCS Cache"));
+ cacheResetButton->setToolTip(Tr::tr("Reset information about which "
+ "version control system handles which directory."));
+
+ auto updatePath = [&s] {
+ Environment env;
+ env.appendToPath(Core::VcsManager::additionalToolsPath());
+ s.sshPasswordPrompt.setEnvironment(env);
+ };
+
+ using namespace Layouting;
+ Column {
+ Row { s.lineWrap, s.lineWrapWidth, st },
+ Form {
+ s.submitMessageCheckScript, br,
+ s.nickNameMailMap, br,
+ s.nickNameFieldListFile, br,
+ s.sshPasswordPrompt, br,
+ {}, cacheResetButton
+ }
+ }.attachTo(this);
+
+ updatePath();
+
+ connect(Core::VcsManager::instance(), &Core::VcsManager::configurationChanged,
+ this, updatePath);
+ connect(cacheResetButton, &QPushButton::clicked,
+ Core::VcsManager::instance(), &Core::VcsManager::clearVersionControlCache);
+
+ setOnApply([&s] {
+ if (s.isDirty()) {
+ s.apply();
+ s.writeSettings(Core::ICore::settings());
+ emit s.settingsChanged();
+ }
+ });
}
-}
+};
// CommonOptionsPage
@@ -165,5 +141,4 @@ CommonOptionsPage::CommonOptionsPage()
setWidgetCreator([this] { return new CommonSettingsWidget(this); });
}
-} // namespace Internal
-} // namespace VcsBase
+} // VcsBase::Internal