diff options
author | hjk <hjk@qt.io> | 2023-07-07 12:13:07 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2023-07-10 10:31:14 +0000 |
commit | 2c512625c5a002bb1a76d83ebc9d32e7f7142e7b (patch) | |
tree | 022e82d7b6405d8fa0e777716f73669412b30caa /src/plugins/fakevim | |
parent | 6a068a650908bfbe28708ae88630911b4ce22a69 (diff) |
FakeVim: Delay settings creation until actual use
Task-number: QTCREATORBUG-29167
Change-Id: I3a6f1330922f3840cb7e99d8adb60a728d36eb4b
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'src/plugins/fakevim')
-rw-r--r-- | src/plugins/fakevim/fakevimactions.cpp | 41 | ||||
-rw-r--r-- | src/plugins/fakevim/fakevimactions.h | 10 | ||||
-rw-r--r-- | src/plugins/fakevim/fakevimplugin.cpp | 21 |
3 files changed, 38 insertions, 34 deletions
diff --git a/src/plugins/fakevim/fakevimactions.cpp b/src/plugins/fakevim/fakevimactions.cpp index a6dc84b9b2..c80d17c972 100644 --- a/src/plugins/fakevim/fakevimactions.cpp +++ b/src/plugins/fakevim/fakevimactions.cpp @@ -45,29 +45,15 @@ void setAutoApply(bool ) {} #endif -static FakeVimSettings *s_settings; - FakeVimSettings &settings() { - return *s_settings; + static FakeVimSettings theSettings; + return theSettings; } FakeVimSettings::FakeVimSettings() { - s_settings = this; - -#ifndef FAKEVIM_STANDALONE - const char SETTINGS_CATEGORY[] = "D.FakeVim"; - const char SETTINGS_ID[] = "A.FakeVim.General"; - - setId(SETTINGS_ID); - setDisplayName(Tr::tr("General")); - setCategory(SETTINGS_CATEGORY); - setDisplayCategory(Tr::tr("FakeVim")); - setCategoryIconPath(":/fakevim/images/settingscategory_fakevim.png"); - setup(&useFakeVim, false, "UseFakeVim", {}, Tr::tr("Use FakeVim")); -#endif // Specific FakeVim settings setup(&readVimRc, false, "ReadVimRc", {}, Tr::tr("Read .vimrc from location:")); @@ -303,4 +289,27 @@ void FakeVimSettings::setup(FvBaseAspect *aspect, m_nameToAspect[shortName] = aspect; } +#ifndef FAKEVIM_STANDALONE + +class FakeVimSettingsPage final : public Core::IOptionsPage +{ +public: + FakeVimSettingsPage() + { + const char SETTINGS_CATEGORY[] = "D.FakeVim"; + const char SETTINGS_ID[] = "A.FakeVim.General"; + + setId(SETTINGS_ID); + setDisplayName(Tr::tr("General")); + setCategory(SETTINGS_CATEGORY); + setDisplayCategory(Tr::tr("FakeVim")); + setCategoryIconPath(":/fakevim/images/settingscategory_fakevim.png"); + setSettingsProvider([] { return &settings(); }); + } +}; + +const FakeVimSettingsPage settingsPage; + +#endif + } // FakeVim::Internal diff --git a/src/plugins/fakevim/fakevimactions.h b/src/plugins/fakevim/fakevimactions.h index 94ba02a7f3..1d72080d9b 100644 --- a/src/plugins/fakevim/fakevimactions.h +++ b/src/plugins/fakevim/fakevimactions.h @@ -28,10 +28,10 @@ public: FvBaseAspect() = default; virtual ~FvBaseAspect() = default; - virtual void setVariantValue(const QVariant &value) = 0; - virtual void setDefaultVariantValue(const QVariant &value) = 0; - virtual QVariant variantValue() const = 0; - virtual QVariant defaultVariantValue() const = 0; + virtual void setVariantValue(const QVariant &) {} + virtual void setDefaultVariantValue(const QVariant &) {} + virtual QVariant variantValue() const { return {}; } + virtual QVariant defaultVariantValue() const { return {}; } void setSettingsKey(const QString &group, const QString &key); QString settingsKey() const; @@ -84,7 +84,7 @@ public: #else -using FvAspectContainer = Core::PagedSettings; +using FvAspectContainer = Utils::AspectContainer; using FvBaseAspect = Utils::BaseAspect; using FvBoolAspect = Utils::BoolAspect; using FvIntegerAspect = Utils::IntegerAspect; diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp index fac40d951a..1a98882197 100644 --- a/src/plugins/fakevim/fakevimplugin.cpp +++ b/src/plugins/fakevim/fakevimplugin.cpp @@ -683,6 +683,8 @@ public: } }; +const FakeVimExCommandsPage exCommandPage; + /////////////////////////////////////////////////////////////////////// // // FakeVimUserCommandsPage @@ -752,11 +754,10 @@ public: class FakeVimUserCommandsPageWidget : public IOptionsPageWidget { public: - FakeVimUserCommandsPageWidget(FakeVimUserCommandsModel *model) - : m_model(model) + FakeVimUserCommandsPageWidget() { auto widget = new QTreeView; - widget->setModel(m_model); + widget->setModel(&m_model); widget->resizeColumnToContents(0); auto delegate = new FakeVimUserCommandsDelegate(widget); @@ -771,7 +772,7 @@ private: void apply() final { // now save the mappings if necessary - const UserCommandMap ¤t = m_model->commandMap(); + const UserCommandMap ¤t = m_model.commandMap(); UserCommandMap &userMap = dd->m_userCommandMap; if (current != userMap) { @@ -800,7 +801,7 @@ private: } } - FakeVimUserCommandsModel *m_model; + FakeVimUserCommandsModel m_model; }; class FakeVimUserCommandsPage : public IOptionsPage @@ -811,13 +812,11 @@ public: setId(SETTINGS_USER_CMDS_ID); setDisplayName(Tr::tr("User Command Mapping")); setCategory(SETTINGS_CATEGORY); - setWidgetCreator([this] { return new FakeVimUserCommandsPageWidget(&m_model); }); + setWidgetCreator([this] { return new FakeVimUserCommandsPageWidget; }); } - -private: - FakeVimUserCommandsModel m_model; }; +const FakeVimUserCommandsPage userCommandsPage; /////////////////////////////////////////////////////////////////////// // @@ -978,10 +977,6 @@ IAssistProcessor *FakeVimCompletionAssistProvider::createProcessor(const AssistI class FakeVimPluginRunData { public: - FakeVimSettings settings; - FakeVimExCommandsPage exCommandsPage; - FakeVimUserCommandsPage userCommandsPage; - FakeVimCompletionAssistProvider wordProvider; }; |