From e346c0d72574db9dc881a4ab658d77936e8108a9 Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Mon, 30 Mar 2009 14:46:33 +0200
Subject: [PATCH] fakevim: move settings/action related code to files of their
 own

---
 src/plugins/fakevim/fakevim.pro        |   2 +
 src/plugins/fakevim/fakevimactions.cpp | 169 +++++++++++++++++++++++++
 src/plugins/fakevim/fakevimactions.h   |  91 +++++++++++++
 src/plugins/fakevim/fakevimhandler.cpp | 120 ------------------
 src/plugins/fakevim/fakevimhandler.h   |  56 +-------
 5 files changed, 263 insertions(+), 175 deletions(-)
 create mode 100644 src/plugins/fakevim/fakevimactions.cpp
 create mode 100644 src/plugins/fakevim/fakevimactions.h

diff --git a/src/plugins/fakevim/fakevim.pro b/src/plugins/fakevim/fakevim.pro
index 1f7693b7e03..10a89dfeae0 100644
--- a/src/plugins/fakevim/fakevim.pro
+++ b/src/plugins/fakevim/fakevim.pro
@@ -14,10 +14,12 @@ include(../../shared/indenter/indenter.pri)
 QT += gui
 
 SOURCES += \
+    fakevimactions.cpp \
     fakevimhandler.cpp \
     fakevimplugin.cpp
 
 HEADERS += \
+    fakevimactions.h \
     fakevimhandler.h \
     fakevimplugin.h
 
diff --git a/src/plugins/fakevim/fakevimactions.cpp b/src/plugins/fakevim/fakevimactions.cpp
new file mode 100644
index 00000000000..70480646392
--- /dev/null
+++ b/src/plugins/fakevim/fakevimactions.cpp
@@ -0,0 +1,169 @@
+/**************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact:  Qt Software Information (qt-info@nokia.com)
+**
+** Commercial Usage
+**
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+**
+**************************************************************************/
+
+#include "fakevimactions.h"
+
+// Please do not add any direct dependencies to other Qt Creator code  here. 
+// Instead emit signals and let the FakeVimPlugin channel the information to
+// Qt Creator. The idea is to keep this file here in a "clean" state that
+// allows easy reuse with any QTextEdit or QPlainTextEdit derived class.
+
+
+#include <utils/qtcassert.h>
+
+#include <QtCore/QDebug>
+#include <QtCore/QFile>
+#include <QtCore/QObject>
+#include <QtCore/QPointer>
+#include <QtCore/QProcess>
+#include <QtCore/QRegExp>
+#include <QtCore/QTextStream>
+#include <QtCore/QtAlgorithms>
+#include <QtCore/QStack>
+
+using namespace Core::Utils;
+
+///////////////////////////////////////////////////////////////////////
+//
+// FakeVimSettings
+//
+///////////////////////////////////////////////////////////////////////
+
+namespace FakeVim {
+namespace Internal {
+
+FakeVimSettings::FakeVimSettings()
+{}
+
+FakeVimSettings::~FakeVimSettings()
+{
+    qDeleteAll(m_items);
+}
+    
+void FakeVimSettings::insertItem(int code, SavedAction *item,
+    const QString &longName, const QString &shortName)
+{
+    QTC_ASSERT(!m_items.contains(code), qDebug() << code << item->toString(); return);
+    m_items[code] = item;
+    if (!longName.isEmpty()) {
+        m_nameToCode[longName] = code;
+        m_codeToName[code] = longName;
+    }
+    if (!shortName.isEmpty()) {
+        m_nameToCode[shortName] = code;
+    }
+}
+
+void FakeVimSettings::readSettings(QSettings *settings)
+{
+    foreach (SavedAction *item, m_items)
+        item->readSettings(settings);
+}
+
+void FakeVimSettings::writeSettings(QSettings *settings)
+{
+    foreach (SavedAction *item, m_items)
+        item->writeSettings(settings);
+}
+   
+SavedAction *FakeVimSettings::item(int code)
+{
+    QTC_ASSERT(m_items.value(code, 0), qDebug() << "CODE: " << code; return 0);
+    return m_items.value(code, 0);
+}
+
+FakeVimSettings *theFakeVimSettings()
+{
+    static FakeVimSettings *instance = 0;
+    if (instance)
+        return instance;
+
+    instance = new FakeVimSettings;
+
+    SavedAction *item = 0;
+
+    item = new SavedAction(instance);
+    item->setText(QObject::tr("Use vim-style editing"));
+    item->setSettingsKey("FakeVim", "UseFakeVim");
+    instance->insertItem(ConfigUseFakeVim, item);
+
+    item = new SavedAction(instance);
+    item->setDefaultValue(false);
+    item->setSettingsKey("FakeVim", "StartOfLine");
+    instance->insertItem(ConfigStartOfLine, item, "startofline", "sol");
+
+    item = new SavedAction(instance);
+    item->setDefaultValue(8);
+    item->setSettingsKey("FakeVim", "TabStop");
+    instance->insertItem(ConfigTabStop, item, "tabstop", "ts");
+
+    item = new SavedAction(instance);
+    item->setDefaultValue(false);
+    item->setSettingsKey("FakeVim", "SmartTab");
+    instance->insertItem(ConfigSmartTab, item, "smarttab", "sta");
+
+    item = new SavedAction(instance);
+    item->setDefaultValue(true);
+    item->setSettingsKey("FakeVim", "HlSearch");
+    instance->insertItem(ConfigHlSearch, item, "hlsearch", "hls");
+
+    item = new SavedAction(instance);
+    item->setDefaultValue(8);
+    item->setSettingsKey("FakeVim", "ShiftWidth");
+    instance->insertItem(ConfigShiftWidth, item, "shiftwidth", "sw");
+
+    item = new SavedAction(instance);
+    item->setDefaultValue(false);
+    item->setSettingsKey("FakeVim", "ExpandTab");
+    instance->insertItem(ConfigExpandTab, item, "expandtab", "et");
+
+    item = new SavedAction(instance);
+    item->setDefaultValue(false);
+    item->setSettingsKey("FakeVim", "AutoIndent");
+    instance->insertItem(ConfigAutoIndent, item, "autoindent", "ai");
+
+    item = new SavedAction(instance);
+    item->setDefaultValue("indent,eol,start");
+    item->setSettingsKey("FakeVim", "Backspace");
+    instance->insertItem(ConfigBackspace, item, "backspace", "bs");
+
+    item = new SavedAction(instance);
+    item->setText(QObject::tr("FakeVim properties..."));
+    instance->insertItem(SettingsDialog, item);
+
+    return instance;
+}
+
+SavedAction *theFakeVimSetting(int code)
+{
+    return theFakeVimSettings()->item(code);
+}
+
+} // namespace Internal
+} // namespace FakeVim
diff --git a/src/plugins/fakevim/fakevimactions.h b/src/plugins/fakevim/fakevimactions.h
new file mode 100644
index 00000000000..064cb9f2e5d
--- /dev/null
+++ b/src/plugins/fakevim/fakevimactions.h
@@ -0,0 +1,91 @@
+/**************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact:  Qt Software Information (qt-info@nokia.com)
+**
+** Commercial Usage
+**
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+**
+**************************************************************************/
+
+#ifndef FAKEVIM_ACTIONS_H
+#define FAKEVIM_ACTIONS_H
+
+#include <utils/savedaction.h>
+
+#include <QtCore/QHash>
+#include <QtCore/QObject>
+#include <QtCore/QString>
+
+namespace FakeVim {
+namespace Internal {
+
+enum FakeVimSettingsCode
+{
+    ConfigUseFakeVim,
+    ConfigStartOfLine,
+    ConfigHlSearch,
+    ConfigTabStop,
+    ConfigSmartTab,
+    ConfigShiftWidth,
+    ConfigExpandTab,
+    ConfigAutoIndent,
+
+    // indent  allow backspacing over autoindent
+    // eol     allow backspacing over line breaks (join lines)
+    // start   allow backspacing over the start of insert; CTRL-W and CTRL-U
+    //         stop once at the start of insert.
+    ConfigBackspace,
+
+    // other actions
+    SettingsDialog,
+};
+
+class FakeVimSettings : public QObject
+{
+public:
+    FakeVimSettings();
+    ~FakeVimSettings();
+    
+    void insertItem(int code, Core::Utils::SavedAction *item,
+        const QString &longname = QString(),
+        const QString &shortname = QString());
+
+    Core::Utils::SavedAction *item(int code);
+    Core::Utils::SavedAction *item(const QString &name);
+
+    void readSettings(QSettings *settings);
+    void writeSettings(QSettings *settings);
+
+public:
+    QHash<int, Core::Utils::SavedAction *> m_items; 
+    QHash<QString, int> m_nameToCode; 
+    QHash<int, QString> m_codeToName; 
+};
+
+FakeVimSettings *theFakeVimSettings();
+Core::Utils::SavedAction *theFakeVimSetting(int code);
+
+} // namespace Internal
+} // namespace FakeVim
+
+#endif // FAKEVIM_ACTTIONS_H
diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 0279a9838fb..eeace3b5505 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -87,125 +87,9 @@
 
 using namespace Core::Utils;
 
-///////////////////////////////////////////////////////////////////////
-//
-// FakeVimSettings
-//
-///////////////////////////////////////////////////////////////////////
-
 namespace FakeVim {
 namespace Internal {
 
-FakeVimSettings::FakeVimSettings(QObject *parent)
-    : QObject(parent)
-{}
-
-FakeVimSettings::~FakeVimSettings()
-{
-    qDeleteAll(m_items);
-}
-    
-void FakeVimSettings::insertItem(int code, SavedAction *item,
-    const QString &longName, const QString &shortName)
-{
-    QTC_ASSERT(!m_items.contains(code), qDebug() << code << item->toString(); return);
-    m_items[code] = item;
-    if (!longName.isEmpty()) {
-        m_nameToCode[longName] = code;
-        m_codeToName[code] = longName;
-    }
-    if (!shortName.isEmpty()) {
-        m_nameToCode[shortName] = code;
-    }
-}
-
-void FakeVimSettings::readSettings(QSettings *settings)
-{
-    foreach (SavedAction *item, m_items)
-        item->readSettings(settings);
-}
-
-void FakeVimSettings::writeSettings(QSettings *settings)
-{
-    foreach (SavedAction *item, m_items)
-        item->writeSettings(settings);
-}
-   
-SavedAction *FakeVimSettings::item(int code)
-{
-    QTC_ASSERT(m_items.value(code, 0), qDebug() << "CODE: " << code; return 0);
-    return m_items.value(code, 0);
-}
-
-FakeVimSettings *theFakeVimSettings()
-{
-    static FakeVimSettings *instance = 0;
-    if (instance)
-        return instance;
-
-    instance = new FakeVimSettings;
-
-    SavedAction *item = 0;
-
-    item = new SavedAction(instance);
-    item->setText(QObject::tr("Use vim-style editing"));
-    item->setSettingsKey("FakeVim", "UseFakeVim");
-    instance->insertItem(ConfigUseFakeVim, item);
-
-    item = new SavedAction(instance);
-    item->setDefaultValue(false);
-    item->setSettingsKey("FakeVim", "StartOfLine");
-    instance->insertItem(ConfigStartOfLine, item, "startofline", "sol");
-
-    item = new SavedAction(instance);
-    item->setDefaultValue(8);
-    item->setSettingsKey("FakeVim", "TabStop");
-    instance->insertItem(ConfigTabStop, item, "tabstop", "ts");
-
-    item = new SavedAction(instance);
-    item->setDefaultValue(false);
-    item->setSettingsKey("FakeVim", "SmartTab");
-    instance->insertItem(ConfigSmartTab, item, "smarttab", "sta");
-
-    item = new SavedAction(instance);
-    item->setDefaultValue(true);
-    item->setSettingsKey("FakeVim", "HlSearch");
-    instance->insertItem(ConfigHlSearch, item, "hlsearch", "hls");
-
-    item = new SavedAction(instance);
-    item->setDefaultValue(8);
-    item->setSettingsKey("FakeVim", "ShiftWidth");
-    instance->insertItem(ConfigShiftWidth, item, "shiftwidth", "sw");
-
-    item = new SavedAction(instance);
-    item->setDefaultValue(false);
-    item->setSettingsKey("FakeVim", "ExpandTab");
-    instance->insertItem(ConfigExpandTab, item, "expandtab", "et");
-
-    item = new SavedAction(instance);
-    item->setDefaultValue(false);
-    item->setSettingsKey("FakeVim", "AutoIndent");
-    instance->insertItem(ConfigAutoIndent, item, "autoindent", "ai");
-
-    item = new SavedAction(instance);
-    item->setDefaultValue("indent,eol,start");
-    item->setSettingsKey("FakeVim", "Backspace");
-    instance->insertItem(ConfigBackspace, item, "backspace", "bs");
-
-    item = new SavedAction(instance);
-    item->setText(QObject::tr("FakeVim properties..."));
-    instance->insertItem(SettingsDialog, item);
-
-    return instance;
-}
-
-SavedAction *theFakeVimSetting(int code)
-{
-    return theFakeVimSettings()->item(code);
-}
-
-
-
 ///////////////////////////////////////////////////////////////////////
 //
 // FakeVimHandler
@@ -1911,10 +1795,6 @@ void FakeVimHandler::Private::handleExCommand(const QString &cmd0)
     } else if (reSet.indexIn(cmd) != -1) { // :set
         QString arg = reSet.cap(2);
         if (arg.isEmpty()) {
-            //QString info;
-            //foreach (const QString &key, m_config.keys())
-            //    info += key + ": " + m_config.value(key) + "\n";
-            //emit q->extraInformationChanged(info);
             theFakeVimSetting(SettingsDialog)->trigger(QVariant());
 /*
         } else if (theFakeVimSettings()->.contains(arg)) {
diff --git a/src/plugins/fakevim/fakevimhandler.h b/src/plugins/fakevim/fakevimhandler.h
index d8373ee41aa..f2c9e0d934f 100644
--- a/src/plugins/fakevim/fakevimhandler.h
+++ b/src/plugins/fakevim/fakevimhandler.h
@@ -30,68 +30,14 @@
 #ifndef FAKEVIM_HANDLER_H
 #define FAKEVIM_HANDLER_H
 
-#include <utils/savedaction.h>
+#include "fakevimactions.h"
 
 #include <QtCore/QObject>
 #include <QtGui/QTextEdit>
 
-QT_BEGIN_NAMESPACE
-class QString;
-class QEvent;
-QT_END_NAMESPACE
-
 namespace FakeVim {
 namespace Internal {
 
-enum FakeVimSettingsCode
-{
-    ConfigUseFakeVim,
-    ConfigStartOfLine,
-    ConfigHlSearch,
-    ConfigTabStop,
-    ConfigSmartTab,
-    ConfigShiftWidth,
-    ConfigExpandTab,
-    ConfigAutoIndent,
-
-    // indent  allow backspacing over autoindent
-    // eol     allow backspacing over line breaks (join lines)
-    // start   allow backspacing over the start of insert; CTRL-W and CTRL-U
-    //         stop once at the start of insert.
-    ConfigBackspace,
-
-    // other actions
-    SettingsDialog,
-};
-
-class FakeVimSettings : public QObject
-{
-    Q_OBJECT
-
-public:
-    FakeVimSettings(QObject *parent = 0);
-    ~FakeVimSettings();
-    
-    void insertItem(int code, Core::Utils::SavedAction *item,
-        const QString &longname = QString(),
-        const QString &shortname = QString());
-
-    Core::Utils::SavedAction *item(int code);
-    Core::Utils::SavedAction *item(const QString &name);
-
-public slots:
-    void readSettings(QSettings *settings);
-    void writeSettings(QSettings *settings);
-
-public:
-    QHash<int, Core::Utils::SavedAction *> m_items; 
-    QHash<QString, int> m_nameToCode; 
-    QHash<int, QString> m_codeToName; 
-};
-
-FakeVimSettings *theFakeVimSettings();
-Core::Utils::SavedAction *theFakeVimSetting(int code);
-
 class FakeVimHandler : public QObject
 {
     Q_OBJECT
-- 
GitLab