X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfind.cpp;h=00bc9d51def3f9f1de0699839ef86cdf9979c61a;hb=03ec50ac4d06ef2b000d87a175d7a149c9abb2bf;hp=1a214589fb8de38061300f0d832f2e1aa225afc9;hpb=02e8322c793ed70371abd027b85facdf235ad8d2;p=lyx.git diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp index 1a214589fb..00bc9d51de 100644 --- a/src/lyxfind.cpp +++ b/src/lyxfind.cpp @@ -22,9 +22,7 @@ #include "buffer_funcs.h" #include "BufferView.h" #include "Changes.h" -#include "support/debug.h" #include "FuncRequest.h" -#include "support/gettext.h" #include "Text.h" #include "Paragraph.h" #include "ParIterator.h" @@ -32,7 +30,9 @@ #include "frontends/alert.h" #include "support/convert.h" +#include "support/debug.h" #include "support/docstream.h" +#include "support/gettext.h" #include "support/lstrings.h" using namespace std; @@ -148,19 +148,19 @@ int replaceAll(BufferView * bv, if (!searchAllowed(bv, searchstr) || buf.isReadonly()) return 0; - bv->cursor().recordUndoFullDocument(); - MatchString const match(searchstr, cs, mw); int num = 0; int const rsize = replacestr.size(); int const ssize = searchstr.size(); - DocIterator cur = doc_iterator_begin(buf.inset()); + Cursor cur(*bv); + cur.setCursor(doc_iterator_begin(buf.inset())); while (findForward(cur, match, false)) { pos_type pos = cur.pos(); Font const font = cur.paragraph().getFontSettings(buf.params(), pos); + cur.recordUndo(); int striked = ssize - cur.paragraph().eraseChars(pos, pos + ssize, buf.params().trackChanges); cur.paragraph().insert(pos, replacestr, font, @@ -307,11 +307,9 @@ void replace(BufferView * bv, FuncRequest const & ev, bool has_deleted) } else { // if we have deleted characters, we do not replace at all, but // rather search for the next occurence - bool const found = find(bv, search, - casesensitive, matchword, forward); - - if (!found) - // emit message signal. + if (find(bv, search, casesensitive, matchword, forward)) + bv->showCursor(); + else bv->message(_("String not found!")); } }