diff options
author | hjk <hjk121@nokiamail.com> | 2013-03-08 17:50:16 +0100 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2013-03-08 17:53:14 +0100 |
commit | d44bac6f430fc9d6d545d101e722b9dda443482d (patch) | |
tree | 5927271e8457af3b27f94c6532b3ed50bd45d253 /src/plugins/fakevim/fakevimactions.cpp | |
parent | e1f08408203c447ed830d488eefc9ba9b21423eb (diff) |
FakeVim: Make plugin standalone if necessary
It's possible to use FakeVim as standalone plugin for a QTextEdit or
QPlainTextEdit widget, so there should be minimum dependencies on
Qt Creator code.
Change-Id: I415ed87f5e4d97ea78d9d25a8f0c82701ef1f70d
Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'src/plugins/fakevim/fakevimactions.cpp')
-rw-r--r-- | src/plugins/fakevim/fakevimactions.cpp | 234 |
1 files changed, 82 insertions, 152 deletions
diff --git a/src/plugins/fakevim/fakevimactions.cpp b/src/plugins/fakevim/fakevimactions.cpp index be8b5daa28..741147559e 100644 --- a/src/plugins/fakevim/fakevimactions.cpp +++ b/src/plugins/fakevim/fakevimactions.cpp @@ -42,7 +42,11 @@ #include <QObject> #include <QCoreApplication> +#ifdef FAKEVIM_STANDALONE +using namespace FakeVim::Internal::Utils; +#else using namespace Utils; +#endif /////////////////////////////////////////////////////////////////////// // @@ -53,6 +57,29 @@ using namespace Utils; namespace FakeVim { namespace Internal { +typedef QLatin1String _; + +#ifdef FAKEVIM_STANDALONE +namespace Utils { + +SavedAction::SavedAction(QObject *parent) + : QObject(parent) +{ +} + +void SavedAction::setValue(const QVariant &value) +{ + m_value = value; +} + +QVariant SavedAction::value() const +{ + return m_value; +} + +} // namespace Utils +#endif // FAKEVIM_STANDALONE + FakeVimSettings::FakeVimSettings() {} @@ -64,7 +91,7 @@ FakeVimSettings::~FakeVimSettings() void FakeVimSettings::insertItem(int code, SavedAction *item, const QString &longName, const QString &shortName) { - QTC_ASSERT(!m_items.contains(code), qDebug() << code << item->toString(); return); + QTC_ASSERT(!m_items.contains(code), qDebug() << code; return); m_items[code] = item; if (!longName.isEmpty()) { m_nameToCode[longName] = code; @@ -74,6 +101,7 @@ void FakeVimSettings::insertItem(int code, SavedAction *item, m_nameToCode[shortName] = code; } +#ifndef FAKEVIM_STANDALONE void FakeVimSettings::readSettings(QSettings *settings) { foreach (SavedAction *item, m_items) @@ -85,6 +113,7 @@ void FakeVimSettings::writeSettings(QSettings *settings) foreach (SavedAction *item, m_items) item->writeSettings(settings); } +#endif // FAKEVIM_STANDALONE SavedAction *FakeVimSettings::item(int code) { @@ -114,162 +143,63 @@ QString FakeVimSettings::trySetValue(const QString &name, const QString &value) return QString(); } -FakeVimSettings *theFakeVimSettings() +SavedAction *createAction(FakeVimSettings *instance, int code, const QVariant &value, + const QString &settingsKey = QString(), + const QString &shortKey = QString()) { - static FakeVimSettings *instance = 0; - if (instance) - return instance; - - instance = new FakeVimSettings; - - typedef QLatin1String _; - SavedAction *item = 0; + SavedAction *item = new SavedAction(instance); + item->setValue(value); +#ifndef FAKEVIM_STANDALONE + item->setSettingsKey(_("FakeVim"), settingsKey); + item->setDefaultValue(value); + item->setCheckable( value.canConvert<bool>() ); +#endif + instance->insertItem(code, item, settingsKey.toLower(), shortKey); + return item; +} - const QString group = _("FakeVim"); - item = new SavedAction(instance); - item->setText(QCoreApplication::translate("FakeVim::Internal", +FakeVimSettings *theFakeVimSettings() +{ + static FakeVimSettings *s = 0; + if (s) + return s; + + s = new FakeVimSettings; + + // Specific FakeVim settings + createAction(s, ConfigUseFakeVim, true, _("UseFakeVim")); + createAction(s, ConfigReadVimRc, false, _("ReadVimRc")); + createAction(s, ConfigVimRcPath, QString(), _("VimRcPath")); +#ifndef FAKEVIM_STANDALONE + s->item(ConfigUseFakeVim)->setText(QCoreApplication::translate("FakeVim::Internal", "Use Vim-style Editing")); - item->setSettingsKey(group, _("UseFakeVim")); - item->setCheckable(true); - item->setValue(false); - instance->insertItem(ConfigUseFakeVim, item); - - item = new SavedAction(instance); - item->setText(QCoreApplication::translate("FakeVim::Internal", + s->item(ConfigReadVimRc)->setText(QCoreApplication::translate("FakeVim::Internal", "Read .vimrc")); - item->setSettingsKey(group, _("ReadVimRc")); - item->setCheckable(true); - item->setValue(false); - instance->insertItem(ConfigReadVimRc, item); - - item = new SavedAction(instance); - item->setText(QCoreApplication::translate("FakeVim::Internal", + s->item(ConfigVimRcPath)->setText(QCoreApplication::translate("FakeVim::Internal", "Path to .vimrc")); - item->setDefaultValue(QString()); - item->setSettingsKey(group, _("VimRcPath")); - instance->insertItem(ConfigVimRcPath, item); - - item = new SavedAction(instance); - item->setValue(true); - item->setDefaultValue(true); - item->setSettingsKey(group, _("StartOfLine")); - item->setCheckable(true); - instance->insertItem(ConfigStartOfLine, item, _("startofline"), _("sol")); - - item = new SavedAction(instance); - item->setDefaultValue(8); - item->setSettingsKey(group, _("TabStop")); - instance->insertItem(ConfigTabStop, item, _("tabstop"), _("ts")); - - item = new SavedAction(instance); - item->setDefaultValue(false); - item->setValue(false); - item->setSettingsKey(group, _("SmartTab")); - instance->insertItem(ConfigSmartTab, item, _("smarttab"), _("sta")); - - item = new SavedAction(instance); - item->setDefaultValue(true); - item->setValue(true); - item->setSettingsKey(group, _("HlSearch")); - item->setCheckable(true); - instance->insertItem(ConfigHlSearch, item, _("hlsearch"), _("hls")); - - item = new SavedAction(instance); - item->setDefaultValue(8); - item->setSettingsKey(group, _("ShiftWidth")); - instance->insertItem(ConfigShiftWidth, item, _("shiftwidth"), _("sw")); - - item = new SavedAction(instance); - item->setDefaultValue(false); - item->setValue(false); - item->setSettingsKey(group, _("ExpandTab")); - item->setCheckable(true); - instance->insertItem(ConfigExpandTab, item, _("expandtab"), _("et")); - - item = new SavedAction(instance); - item->setDefaultValue(false); - item->setValue(false); - item->setSettingsKey(group, _("AutoIndent")); - item->setValue(false); - item->setCheckable(true); - instance->insertItem(ConfigAutoIndent, item, _("autoindent"), _("ai")); - - item = new SavedAction(instance); - item->setDefaultValue(false); - item->setValue(false); - item->setSettingsKey(group, _("SmartIndent")); - item->setValue(false); - item->setCheckable(true); - instance->insertItem(ConfigSmartIndent, item, _("smartindent"), _("si")); - - item = new SavedAction(instance); - item->setDefaultValue(true); - item->setValue(true); - item->setSettingsKey(group, _("IncSearch")); - item->setCheckable(true); - instance->insertItem(ConfigIncSearch, item, _("incsearch"), _("is")); - - item = new SavedAction(instance); - item->setDefaultValue(false); - item->setValue(false); - item->setSettingsKey(group, _("UseCoreSearch")); item->setCheckable(true); - instance->insertItem(ConfigUseCoreSearch, item, - _("usecoresearch"), _("ucs")); - - item = new SavedAction(instance); - item->setDefaultValue(false); - item->setValue(false); - item->setSettingsKey(group, _("SmartCase")); item->setCheckable(true); - item->setCheckable(true); - instance->insertItem(ConfigSmartCase, item, _("smartcase"), _("scs")); - - item = new SavedAction(instance); - item->setDefaultValue(true); - item->setValue(true); - item->setSettingsKey(group, _("WrapScan")); item->setCheckable(true); - item->setCheckable(true); - instance->insertItem(ConfigWrapScan, item, _("wrapscan"), _("ws")); - - item = new SavedAction(instance); - item->setDefaultValue(_("indent,eol,start")); - item->setSettingsKey(group, _("Backspace")); - instance->insertItem(ConfigBackspace, item, _("backspace"), _("bs")); - - item = new SavedAction(instance); - item->setDefaultValue(_("@,48-57,_,192-255,a-z,A-Z")); - item->setSettingsKey(group, _("IsKeyword")); - instance->insertItem(ConfigIsKeyword, item, _("iskeyword"), _("isk")); - - // Invented here. - item = new SavedAction(instance); - item->setDefaultValue(false); - item->setValue(false); - item->setSettingsKey(group, _("ShowMarks")); - item->setCheckable(true); - instance->insertItem(ConfigShowMarks, item, _("showmarks"), _("sm")); - - item = new SavedAction(instance); - item->setDefaultValue(false); - item->setValue(false); - item->setSettingsKey(group, _("PassControlKey")); - item->setCheckable(true); - instance->insertItem(ConfigPassControlKey, item, _("passcontrolkey"), _("pck")); - - item = new SavedAction(instance); - item->setDefaultValue(QString()); - item->setValue(QString()); - item->setSettingsKey(group, _("Clipboard")); - item->setCheckable(true); - instance->insertItem(ConfigClipboard, item, _("clipboard"), _("cb")); - - item = new SavedAction(instance); - item->setDefaultValue(true); - item->setValue(true); - item->setSettingsKey(group, _("ShowCmd")); item->setCheckable(true); - item->setCheckable(true); - instance->insertItem(ConfigShowCmd, item, _("showcmd"), _("sc")); - - return instance; +#endif + createAction(s, ConfigShowMarks, false, _("ShowMarks"), _("sm")); + createAction(s, ConfigPassControlKey, false, _("PassControlKey"), _("pck")); + + // Emulated Vim setting + createAction(s, ConfigStartOfLine, true, _("StartOfLine"), _("sol")); + createAction(s, ConfigTabStop, 8, _("TabStop"), _("ts")); + createAction(s, ConfigSmartTab, false, _("SmartTab"), _("sta")); + createAction(s, ConfigHlSearch, true, _("HlSearch"), _("hls")); + createAction(s, ConfigShiftWidth, 8, _("ShiftWidth"), _("sw")); + createAction(s, ConfigExpandTab, false, _("ExpandTab"), _("et")); + createAction(s, ConfigAutoIndent, false, _("AutoIndent"), _("ai")); + createAction(s, ConfigSmartIndent, false, _("SmartIndent"), _("si")); + createAction(s, ConfigIncSearch, true, _("IncSearch"), _("is")); + createAction(s, ConfigUseCoreSearch, false, _("UseCoreSearch"), _("ucs")); + createAction(s, ConfigSmartCase, false, _("SmartCase"), _("scs")); + createAction(s, ConfigWrapScan, true, _("WrapScan"), _("ws")); + createAction(s, ConfigShowCmd, true, _("ShowCmd"), _("sc")); + createAction(s, ConfigBackspace, _("indent,eol,start"), _("ConfigBackspace"), _("bs")); + createAction(s, ConfigIsKeyword, _("@,48-57,_,192-255,a-z,A-Z"), _("IsKeyword"), _("isk")); + createAction(s, ConfigClipboard, QString(), _("Clipboard"), _("cb")); + + return s; } SavedAction *theFakeVimSetting(int code) |