diff options
author | hjk <hjk@qt.io> | 2023-05-15 14:52:40 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2023-05-15 13:11:05 +0000 |
commit | ce7ee677d84850c087e0cef8f9d65470efac8f9e (patch) | |
tree | 121328bbe6c16155fa5e0fdc8f0521403cc47745 | |
parent | 1697ff874874def127daa83610f6d5ba190702d2 (diff) | |
download | qt-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.cpp | 2 | ||||
-rw-r--r-- | src/plugins/bazaar/bazaarsettings.cpp | 44 | ||||
-rw-r--r-- | src/plugins/bazaar/bazaarsettings.h | 8 | ||||
-rw-r--r-- | src/plugins/cvs/cvsplugin.cpp | 3 | ||||
-rw-r--r-- | src/plugins/cvs/cvssettings.cpp | 60 | ||||
-rw-r--r-- | src/plugins/cvs/cvssettings.h | 8 | ||||
-rw-r--r-- | src/plugins/fossil/fossilplugin.cpp | 3 | ||||
-rw-r--r-- | src/plugins/fossil/fossilsettings.cpp | 68 | ||||
-rw-r--r-- | src/plugins/fossil/fossilsettings.h | 7 | ||||
-rw-r--r-- | src/plugins/git/gitplugin.cpp | 3 | ||||
-rw-r--r-- | src/plugins/git/gitsettings.cpp | 95 | ||||
-rw-r--r-- | src/plugins/git/gitsettings.h | 7 | ||||
-rw-r--r-- | src/plugins/mercurial/mercurialplugin.cpp | 2 | ||||
-rw-r--r-- | src/plugins/mercurial/mercurialsettings.cpp | 45 | ||||
-rw-r--r-- | src/plugins/mercurial/mercurialsettings.h | 8 | ||||
-rw-r--r-- | src/plugins/subversion/subversionplugin.cpp | 3 | ||||
-rw-r--r-- | src/plugins/subversion/subversionsettings.cpp | 53 | ||||
-rw-r--r-- | src/plugins/subversion/subversionsettings.h | 8 | ||||
-rw-r--r-- | src/plugins/vcsbase/vcsbaseclientsettings.h | 4 |
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(); |