[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/kate
From:       Bernhard Beschow <bbeschow () cs ! tu-berlin ! de>
Date:       2009-10-31 15:43:12
Message-ID: 1257003792.760825.29813.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1043044 by beschow:

introduce "search engines" for each search mode

 M  +3 -1      CMakeLists.txt  
 M  +41 -3     document/katedocument.cpp  
 M  +1 -1      document/katedocument.h  
 A             search/kateescapedtextsearch.cpp   search/katesearch.cpp#1042882 [License: LGPL (v2)]
 A             search/kateescapedtextsearch.h   search/katesearch.h#1042882 [License: LGPL (v2)]
 A             search/kateplaintextsearch.cpp   search/katesearch.cpp#1042882 [License: LGPL (v2)]
 A             search/kateplaintextsearch.h   search/katesearch.h#1042882 [License: LGPL (v2)]
 A             search/kateregexpsearch.cpp   search/katesearch.cpp#1042882 [License: LGPL (v2)]
 A             search/kateregexpsearch.h   search/katesearch.h#1042882 [License: LGPL (v2)]
 D             search/katesearch.cpp  
 D             search/katesearch.h  
 M  +1 -2      search/katesearchbar.cpp  
 M  +1 -1      search/katesearchbar.h  


--- trunk/KDE/kdelibs/kate/CMakeLists.txt #1043043:1043044
@@ -91,7 +91,9 @@
 
 # search stuff
 search/kateregexp.cpp
-search/katesearch.cpp
+search/kateplaintextsearch.cpp
+search/kateescapedtextsearch.cpp
+search/kateregexpsearch.cpp
 search/katesearchbar.cpp
 
 # smart stuff (cursors, ranges, ...)
--- trunk/KDE/kdelibs/kate/document/katedocument.cpp #1043043:1043044
@@ -34,7 +34,10 @@
 #include "kateprinter.h"
 #include "katesmartcursor.h"
 #include "katerenderer.h"
-#include "katesearch.h"
+#include "kateregexp.h"
+#include "kateplaintextsearch.h"
+#include "kateescapedtextsearch.h"
+#include "kateregexpsearch.h"
 #include <ktexteditor/attribute.h>
 #include "kateconfig.h"
 #include "katemodemanager.h"
@@ -1530,14 +1533,49 @@
     const QString & pattern,
     const KTextEditor::Search::SearchOptions options)
 {
-  return KateSearch(this).searchText(range, pattern, options);
+  // TODO
+  // * support BlockInputRange
+  // * support DotMatchesNewline
+
+  const bool escapeSequences =  options.testFlag(KTextEditor::Search::EscapeSequences);
+  const bool regexMode       =  options.testFlag(KTextEditor::Search::Regex);
+  const bool caseSensitive   = !options.testFlag(KTextEditor::Search::CaseInsensitive);
+  const bool backwards       =  options.testFlag(KTextEditor::Search::Backwards);
+  const bool wholeWords      =  options.testFlag(KTextEditor::Search::WholeWords);
+
+  if (regexMode)
+  {
+    // regexp search
+    // escape sequences are supported by definition
+    KateRegExpSearch searcher(this, caseSensitive);
+    return searcher.search(range, pattern, backwards);
+  }
+
+  if (escapeSequences)
+  {
+    // escaped search
+    KateEscapedTextSearch searcher(this, caseSensitive, wholeWords);
+    return searcher.search(range, pattern, backwards);
+  }
+
+  // plaintext search
+  KatePlainTextSearch searcher(this, caseSensitive, wholeWords);
+  return searcher.search(range, pattern, backwards);
 }
 
 
 
 KTextEditor::Search::SearchOptions KateDocument::supportedSearchOptions() const
 {
-  return KateSearch::supportedSearchOptions();
+  KTextEditor::Search::SearchOptions supported(KTextEditor::Search::Default);
+  supported |= KTextEditor::Search::Regex;
+  supported |= KTextEditor::Search::CaseInsensitive;
+  supported |= KTextEditor::Search::Backwards;
+// supported |= KTextEditor::Search::BlockInputRange;
+  supported |= KTextEditor::Search::EscapeSequences;
+  supported |= KTextEditor::Search::WholeWords;
+// supported |= KTextEditor::Search::DotMatchesNewline;
+  return supported;
 }
 //END
 
--- trunk/KDE/kdelibs/kate/document/katedocument.h #1043043:1043044
@@ -328,7 +328,7 @@
   //
   // KTextEditor::SearchInterface stuff
   //
-  public Q_SLOTS:
+  public:
     QVector<KTextEditor::Range> searchText(
         const KTextEditor::Range & range,
         const QString & pattern,
--- trunk/KDE/kdelibs/kate/search/katesearchbar.cpp #1043043:1043044
@@ -489,9 +489,8 @@
     if (usePlaceholders) {
         // Resolve references and escape sequences
         QList<ReplacementPart> parts;
-        QString writableHack(replacement);
         const bool REPLACEMENT_GOODIES = true;
-        KateSearch::escapePlaintext(writableHack, &parts, REPLACEMENT_GOODIES);
+        KateEscapedTextSearch::escapePlaintext(replacement, &parts, REPLACEMENT_GOODIES);
         buildReplacement(finalReplacement, parts, match, replacementCounter);
     } else {
         // Plain text replacement
--- trunk/KDE/kdelibs/kate/search/katesearchbar.h #1043043:1043044
@@ -23,7 +23,7 @@
 #include "katesmartrange.h"
 #include "katedocument.h"
 #include "katehistorymodel.h"
-#include "katesearch.h"
+#include "kateescapedtextsearch.h"
 
 #include <kcolorscheme.h>
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic