forked from qt-creator/qt-creator
FakeVim: Delay settings creation until actual use
Task-number: QTCREATORBUG-29167 Change-Id: I3a6f1330922f3840cb7e99d8adb60a728d36eb4b Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
@@ -45,29 +45,15 @@ void setAutoApply(bool ) {}
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static FakeVimSettings *s_settings;
|
|
||||||
|
|
||||||
FakeVimSettings &settings()
|
FakeVimSettings &settings()
|
||||||
{
|
{
|
||||||
return *s_settings;
|
static FakeVimSettings theSettings;
|
||||||
|
return theSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
FakeVimSettings::FakeVimSettings()
|
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"));
|
setup(&useFakeVim, false, "UseFakeVim", {}, Tr::tr("Use FakeVim"));
|
||||||
#endif
|
|
||||||
|
|
||||||
// Specific FakeVim settings
|
// Specific FakeVim settings
|
||||||
setup(&readVimRc, false, "ReadVimRc", {}, Tr::tr("Read .vimrc from location:"));
|
setup(&readVimRc, false, "ReadVimRc", {}, Tr::tr("Read .vimrc from location:"));
|
||||||
@@ -303,4 +289,27 @@ void FakeVimSettings::setup(FvBaseAspect *aspect,
|
|||||||
m_nameToAspect[shortName] = 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
|
} // FakeVim::Internal
|
||||||
|
@@ -28,10 +28,10 @@ public:
|
|||||||
FvBaseAspect() = default;
|
FvBaseAspect() = default;
|
||||||
virtual ~FvBaseAspect() = default;
|
virtual ~FvBaseAspect() = default;
|
||||||
|
|
||||||
virtual void setVariantValue(const QVariant &value) = 0;
|
virtual void setVariantValue(const QVariant &) {}
|
||||||
virtual void setDefaultVariantValue(const QVariant &value) = 0;
|
virtual void setDefaultVariantValue(const QVariant &) {}
|
||||||
virtual QVariant variantValue() const = 0;
|
virtual QVariant variantValue() const { return {}; }
|
||||||
virtual QVariant defaultVariantValue() const = 0;
|
virtual QVariant defaultVariantValue() const { return {}; }
|
||||||
|
|
||||||
void setSettingsKey(const QString &group, const QString &key);
|
void setSettingsKey(const QString &group, const QString &key);
|
||||||
QString settingsKey() const;
|
QString settingsKey() const;
|
||||||
@@ -84,7 +84,7 @@ public:
|
|||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
using FvAspectContainer = Core::PagedSettings;
|
using FvAspectContainer = Utils::AspectContainer;
|
||||||
using FvBaseAspect = Utils::BaseAspect;
|
using FvBaseAspect = Utils::BaseAspect;
|
||||||
using FvBoolAspect = Utils::BoolAspect;
|
using FvBoolAspect = Utils::BoolAspect;
|
||||||
using FvIntegerAspect = Utils::IntegerAspect;
|
using FvIntegerAspect = Utils::IntegerAspect;
|
||||||
|
@@ -683,6 +683,8 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const FakeVimExCommandsPage exCommandPage;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// FakeVimUserCommandsPage
|
// FakeVimUserCommandsPage
|
||||||
@@ -752,11 +754,10 @@ public:
|
|||||||
class FakeVimUserCommandsPageWidget : public IOptionsPageWidget
|
class FakeVimUserCommandsPageWidget : public IOptionsPageWidget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FakeVimUserCommandsPageWidget(FakeVimUserCommandsModel *model)
|
FakeVimUserCommandsPageWidget()
|
||||||
: m_model(model)
|
|
||||||
{
|
{
|
||||||
auto widget = new QTreeView;
|
auto widget = new QTreeView;
|
||||||
widget->setModel(m_model);
|
widget->setModel(&m_model);
|
||||||
widget->resizeColumnToContents(0);
|
widget->resizeColumnToContents(0);
|
||||||
|
|
||||||
auto delegate = new FakeVimUserCommandsDelegate(widget);
|
auto delegate = new FakeVimUserCommandsDelegate(widget);
|
||||||
@@ -771,7 +772,7 @@ private:
|
|||||||
void apply() final
|
void apply() final
|
||||||
{
|
{
|
||||||
// now save the mappings if necessary
|
// now save the mappings if necessary
|
||||||
const UserCommandMap ¤t = m_model->commandMap();
|
const UserCommandMap ¤t = m_model.commandMap();
|
||||||
UserCommandMap &userMap = dd->m_userCommandMap;
|
UserCommandMap &userMap = dd->m_userCommandMap;
|
||||||
|
|
||||||
if (current != userMap) {
|
if (current != userMap) {
|
||||||
@@ -800,7 +801,7 @@ private:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FakeVimUserCommandsModel *m_model;
|
FakeVimUserCommandsModel m_model;
|
||||||
};
|
};
|
||||||
|
|
||||||
class FakeVimUserCommandsPage : public IOptionsPage
|
class FakeVimUserCommandsPage : public IOptionsPage
|
||||||
@@ -811,13 +812,11 @@ public:
|
|||||||
setId(SETTINGS_USER_CMDS_ID);
|
setId(SETTINGS_USER_CMDS_ID);
|
||||||
setDisplayName(Tr::tr("User Command Mapping"));
|
setDisplayName(Tr::tr("User Command Mapping"));
|
||||||
setCategory(SETTINGS_CATEGORY);
|
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
|
class FakeVimPluginRunData
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FakeVimSettings settings;
|
|
||||||
FakeVimExCommandsPage exCommandsPage;
|
|
||||||
FakeVimUserCommandsPage userCommandsPage;
|
|
||||||
|
|
||||||
FakeVimCompletionAssistProvider wordProvider;
|
FakeVimCompletionAssistProvider wordProvider;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user