diff options
author | hjk <hjk@qt.io> | 2023-05-15 10:24:35 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2023-05-15 09:54:44 +0000 |
commit | e6d574ee775f724aac0e4ea0e1175649281d6f22 (patch) | |
tree | 41e833321d0a9a3eeac700e500f9e6ef8432b3f1 | |
parent | fe74e6d43bba607d0543164ff380fceaa54d0bb7 (diff) | |
download | qt-creator-e6d574ee775f724aac0e4ea0e1175649281d6f22.tar.gz |
Fossil: Consolidate optionpage/apply further
Change-Id: I345c6f38421864630d99a45fd2176ba0836536e9
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
-rw-r--r-- | src/plugins/fossil/fossilplugin.cpp | 5 | ||||
-rw-r--r-- | src/plugins/fossil/fossilsettings.cpp | 100 | ||||
-rw-r--r-- | src/plugins/fossil/fossilsettings.h | 12 |
3 files changed, 50 insertions, 67 deletions
diff --git a/src/plugins/fossil/fossilplugin.cpp b/src/plugins/fossil/fossilplugin.cpp index 4386c4a6a4..825a81bbca 100644 --- a/src/plugins/fossil/fossilplugin.cpp +++ b/src/plugins/fossil/fossilplugin.cpp @@ -190,7 +190,7 @@ public: FossilSettings m_fossilSettings; FossilClient m_client{&m_fossilSettings}; - OptionsPage optionPage{[this] { configurationChanged(); }, &m_fossilSettings}; + OptionsPage optionPage{&m_fossilSettings}; VcsSubmitEditorFactory submitEditorFactory { submitEditorParameters, @@ -300,6 +300,9 @@ FossilPluginPrivate::FossilPluginPrivate() return new FossilJsExtension(&m_fossilSettings); }); + connect(&m_fossilSettings, &AspectContainer::changed, + this, &IVersionControl::configurationChanged); + createMenu(context); } diff --git a/src/plugins/fossil/fossilsettings.cpp b/src/plugins/fossil/fossilsettings.cpp index 130ff5c2c5..7fdea5f075 100644 --- a/src/plugins/fossil/fossilsettings.cpp +++ b/src/plugins/fossil/fossilsettings.cpp @@ -15,8 +15,7 @@ using namespace Utils; -namespace Fossil { -namespace Internal { +namespace Fossil::Internal { FossilSettings::FossilSettings() { @@ -95,80 +94,63 @@ 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(const std::function<void()> &onApply, FossilSettings *settings); - void apply() final; + OptionsPageWidget(FossilSettings *settings) + { + FossilSettings &s = *settings; -private: - const std::function<void()> m_onApply; - FossilSettings *m_settings; -}; + using namespace Layouting; -void OptionsPageWidget::apply() -{ - if (!m_settings->isDirty()) - return; + Column { + Group { + title(Tr::tr("Configuration")), + Row { s.binaryPath } + }, - m_settings->apply(); - m_onApply(); -} + Group { + title(Tr::tr("Local Repositories")), + Row { s.defaultRepoPath } + }, + Group { + title(Tr::tr("User")), + Form { + s.userName, br, + s.sslIdentityFile + } + }, -OptionsPageWidget::OptionsPageWidget(const std::function<void()> &onApply, FossilSettings *settings) : - m_onApply(onApply), - m_settings(settings) -{ - FossilSettings &s = *m_settings; - - using namespace Layouting; - - Column { - Group { - title(Tr::tr("Configuration")), - Row { s.binaryPath } - }, - - Group { - title(Tr::tr("Local Repositories")), - Row { s.defaultRepoPath } - }, - Group { - title(Tr::tr("User")), - Form { - s.userName, br, - s.sslIdentityFile - } - }, - - Group { - title(Tr::tr("Miscellaneous")), - Column { - Row { - s.logCount, - s.timelineWidth, - s.timeout, - st + Group { + title(Tr::tr("Miscellaneous")), + Column { + Row { + s.logCount, + s.timelineWidth, + s.timeout, + st + }, + s.disableAutosync }, - s.disableAutosync }, - }, - st + st - }.attachTo(this); -} + }.attachTo(this); + + setOnApply([settings] { settings->apply(); }); + } +}; -OptionsPage::OptionsPage(const std::function<void()> &onApply, FossilSettings *settings) +OptionsPage::OptionsPage(FossilSettings *settings) { setId(Constants::VCS_ID_FOSSIL); setDisplayName(Tr::tr("Fossil")); - setWidgetCreator([onApply, settings]() { return new OptionsPageWidget(onApply, settings); }); + setWidgetCreator([settings] { return new OptionsPageWidget(settings); }); setCategory(VcsBase::Constants::VCS_SETTINGS_CATEGORY); } -} // Internal -} // Fossil +} // Fossil::Internal diff --git a/src/plugins/fossil/fossilsettings.h b/src/plugins/fossil/fossilsettings.h index e4133393f6..f1a872ee0d 100644 --- a/src/plugins/fossil/fossilsettings.h +++ b/src/plugins/fossil/fossilsettings.h @@ -6,12 +6,13 @@ #include <coreplugin/dialogs/ioptionspage.h> #include <vcsbase/vcsbaseclientsettings.h> -namespace Fossil { -namespace Internal { +namespace Fossil::Internal { class FossilSettings : public VcsBase::VcsBaseSettings { public: + FossilSettings(); + Utils::StringAspect defaultRepoPath; Utils::StringAspect sslIdentityFile; Utils::BoolAspect diffIgnoreAllWhiteSpace; @@ -23,8 +24,6 @@ public: Utils::BoolAspect timelineVerbose; Utils::StringAspect timelineItemType; Utils::BoolAspect disableAutosync; - - FossilSettings(); }; struct RepositorySettings @@ -46,8 +45,7 @@ inline bool operator==(const RepositorySettings &lh, const RepositorySettings &r class OptionsPage : public Core::IOptionsPage { public: - OptionsPage(const std::function<void()> &onApply, FossilSettings *settings); + explicit OptionsPage(FossilSettings *settings); }; -} // namespace Internal -} // namespace Fossil +} // Fossil::Internal |