OSDN Git Service

fakevim: update search history after <Esc> in incremental search
authorhjk <qtc-committer@nokia.com>
Mon, 28 Mar 2011 09:18:56 +0000 (11:18 +0200)
committerhjk <qtc-committer@nokia.com>
Mon, 28 Mar 2011 09:18:56 +0000 (11:18 +0200)
src/plugins/fakevim/fakevimhandler.cpp

index f51381e..824856c 100644 (file)
@@ -510,21 +510,25 @@ class History
 {
 public:
     History() : m_index(0) {}
-    void append(const QString &item)
-        { //qDebug() << "APP: " << item << m_items;
-            m_items.removeAll(item);
-            m_items.append(item); m_index = m_items.size() - 1;  }
+    void append(const QString &item);
     void down() { m_index = qMin(m_index + 1, m_items.size()); }
     void up() { m_index = qMax(m_index - 1, 0); }
-    //void clear() { m_items.clear(); m_index = 0; }
     void restart() { m_index = m_items.size(); }
     QString current() const { return m_items.value(m_index, QString()); }
     QStringList items() const { return m_items; }
+
 private:
     QStringList m_items;
     int m_index;
 };
 
+void History::append(const QString &item)
+{
+    if (item.isEmpty())
+        return;
+    m_items.removeAll(item);
+    m_items.append(item); m_index = m_items.size() - 1;
+}
 
 // Mappings for a specific mode.
 class ModeMapping : public QList<QPair<Inputs, Inputs> >
@@ -2945,6 +2949,7 @@ EventResult FakeVimHandler::Private::handleSearchSubSubMode(const Input &input)
 {
     if (input.isEscape()) {
         m_commandBuffer.clear();
+        g.searchHistory.append(m_searchCursor.selectedText());
         m_searchCursor = QTextCursor();
         updateSelection();
         enterCommandMode();