FakeVim: Use new IOptionsPage convenience functions

Change-Id: I739fe152a4f642a19c90be71bbe5adbc8747f402
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2021-03-25 16:58:33 +01:00
parent adad221aa2
commit 19d078bb5c

View File

@@ -371,115 +371,93 @@ public:
setCategory(SETTINGS_CATEGORY); setCategory(SETTINGS_CATEGORY);
setDisplayCategory(Tr::tr("FakeVim")); setDisplayCategory(Tr::tr("FakeVim"));
setCategoryIconPath(":/fakevim/images/settingscategory_fakevim.png"); setCategoryIconPath(":/fakevim/images/settingscategory_fakevim.png");
setLayouter([this](QWidget *widget) { return layoutPage(widget); });
setSettings(fakeVimSettings());
} }
QWidget *widget() override;
void apply() override;
void finish() override;
private: private:
void layoutPage(QWidget *);
void copyTextEditorSettings(); void copyTextEditorSettings();
void setQtStyle(); void setQtStyle();
void setPlainStyle(); void setPlainStyle();
void updateVimRcWidgets(); void updateVimRcWidgets();
QPointer<QWidget> m_widget;
}; };
QWidget *FakeVimOptionPage::widget() void FakeVimOptionPage::layoutPage(QWidget *widget)
{ {
if (!m_widget) { auto copyTextEditorSettings = new QPushButton(Tr::tr("Copy Text Editor Settings"));
m_widget = new QWidget; auto setQtStyle = new QPushButton(Tr::tr("Set Qt Style"));
auto setPlainStyle = new QPushButton(Tr::tr("Set Plain Style"));
auto copyTextEditorSettings = new QPushButton(tr("Copy Text Editor Settings")); using namespace Layouting;
auto setQtStyle = new QPushButton(tr("Set Qt Style")); FakeVimSettings &s = *fakeVimSettings();
auto setPlainStyle = new QPushButton(tr("Set Plain Style"));
using namespace Layouting;
FakeVimSettings &s = *fakeVimSettings();
Row bools {
Column {
s.autoIndent,
s.smartIndent,
s.expandTab,
s.smartTab,
s.hlSearch,
s.showCmd,
s.startOfLine,
s.passKeys,
s.blinkingCursor
},
Column {
s.incSearch,
s.useCoreSearch,
s.ignoreCase,
s.smartCase,
s.wrapScan,
s.showMarks,
s.passControlKey,
s.relativeNumber,
s.tildeOp
}
};
Row ints { s.shiftWidth, s.tabStop, s.scrollOff, Stretch() };
Column strings {
s.backspace,
s.isKeyword,
Row {s.readVimRc, s.vimRcPath}
};
Row bools {
Column { Column {
s.useFakeVim, s.autoIndent,
s.smartIndent,
s.expandTab,
s.smartTab,
s.hlSearch,
s.showCmd,
s.startOfLine,
s.passKeys,
s.blinkingCursor
},
Column {
s.incSearch,
s.useCoreSearch,
s.ignoreCase,
s.smartCase,
s.wrapScan,
s.showMarks,
s.passControlKey,
s.relativeNumber,
s.tildeOp
}
};
Group { Row ints { s.shiftWidth, s.tabStop, s.scrollOff, Stretch() };
Title(tr("Vim Behavior")),
bools,
ints,
strings
},
Group { Column strings {
Title(tr("Plugin Emulation")), s.backspace,
s.emulateVimCommentary, s.isKeyword,
s.emulateReplaceWithRegister, Row {s.readVimRc, s.vimRcPath}
s.emulateArgTextObj, };
s.emulateExchange,
s.emulateSurround
},
Row { copyTextEditorSettings, setQtStyle, setPlainStyle, Stretch() }, Column {
Stretch() s.useFakeVim,
}.attachTo(m_widget, true); Group {
Title(Tr::tr("Vim Behavior")),
bools,
ints,
strings
},
connect(copyTextEditorSettings, &QAbstractButton::clicked, Group {
this, &FakeVimOptionPage::copyTextEditorSettings); Title(Tr::tr("Plugin Emulation")),
connect(setQtStyle, &QAbstractButton::clicked, s.emulateVimCommentary,
this, &FakeVimOptionPage::setQtStyle); s.emulateReplaceWithRegister,
connect(setPlainStyle, &QAbstractButton::clicked, s.emulateArgTextObj,
this, &FakeVimOptionPage::setPlainStyle); s.emulateExchange,
connect(&s.readVimRc, &FvBaseAspect::changed, s.emulateSurround
this, &FakeVimOptionPage::updateVimRcWidgets); },
updateVimRcWidgets();
}
return m_widget;
}
void FakeVimOptionPage::apply() Row { copyTextEditorSettings, setQtStyle, setPlainStyle, Stretch() },
{ Stretch()
FakeVimSettings &s = *fakeVimSettings();
s.apply();
s.writeSettings(ICore::settings());
}
void FakeVimOptionPage::finish() }.attachTo(widget, true);
{
FakeVimSettings &s = *fakeVimSettings(); connect(copyTextEditorSettings, &QAbstractButton::clicked,
s.cancel(); this, &FakeVimOptionPage::copyTextEditorSettings);
delete m_widget; connect(setQtStyle, &QAbstractButton::clicked,
this, &FakeVimOptionPage::setQtStyle);
connect(setPlainStyle, &QAbstractButton::clicked,
this, &FakeVimOptionPage::setPlainStyle);
connect(&s.readVimRc, &FvBaseAspect::changed,
this, &FakeVimOptionPage::updateVimRcWidgets);
updateVimRcWidgets();
} }
void FakeVimOptionPage::copyTextEditorSettings() void FakeVimOptionPage::copyTextEditorSettings()