]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/controllers/ControlSearch.C
to much stuff for my liking...
[lyx.git] / src / frontends / controllers / ControlSearch.C
index d20e8c8333a93f774d4763adf53fccd3136ee9e8..e7ac92f0367f05c5495c3735cb393201d99a95bd 100644 (file)
@@ -1,4 +1,3 @@
-// -*- C++ -*-
 /* This file is part of
  * ====================================================== 
  *
 #include "lyxfind.h"
 #include "debug.h"
 #include "gettext.h"
+#include "BufferView.h"
+#include "support/lstrings.h"
 
 using Liason::setMinibuffer;
 using SigC::slot;
 
 ControlSearch::ControlSearch(LyXView & lv, Dialogs & d)
-       : ControlDialog<ControlConnectBD>(lv, d)
+       : ControlDialogBD(lv, d)
 {
        d_.showSearch.connect(SigC::slot(this, &ControlSearch::show));
 
@@ -46,8 +47,8 @@ ControlSearch::ControlSearch(LyXView & lv, Dialogs & d)
 void ControlSearch::find(string const & search,
                         bool casesensitive, bool matchword, bool forward) const
 {
-       bool const found = LyXFind(lv_.view(), search, casesensitive,
-                                  matchword, forward);
+       bool const found = LyXFind(lv_.view(), search,
+                                  forward, false, casesensitive, matchword);
    
        if (!found)
                setMinibuffer(&lv_, _("String not found!"));
@@ -57,9 +58,13 @@ void ControlSearch::find(string const & search,
 void ControlSearch::replace(string const & search, string const & replace,
                            bool casesensitive, bool matchword, bool all) const
 {
+       // If not replacing all instances of the word, then do not
+       // move on to the next instance once the present instance has been
+       // changed
+       bool const once = !all;
        int const replace_count = LyXReplace(lv_.view(),
-                                            search, replace, casesensitive, 
-                                            matchword, true, all);
+                                            search, replace, true, casesensitive, 
+                                            matchword, all, once);
                                  
        if (replace_count == 0) {
                setMinibuffer(&lv_, _("String not found!"));