]> git.lyx.org Git - features.git/commitdiff
two patches for search and replace
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Mon, 10 Dec 2001 12:50:09 +0000 (12:50 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Mon, 10 Dec 2001 12:50:09 +0000 (12:50 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3177 a592a061-630c-0410-9148-cb99ea01b6c8

src/ChangeLog
src/frontends/xforms/ChangeLog
src/frontends/xforms/form_preferences.C
src/frontends/xforms/forms/form_preferences.fd
src/lyxfind.C

index c465a292527e3961aac4095507f8b38b957e32cd..9570d71a440ce1eae2d27a513a137a382ce37f88 100644 (file)
@@ -1,3 +1,7 @@
+2001-12-06  John Levon  <moz@compsoc.man.ac.uk>
+
+       * lyxfind.C: place the cursor correctly on failed search
 2001-12-09  Jean-Marc Lasgouttes  <lasgouttes@freesurf.fr>
 
        * text.C (getLengthMarkerHeight): for small heights, the arrows
index 17ec7f62628c6d3ae838026eacddefe2a72cab8b..7370ded46430d6bcfd5e75edfbf354e8741d6df8 100644 (file)
@@ -1,3 +1,8 @@
+2001-12-08  Jürgen Spitzmüller  <j.spitzmueller@gmx.de>
+
+       * forms/form_preferences.fd: use the same name for font sizes
+       than the character dialog.
+
 2001-11-26  Jürgen Spitzmüller  <j.spitzmueller@gmx.de>
 
        * forms/form_search.fd: Added label text to search buttons
index 19ccb6eacba9f1b5387f03cbf66c39820abfaa42..9048e19924feb7af0269a2e4aee1c50a041621ac 100644 (file)
@@ -149,10 +149,10 @@ FD_form_screen_fonts * FormPreferences::build_screen_fonts()
   fdui->input_tiny = obj = fl_add_input(FL_FLOAT_INPUT, 370, 20, 70, 30, _("tiny"));
     fl_set_object_lsize(obj, FL_NORMAL_SIZE);
     fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0);
-  fdui->input_script = obj = fl_add_input(FL_FLOAT_INPUT, 370, 50, 70, 30, _("script"));
+  fdui->input_script = obj = fl_add_input(FL_FLOAT_INPUT, 370, 50, 70, 30, _("smallest"));
     fl_set_object_lsize(obj, FL_NORMAL_SIZE);
     fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0);
-  fdui->input_footnote = obj = fl_add_input(FL_FLOAT_INPUT, 370, 80, 70, 30, _("footnote"));
+  fdui->input_footnote = obj = fl_add_input(FL_FLOAT_INPUT, 370, 80, 70, 30, _("smaller"));
     fl_set_object_lsize(obj, FL_NORMAL_SIZE);
     fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0);
   fdui->input_small = obj = fl_add_input(FL_FLOAT_INPUT, 370, 110, 70, 30, _("small"));
index cabb91964562d8d692b310fc42b0c85cc12e5878..7ed35c6f59073bb205ba82d74e61f680d1461833 100644 (file)
@@ -386,7 +386,7 @@ alignment: FL_ALIGN_LEFT
 style: FL_NORMAL_STYLE
 size: FL_NORMAL_SIZE
 lcol: FL_BLACK
-label: script
+label: smallest
 shortcut: 
 resize: FL_RESIZE_ALL
 gravity: FL_NoGravity FL_NoGravity
@@ -404,7 +404,7 @@ alignment: FL_ALIGN_LEFT
 style: FL_NORMAL_STYLE
 size: FL_NORMAL_SIZE
 lcol: FL_BLACK
-label: footnote
+label: smaller
 shortcut: 
 resize: FL_RESIZE_ALL
 gravity: FL_NoGravity FL_NoGravity
index 93af1df39085c8890700cecf1235c68c35ab87e0..1783959aa7323839b671a947dcdde2edbe66ea60 100644 (file)
@@ -12,6 +12,7 @@
 #include "support/lstrings.h"
 #include "BufferView.h"
 #include "buffer.h"
+#include "debug.h"
 #include "gettext.h"
 
 using lyx::pos_type;
@@ -223,6 +224,8 @@ SearchResult SearchForward(BufferView * bv, LyXText * text, string const & str,
 {
        Paragraph * par = text->cursor.par();
        pos_type pos = text->cursor.pos();
+       Paragraph * prev_par = par;
+       pos_type prev_pos;
        UpdatableInset * inset;
 
        while (par && !IsStringInText(par, pos, str, cs, mw)) {
@@ -237,41 +240,27 @@ SearchResult SearchForward(BufferView * bv, LyXText * text, string const & str,
                                return SR_FOUND_NOUPDATE;
                        text = bv->getLyXText();
                }
-               if (pos < par->size() - 1)
-                       ++pos;
-               else {
-                       pos = 0;
+               ++pos;
+               if (pos >= par->size()) {
+                       prev_par = par;
+                       // consider 0-sized empty pars
+                       prev_pos = std::min(pos, par->size());
                        par = par->next();
+                       pos = 0;
                }
        }
        if (par) {
                text->setCursor(bv, par, pos);
                return SR_FOUND;
-#if 0
-       } else if (text->inset_owner) {
-               // test if we're inside an inset if yes unlock the inset
-               // and recall us with the outside LyXText!
-               bv->unlockInset((UpdatableInset *)text->inset_owner);
-               if (!bv->theLockingInset()) {
-                       text = bv->getLyXText();
-                       par = text->cursor.par();
-                       pos = text->cursor.pos();
-                       if (pos < par->size() - 1)
-                               ++pos;
-                       else {
-                               pos = 0;
-                               par = par->next();
-                       }
-                       if (!par)
-                               return SR_NOT_FOUND;
-                       text->setCursor(bv, par, pos);
-                       return SearchForward(bv, text, str, cs, mw);
-               } else {
-                       return SR_NOT_FOUND;
-               }
-#endif
-       } else
+       } else {
+               // make sure we end up at the end of the text,
+               // not the start point of the last search
+               text->setCursor(bv, prev_par, prev_pos);
                return SR_NOT_FOUND;
+       }
 }
 
 
@@ -284,11 +273,15 @@ SearchResult SearchBackward(BufferView * bv, LyXText * text,
 {
        Paragraph * par = text->cursor.par();
        pos_type pos = text->cursor.pos();
+       Paragraph * prev_par = par;
+       pos_type prev_pos = pos;
 
        do {
                if (pos > 0)
                        --pos;
                else {
+                       prev_pos = pos;
+                       prev_par = par;
                        // We skip empty paragraphs (Asger)
                        do {
                                par = par->previous();
@@ -313,17 +306,10 @@ SearchResult SearchBackward(BufferView * bv, LyXText * text,
        if (par) {
                text->setCursor(bv, par, pos);
                return SR_FOUND;
+       } else {
+               // go to the last part of the unsuccessful search
+               text->setCursor(bv, prev_par, prev_pos);
+               return SR_NOT_FOUND;
        }
-#if 0
-       else if (text->inset_owner) {
-               // test if we're inside an inset if yes unlock the inset
-               // and recall us with the outside LyXText!
-               bv->unlockInset((UpdatableInset *)text->inset_owner);
-               if (!bv->theLockingInset()) {
-                       return SearchBackward(bv, bv->getLyXText(), str, cs, mw);
-               }
-       }
-#endif
-       return SR_NOT_FOUND;
 }