X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fcontrollers%2FControlSearch.C;h=e7ac92f0367f05c5495c3735cb393201d99a95bd;hb=7ea7dabed1b72cc25dcbdc482ac006f2b61dacfd;hp=2928857c8521fd81107c4dc4ce446abdeb91916b;hpb=467323b2b8f9f9bbd9e853ea288a8f5ac6f886e0;p=lyx.git diff --git a/src/frontends/controllers/ControlSearch.C b/src/frontends/controllers/ControlSearch.C index 2928857c85..e7ac92f036 100644 --- a/src/frontends/controllers/ControlSearch.C +++ b/src/frontends/controllers/ControlSearch.C @@ -27,12 +27,14 @@ #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(lv, d) + : ControlDialogBD(lv, d) { d_.showSearch.connect(SigC::slot(this, &ControlSearch::show)); @@ -45,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!")); @@ -56,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!"));