]> git.lyx.org Git - features.git/blobdiff - src/Row.cpp
Find: Renamend for_searchAdv to for_serach in src/OutputParams.h
[features.git] / src / Row.cpp
index ef1495fb5970c257f9f72663403827b6f018041b..3d5ab903deab148c6b4cb58231a49df6abcf7855 100644 (file)
@@ -42,19 +42,11 @@ using frontend::FontMetrics;
 static double const MAX_SPACE_STRETCH = 1.5; //em
 
 
-int Row::Element::countSeparators() const
-{
-       if (type != STRING)
-               return 0;
-       return count(str.begin(), str.end(), ' ');
-}
-
-
 int Row::Element::countExpanders() const
 {
        if (type != STRING)
                return 0;
-       return theFontMetrics(font).countExpanders(str);
+       return support::countExpanders(str);
 }
 
 
@@ -385,16 +377,6 @@ int Row::right_x() const
 }
 
 
-int Row::countSeparators() const
-{
-       int n = 0;
-       const_iterator const end = elements_.end();
-       for (const_iterator cit = elements_.begin() ; cit != end ; ++cit)
-               n += cit->countSeparators();
-       return n;
-}
-
-
 bool Row::setExtraWidth(int w)
 {
        if (w < 0)
@@ -460,12 +442,12 @@ void Row::add(pos_type const pos, Inset const * ins, Dimension const & dim,
 
 
 void Row::add(pos_type const pos, char_type const c,
-              Font const & f, Change const & ch, bool can_break)
+              Font const & f, Change const & ch)
 {
        if (!sameString(f, ch)) {
                finalizeLast();
                Element e(STRING, pos, f, ch);
-               e.row_flags = can_break ? CanBreakInside : Inline;
+               e.row_flags = CanBreakInside;
                elements_.push_back(e);
        }
        back().str += c;
@@ -537,7 +519,7 @@ void moveElements(Row::Elements & from, Row::Elements::iterator const & it,
        to.insert(to.end(), it, from.end());
        from.erase(it, from.end());
        if (!from.empty())
-               from.back().row_flags = (from.back().row_flags & ~AfterFlags) | BreakAfter;
+               from.back().row_flags = (from.back().row_flags & ~AfterFlags) | AlwaysBreakAfter;
 }
 
 }
@@ -645,7 +627,9 @@ Row::Elements Row::shortenIfNeeded(int const w, int const next_width)
                return tail;
        }
 
-       return Elements();
+       // cit == beg; remove all elements after the first one.
+       moveElements(elements_, cit + 1, tail);
+       return tail;
 }