summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2023-05-15 14:52:40 +0200
committerhjk <hjk@qt.io>2023-05-15 13:11:05 +0000
commitce7ee677d84850c087e0cef8f9d65470efac8f9e (patch)
tree121328bbe6c16155fa5e0fdc8f0521403cc47745
parent1697ff874874def127daa83610f6d5ba190702d2 (diff)
downloadqt-creator-ce7ee677d84850c087e0cef8f9d65470efac8f9e.tar.gz
Vcs: Use PagedSettings for all plugin settings
Hopefully the last structural change for a while. Settings lifetime is again tied to the plugin private. Change-Id: I221e8b8baa69422306191b48a9f034ef5b1a0dc2 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
-rw-r--r--src/plugins/bazaar/bazaarplugin.cpp2
-rw-r--r--src/plugins/bazaar/bazaarsettings.cpp44
-rw-r--r--src/plugins/bazaar/bazaarsettings.h8
-rw-r--r--src/plugins/cvs/cvsplugin.cpp3
-rw-r--r--src/plugins/cvs/cvssettings.cpp60
-rw-r--r--src/plugins/cvs/cvssettings.h8
-rw-r--r--src/plugins/fossil/fossilplugin.cpp3
-rw-r--r--src/plugins/fossil/fossilsettings.cpp68
-rw-r--r--src/plugins/fossil/fossilsettings.h7
-rw-r--r--src/plugins/git/gitplugin.cpp3
-rw-r--r--src/plugins/git/gitsettings.cpp95
-rw-r--r--src/plugins/git/gitsettings.h7
-rw-r--r--src/plugins/mercurial/mercurialplugin.cpp2
-rw-r--r--src/plugins/mercurial/mercurialsettings.cpp45
-rw-r--r--src/plugins/mercurial/mercurialsettings.h8
-rw-r--r--src/plugins/subversion/subversionplugin.cpp3
-rw-r--r--src/plugins/subversion/subversionsettings.cpp53
-rw-r--r--src/plugins/subversion/subversionsettings.h8
-rw-r--r--src/plugins/vcsbase/vcsbaseclientsettings.h4
19 files changed, 162 insertions, 269 deletions
diff --git a/src/plugins/bazaar/bazaarplugin.cpp b/src/plugins/bazaar/bazaarplugin.cpp
index 0c2d11b9f3..110e990447 100644
--- a/src/plugins/bazaar/bazaarplugin.cpp
+++ b/src/plugins/bazaar/bazaarplugin.cpp
@@ -215,8 +215,8 @@ public:
void createRepositoryActions(const Core::Context &context);
// Variables
+ BazaarSettings m_setting;
BazaarClient m_client;
- BazaarSettingsPage m_settingPage;
VcsSubmitEditorFactory m_submitEditorFactory {
submitEditorParameters,
diff --git a/src/plugins/bazaar/bazaarsettings.cpp b/src/plugins/bazaar/bazaarsettings.cpp
index 394864ea54..231562edc1 100644
--- a/src/plugins/bazaar/bazaarsettings.cpp
+++ b/src/plugins/bazaar/bazaarsettings.cpp
@@ -16,10 +16,21 @@ using namespace Utils;
namespace Bazaar::Internal {
+static BazaarSettings *theSettings;
+
+BazaarSettings &settings()
+{
+ return *theSettings;
+}
+
BazaarSettings::BazaarSettings()
{
+ theSettings = this;
+
setSettingsGroup(Constants::BAZAAR);
- setAutoApply(false);
+ setId(VcsBase::Constants::VCS_ID_BAZAAR);
+ setDisplayName(Tr::tr("Bazaar"));
+ setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
registerAspect(&binaryPath);
binaryPath.setDisplayStyle(StringAspect::PathChooserDisplay);
@@ -66,52 +77,31 @@ BazaarSettings::BazaarSettings()
registerAspect(&logCount);
timeout.setLabelText(Tr::tr("Timeout:"));
timeout.setSuffix(Tr::tr("s"));
-}
-
-// BazaarSettingsPage
-BazaarSettingsPage::BazaarSettingsPage()
-{
- setId(VcsBase::Constants::VCS_ID_BAZAAR);
- setDisplayName(Tr::tr("Bazaar"));
- setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
- setSettings(&settings());
-
- setLayouter([](QWidget *widget) {
- BazaarSettings &s = settings();
+ setLayouter([this](QWidget *widget) {
using namespace Layouting;
Column {
Group {
title(Tr::tr("Configuration")),
- Row { s.binaryPath }
+ Row { binaryPath }
},
Group {
title(Tr::tr("User")),
Form {
- s.userName, br,
- s.userEmail
+ userName, br,
+ userEmail
}
},
Group {
title(Tr::tr("Miscellaneous")),
- Row {
- s.logCount,
- s.timeout,
- st
- }
+ Row { logCount, timeout, st }
},
st
}.attachTo(widget);
});
}
-BazaarSettings &settings()
-{
- static BazaarSettings theSettings;
- return theSettings;
-}
-
} // Bazaar::Internal
diff --git a/src/plugins/bazaar/bazaarsettings.h b/src/plugins/bazaar/bazaarsettings.h
index 971147175a..24643a2d4c 100644
--- a/src/plugins/bazaar/bazaarsettings.h
+++ b/src/plugins/bazaar/bazaarsettings.h
@@ -3,8 +3,6 @@
#pragma once
-#include <coreplugin/dialogs/ioptionspage.h>
-
#include <vcsbase/vcsbaseclientsettings.h>
namespace Bazaar::Internal {
@@ -24,10 +22,4 @@ public:
BazaarSettings &settings();
-class BazaarSettingsPage final : public Core::IOptionsPage
-{
-public:
- BazaarSettingsPage();
-};
-
} // Bazaar::Internal
diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp
index adfab49ef8..076f2ad8b2 100644
--- a/src/plugins/cvs/cvsplugin.cpp
+++ b/src/plugins/cvs/cvsplugin.cpp
@@ -288,6 +288,7 @@ private:
bool commit(const QString &messageFile, const QStringList &subVersionFileList);
void cleanCommitMessageFile();
+ CvsSettings m_setting;
CvsClient *m_client = nullptr;
QString m_commitMessageFileName;
@@ -320,8 +321,6 @@ private:
QAction *m_menuAction = nullptr;
- CvsSettingsPage m_settingsPage;
-
public:
VcsSubmitEditorFactory submitEditorFactory {
submitParameters,
diff --git a/src/plugins/cvs/cvssettings.cpp b/src/plugins/cvs/cvssettings.cpp
index 693fb36016..f18feeed66 100644
--- a/src/plugins/cvs/cvssettings.cpp
+++ b/src/plugins/cvs/cvssettings.cpp
@@ -17,12 +17,22 @@ using namespace Utils;
namespace Cvs::Internal {
-// CvsSettings
+static CvsSettings *theSettings;
+
+CvsSettings &settings()
+{
+ return *theSettings;
+}
CvsSettings::CvsSettings()
{
+ theSettings = this;
setSettingsGroup("CVS");
+ setId(VcsBase::Constants::VCS_ID_CVS);
+ setDisplayName(Tr::tr("CVS"));
+ setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
+
registerAspect(&binaryPath);
binaryPath.setDefaultValue("cvs" QTC_HOST_EXE_SUFFIX);
binaryPath.setDisplayStyle(StringAspect::PathChooserDisplay);
@@ -55,48 +65,25 @@ CvsSettings::CvsSettings()
registerAspect(&diffIgnoreBlankLines);
diffIgnoreBlankLines.setSettingsKey("DiffIgnoreBlankLines");
-}
-
-QStringList CvsSettings::addOptions(const QStringList &args) const
-{
- const QString cvsRoot = this->cvsRoot.value();
- if (cvsRoot.isEmpty())
- return args;
- QStringList rc;
- rc.push_back(QLatin1String("-d"));
- rc.push_back(cvsRoot);
- rc.append(args);
- return rc;
-}
-
-CvsSettingsPage::CvsSettingsPage()
-{
- setId(VcsBase::Constants::VCS_ID_CVS);
- setDisplayName(Tr::tr("CVS"));
- setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
- setSettings(&settings());
-
- setLayouter([](QWidget *widget) {
- CvsSettings &s = settings();
+ setLayouter([this](QWidget *widget) {
using namespace Layouting;
-
Column {
Group {
title(Tr::tr("Configuration")),
Form {
- s.binaryPath, br,
- s.cvsRoot
+ binaryPath, br,
+ cvsRoot
}
},
Group {
title(Tr::tr("Miscellaneous")),
Column {
Form {
- s.timeout, br,
- s.diffOptions,
+ timeout, br,
+ diffOptions,
},
- s.describeByCommitId,
+ describeByCommitId,
}
},
st
@@ -104,10 +91,17 @@ CvsSettingsPage::CvsSettingsPage()
});
}
-CvsSettings &settings()
+QStringList CvsSettings::addOptions(const QStringList &args) const
{
- static CvsSettings theSettings;
- return theSettings;
+ const QString cvsRoot = this->cvsRoot.value();
+ if (cvsRoot.isEmpty())
+ return args;
+
+ QStringList rc;
+ rc.push_back(QLatin1String("-d"));
+ rc.push_back(cvsRoot);
+ rc.append(args);
+ return rc;
}
} // Cvs::Internal
diff --git a/src/plugins/cvs/cvssettings.h b/src/plugins/cvs/cvssettings.h
index b500ee8b83..0c2e5442a6 100644
--- a/src/plugins/cvs/cvssettings.h
+++ b/src/plugins/cvs/cvssettings.h
@@ -3,8 +3,6 @@
#pragma once
-#include <coreplugin/dialogs/ioptionspage.h>
-
#include <vcsbase/vcsbaseclientsettings.h>
namespace Cvs::Internal {
@@ -25,10 +23,4 @@ public:
CvsSettings &settings();
-class CvsSettingsPage final : public Core::IOptionsPage
-{
-public:
- CvsSettingsPage();
-};
-
} // Cvs::Internal
diff --git a/src/plugins/fossil/fossilplugin.cpp b/src/plugins/fossil/fossilplugin.cpp
index 71833aabc1..4979b1d120 100644
--- a/src/plugins/fossil/fossilplugin.cpp
+++ b/src/plugins/fossil/fossilplugin.cpp
@@ -187,10 +187,9 @@ public:
bool pullOrPush(SyncMode mode);
// Variables
+ FossilSettings m_settings;
FossilClient m_client;
- OptionsPage optionPage;
-
VcsSubmitEditorFactory submitEditorFactory {
submitEditorParameters,
[] { return new CommitEditor; },
diff --git a/src/plugins/fossil/fossilsettings.cpp b/src/plugins/fossil/fossilsettings.cpp
index 4ee13bd698..ca24802114 100644
--- a/src/plugins/fossil/fossilsettings.cpp
+++ b/src/plugins/fossil/fossilsettings.cpp
@@ -17,10 +17,21 @@ using namespace Utils;
namespace Fossil::Internal {
+static FossilSettings *theSettings;
+
+FossilSettings &settings()
+{
+ return *theSettings;
+}
+
FossilSettings::FossilSettings()
{
+ theSettings = this;
+
setSettingsGroup(Constants::FOSSIL);
- setAutoApply(false);
+ setId(Constants::VCS_ID_FOSSIL);
+ setDisplayName(Tr::tr("Fossil"));
+ setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
registerAspect(&binaryPath);
binaryPath.setDisplayStyle(StringAspect::PathChooserDisplay);
@@ -94,69 +105,38 @@ FossilSettings::FossilSettings()
logCount.setLabelText(Tr::tr("Log count:"));
logCount.setToolTip(Tr::tr("The number of recent commit log entries to show. "
"Choose 0 to see all entries."));
-}
-
-// OptionsPage
-
-class OptionsPageWidget final : public Core::IOptionsPageWidget
-{
-public:
- OptionsPageWidget()
- {
- FossilSettings &s = settings();
+ setLayouter([this](QWidget *widget) {
using namespace Layouting;
-
Column {
Group {
title(Tr::tr("Configuration")),
- Row { s.binaryPath }
+ Row { binaryPath }
},
Group {
title(Tr::tr("Local Repositories")),
- Row { s.defaultRepoPath }
+ Row { defaultRepoPath }
},
+
Group {
title(Tr::tr("User")),
- Form {
- s.userName, br,
- s.sslIdentityFile
+ Form {
+ userName, br,
+ sslIdentityFile
}
},
Group {
title(Tr::tr("Miscellaneous")),
- Column {
- Row {
- s.logCount,
- s.timelineWidth,
- s.timeout,
- st
- },
- s.disableAutosync
+ Column {
+ Row { logCount, timelineWidth, timeout, st },
+ disableAutosync
},
},
st
-
- }.attachTo(this);
-
- setOnApply([] { settings().apply(); });
- }
-};
-
-OptionsPage::OptionsPage()
-{
- setId(Constants::VCS_ID_FOSSIL);
- setDisplayName(Tr::tr("Fossil"));
- setWidgetCreator([] { return new OptionsPageWidget; });
- setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
-}
-
-FossilSettings &settings()
-{
- static FossilSettings theSettings;
- return theSettings;
+ }.attachTo(widget);
+ });
}
} // Fossil::Internal
diff --git a/src/plugins/fossil/fossilsettings.h b/src/plugins/fossil/fossilsettings.h
index e373a30cee..eeea6041bd 100644
--- a/src/plugins/fossil/fossilsettings.h
+++ b/src/plugins/fossil/fossilsettings.h
@@ -3,7 +3,6 @@
#pragma once
-#include <coreplugin/dialogs/ioptionspage.h>
#include <vcsbase/vcsbaseclientsettings.h>
namespace Fossil::Internal {
@@ -44,10 +43,4 @@ struct RepositorySettings
}
};
-class OptionsPage : public Core::IOptionsPage
-{
-public:
- OptionsPage();
-};
-
} // Fossil::Internal
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 0401eb835e..7443f0baa3 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -397,6 +397,7 @@ public:
void onApplySettings();
+ GitSettings setting;
CommandLocator *m_commandLocator = nullptr;
QAction *m_menuAction = nullptr;
@@ -433,8 +434,6 @@ public:
std::unique_ptr<BlameMark> m_blameMark;
QMetaObject::Connection m_blameCursorPosConn;
- GitSettingsPage settingPage;
-
GitGrep gitGrep{&m_gitClient};
VcsEditorFactory svnLogEditorFactory {
diff --git a/src/plugins/git/gitsettings.cpp b/src/plugins/git/gitsettings.cpp
index 965a62c728..f092dd74e9 100644
--- a/src/plugins/git/gitsettings.cpp
+++ b/src/plugins/git/gitsettings.cpp
@@ -17,8 +17,21 @@ using namespace VcsBase;
namespace Git::Internal {
+static GitSettings *theSettings;
+
+GitSettings &settings()
+{
+ return *theSettings;
+}
+
GitSettings::GitSettings()
{
+ theSettings = this;
+
+ setId(VcsBase::Constants::VCS_ID_GIT);
+ setDisplayName(Tr::tr("Git"));
+ setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
+
setSettingsGroup("Git");
path.setDisplayStyle(StringAspect::LineEditDisplay);
@@ -117,89 +130,71 @@ GitSettings::GitSettings()
timeout.setDefaultValue(Utils::HostOsInfo::isWindowsHost() ? 60 : 30);
- connect(&binaryPath, &StringAspect::valueChanged, this, [this] { tryResolve = true; });
- connect(&path, &StringAspect::valueChanged, this, [this] { tryResolve = true; });
-}
-
-FilePath GitSettings::gitExecutable(bool *ok, QString *errorMessage) const
-{
- // Locate binary in path if one is specified, otherwise default to pathless binary.
- if (ok)
- *ok = true;
- if (errorMessage)
- errorMessage->clear();
-
- if (tryResolve) {
- resolvedBinPath = binaryPath.filePath();
- if (!resolvedBinPath.isAbsolutePath())
- resolvedBinPath = resolvedBinPath.searchInPath({path.filePath()}, FilePath::PrependToPath);
- tryResolve = false;
- }
-
- if (resolvedBinPath.isEmpty()) {
- if (ok)
- *ok = false;
- if (errorMessage)
- *errorMessage = Tr::tr("The binary \"%1\" could not be located in the path \"%2\"")
- .arg(binaryPath.value(), path.value());
- }
- return resolvedBinPath;
-}
-
-// GitSettingsPage
-
-GitSettingsPage::GitSettingsPage()
-{
- setId(VcsBase::Constants::VCS_ID_GIT);
- setDisplayName(Tr::tr("Git"));
- setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
- setSettings(&settings());
-
- setLayouter([](QWidget *widget) {
- GitSettings &s = settings();
+ setLayouter([this](QWidget *widget) {
using namespace Layouting;
Column {
Group {
title(Tr::tr("Configuration")),
Column {
- Row { s.path },
- s.winSetHomeEnvironment,
+ Row { path },
+ winSetHomeEnvironment,
}
},
Group {
title(Tr::tr("Miscellaneous")),
Column {
- Row { s.logCount, s.timeout, st },
- s.pullRebase
+ Row { logCount, timeout, st },
+ pullRebase
}
},
Group {
title(Tr::tr("Gitk")),
- Row { s.gitkOptions }
+ Row { gitkOptions }
},
Group {
title(Tr::tr("Repository Browser")),
- Row { s.repositoryBrowserCmd }
+ Row { repositoryBrowserCmd }
},
Group {
title(Tr::tr("Instant Blame")),
- Row { s.instantBlame }
+ Row { instantBlame }
},
st
}.attachTo(widget);
});
+ connect(&binaryPath, &StringAspect::valueChanged, this, [this] { tryResolve = true; });
+ connect(&path, &StringAspect::valueChanged, this, [this] { tryResolve = true; });
}
-GitSettings &settings()
+FilePath GitSettings::gitExecutable(bool *ok, QString *errorMessage) const
{
- static GitSettings theSettings;
- return theSettings;
+ // Locate binary in path if one is specified, otherwise default to pathless binary.
+ if (ok)
+ *ok = true;
+ if (errorMessage)
+ errorMessage->clear();
+
+ if (tryResolve) {
+ resolvedBinPath = binaryPath.filePath();
+ if (!resolvedBinPath.isAbsolutePath())
+ resolvedBinPath = resolvedBinPath.searchInPath({path.filePath()}, FilePath::PrependToPath);
+ tryResolve = false;
+ }
+
+ if (resolvedBinPath.isEmpty()) {
+ if (ok)
+ *ok = false;
+ if (errorMessage)
+ *errorMessage = Tr::tr("The binary \"%1\" could not be located in the path \"%2\"")
+ .arg(binaryPath.value(), path.value());
+ }
+ return resolvedBinPath;
}
} // Git::Internal
diff --git a/src/plugins/git/gitsettings.h b/src/plugins/git/gitsettings.h
index d9976de838..3899fdada5 100644
--- a/src/plugins/git/gitsettings.h
+++ b/src/plugins/git/gitsettings.h
@@ -3,7 +3,6 @@
#pragma once
-#include <coreplugin/dialogs/ioptionspage.h>
#include <vcsbase/vcsbaseclientsettings.h>
namespace Git::Internal {
@@ -48,10 +47,4 @@ public:
GitSettings &settings();
-class GitSettingsPage final : public Core::IOptionsPage
-{
-public:
- GitSettingsPage();
-};
-
} // Git::Internal
diff --git a/src/plugins/mercurial/mercurialplugin.cpp b/src/plugins/mercurial/mercurialplugin.cpp
index 374484a6a3..a6bd955c3a 100644
--- a/src/plugins/mercurial/mercurialplugin.cpp
+++ b/src/plugins/mercurial/mercurialplugin.cpp
@@ -169,8 +169,8 @@ private:
void createRepositoryActions(const Core::Context &context);
// Variables
+ MercurialSettings m_settings;
MercurialClient m_client;
- MercurialSettingsPage m_settingsPage;
Core::CommandLocator *m_commandLocator = nullptr;
Core::ActionContainer *m_mercurialContainer = nullptr;
diff --git a/src/plugins/mercurial/mercurialsettings.cpp b/src/plugins/mercurial/mercurialsettings.cpp
index f19ea17283..dd63faddc0 100644
--- a/src/plugins/mercurial/mercurialsettings.cpp
+++ b/src/plugins/mercurial/mercurialsettings.cpp
@@ -14,8 +14,22 @@ using namespace Utils;
namespace Mercurial::Internal {
+static MercurialSettings *theSettings;
+
+MercurialSettings &settings()
+{
+ return *theSettings;
+}
+
MercurialSettings::MercurialSettings()
{
+ theSettings = this;
+
+ setId(VcsBase::Constants::VCS_ID_MERCURIAL);
+ setDisplayName(Tr::tr("Mercurial"));
+ setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
+ setSettings(&settings());
+
setSettingsGroup("Mercurial");
setAutoApply(false);
@@ -42,42 +56,27 @@ MercurialSettings::MercurialSettings()
registerAspect(&diffIgnoreBlankLines);
diffIgnoreBlankLines.setSettingsKey("diffIgnoreBlankLines");
-}
-// MercurialSettingsPage
-
-MercurialSettingsPage::MercurialSettingsPage()
-{
- setId(VcsBase::Constants::VCS_ID_MERCURIAL);
- setDisplayName(Tr::tr("Mercurial"));
- setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
- setSettings(&settings());
-
- setLayouter([](QWidget *widget) {
- MercurialSettings &s = settings();
+ setLayouter([this](QWidget *widget) {
using namespace Layouting;
Column {
Group {
title(Tr::tr("Configuration")),
- Row { s.binaryPath }
+ Row { binaryPath }
},
Group {
title(Tr::tr("User")),
Form {
- s.userName, br,
- s.userEmail
+ userName, br,
+ userEmail
}
},
Group {
title(Tr::tr("Miscellaneous")),
- Row {
- s.logCount,
- s.timeout,
- st
- }
+ Row { logCount, timeout, st }
},
st
@@ -85,10 +84,4 @@ MercurialSettingsPage::MercurialSettingsPage()
});
}
-MercurialSettings &settings()
-{
- static MercurialSettings theSettings;
- return theSettings;
-}
-
} // Mercurial::Internal
diff --git a/src/plugins/mercurial/mercurialsettings.h b/src/plugins/mercurial/mercurialsettings.h
index 34c6693c93..08c8fa4154 100644
--- a/src/plugins/mercurial/mercurialsettings.h
+++ b/src/plugins/mercurial/mercurialsettings.h
@@ -3,8 +3,6 @@
#pragma once
-#include <coreplugin/dialogs/ioptionspage.h>
-
#include <vcsbase/vcsbaseclientsettings.h>
namespace Mercurial::Internal {
@@ -20,10 +18,4 @@ public:
MercurialSettings &settings();
-class MercurialSettingsPage final : public Core::IOptionsPage
-{
-public:
- MercurialSettingsPage();
-};
-
} // Mercurial::Internal
diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp
index cdcfbb96d6..957947a89a 100644
--- a/src/plugins/subversion/subversionplugin.cpp
+++ b/src/plugins/subversion/subversionplugin.cpp
@@ -261,6 +261,7 @@ private:
const QStringList m_svnDirectories;
+ SubversionSettings m_settings;
SubversionClient *m_client = nullptr;
QString m_commitMessageFileName;
FilePath m_commitRepository;
@@ -288,8 +289,6 @@ private:
QAction *m_menuAction = nullptr;
- SubversionSettingsPage m_settingsPage;
-
public:
VcsSubmitEditorFactory submitEditorFactory {
submitParameters,
diff --git a/src/plugins/subversion/subversionsettings.cpp b/src/plugins/subversion/subversionsettings.cpp
index 1e56e27ccb..98945ab82e 100644
--- a/src/plugins/subversion/subversionsettings.cpp
+++ b/src/plugins/subversion/subversionsettings.cpp
@@ -5,25 +5,31 @@
#include "subversiontr.h"
-#include <utils/environment.h>
#include <utils/hostosinfo.h>
#include <utils/layoutbuilder.h>
#include <utils/pathchooser.h>
#include <vcsbase/vcsbaseconstants.h>
-#include <QSettings>
-
using namespace Utils;
using namespace VcsBase;
namespace Subversion::Internal {
-// SubversionSettings
+static SubversionSettings *theSettings;
+
+SubversionSettings &settings()
+{
+ return *theSettings;
+}
SubversionSettings::SubversionSettings()
{
- setAutoApply(false);
+ theSettings = this;
+
+ setId(VcsBase::Constants::VCS_ID_SUBVERSION);
+ setDisplayName(Tr::tr("Subversion"));
+ setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
setSettingsGroup("Subversion");
registerAspect(&binaryPath);
@@ -68,47 +74,33 @@ SubversionSettings::SubversionSettings()
timeout.setSuffix(Tr::tr("s"));
QObject::connect(&useAuthentication, &BaseAspect::changed, this, [this] {
- userName.setEnabled(useAuthentication.value());
- password.setEnabled(useAuthentication.value());
+ userName.setEnabled(useAuthentication());
+ password.setEnabled(useAuthentication());
});
-}
-bool SubversionSettings::hasAuthentication() const
-{
- return useAuthentication.value() && !userName.value().isEmpty();
-}
-
-SubversionSettingsPage::SubversionSettingsPage()
-{
- setId(VcsBase::Constants::VCS_ID_SUBVERSION);
- setDisplayName(Tr::tr("Subversion"));
- setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY);
- setSettings(&settings());
-
- setLayouter([](QWidget *widget) {
- SubversionSettings &s = settings();
+ setLayouter([this](QWidget *widget) {
using namespace Layouting;
Column {
Group {
title(Tr::tr("Configuration")),
- Column { s.binaryPath }
+ Column { binaryPath }
},
Group {
title(Tr::tr("Authentication")),
- s.useAuthentication.groupChecker(),
+ useAuthentication.groupChecker(),
Form {
- s.userName, br,
- s.password,
+ userName, br,
+ password,
}
},
Group {
title(Tr::tr("Miscellaneous")),
Column {
- Row { s.logCount, s.timeout, st },
- s.spaceIgnorantAnnotation,
+ Row { logCount, timeout, st },
+ spaceIgnorantAnnotation,
}
},
@@ -117,10 +109,9 @@ SubversionSettingsPage::SubversionSettingsPage()
});
}
-SubversionSettings &settings()
+bool SubversionSettings::hasAuthentication() const
{
- static SubversionSettings theSettings;
- return theSettings;
+ return useAuthentication() && !userName().isEmpty();
}
} // Subversion::Internal
diff --git a/src/plugins/subversion/subversionsettings.h b/src/plugins/subversion/subversionsettings.h
index 080dbd6c0c..49aaec171b 100644
--- a/src/plugins/subversion/subversionsettings.h
+++ b/src/plugins/subversion/subversionsettings.h
@@ -3,8 +3,6 @@
#pragma once
-#include <coreplugin/dialogs/ioptionspage.h>
-
#include <vcsbase/vcsbaseclientsettings.h>
namespace Subversion::Internal {
@@ -25,10 +23,4 @@ public:
SubversionSettings &settings();
-class SubversionSettingsPage final : public Core::IOptionsPage
-{
-public:
- SubversionSettingsPage();
-};
-
} // Subversion::Internal
diff --git a/src/plugins/vcsbase/vcsbaseclientsettings.h b/src/plugins/vcsbase/vcsbaseclientsettings.h
index 102405c4bf..9a034e5f92 100644
--- a/src/plugins/vcsbase/vcsbaseclientsettings.h
+++ b/src/plugins/vcsbase/vcsbaseclientsettings.h
@@ -5,11 +5,11 @@
#include "vcsbase_global.h"
-#include <utils/aspects.h>
+#include <coreplugin/dialogs/ioptionspage.h>
namespace VcsBase {
-class VCSBASE_EXPORT VcsBaseSettings : public Utils::AspectContainer
+class VCSBASE_EXPORT VcsBaseSettings : public Core::PagedSettings
{
public:
VcsBaseSettings();