]> git.lyx.org Git - features.git/commitdiff
Merged Paragraph::stringify into asString().
authorTommaso Cucinotta <tommaso@lyx.org>
Thu, 27 Mar 2014 23:12:56 +0000 (23:12 +0000)
committerRichard Heck <rgheck@lyx.org>
Mon, 21 Apr 2014 15:51:59 +0000 (11:51 -0400)
src/Paragraph.cpp
src/Paragraph.h
src/lyxfind.cpp

index ed0ddd00675a026e65b572f7aa1c4f321d556231..3751cfd933e9ce9e12e3e208eec20df7fa02b82d 100644 (file)
@@ -3347,7 +3347,7 @@ docstring Paragraph::asString(int options) const
 }
 
 
-docstring Paragraph::asString(pos_type beg, pos_type end, int options) const
+docstring Paragraph::asString(pos_type beg, pos_type end, int options, const OutputParams *runparams) const
 {
        odocstringstream os;
 
@@ -3364,9 +3364,14 @@ docstring Paragraph::asString(pos_type beg, pos_type end, int options) const
                    || (c == '\n' && (options & AS_STR_NEWLINES)))
                        os.put(c);
                else if (c == META_INSET && (options & AS_STR_INSETS)) {
-                       getInset(i)->toString(os);
-                       if (getInset(i)->asInsetMath())
-                               os << " ";
+                       if (c == META_INSET && (options & AS_STR_PLAINTEXT)) {
+                               LASSERT(runparams != 0, return docstring());
+                               getInset(i)->plaintext(os, *runparams);
+                       } else {
+                               getInset(i)->toString(os);
+                               if (getInset(i)->asInsetMath())
+                                       os << " ";
+                       }
                }
        }
 
@@ -3392,33 +3397,6 @@ void Paragraph::forOutliner(docstring & os, size_t maxlen) const
 }
 
 
-docstring Paragraph::stringify(pos_type beg, pos_type end, int options,
-        OutputParams const & runparams) const
-{
-       odocstringstream os;
-
-       if (beg == 0
-               && options & AS_STR_LABEL
-               && !d->params_.labelString().empty())
-               os << d->params_.labelString() << ' ';
-
-       OutputParams op = runparams;
-       op.for_search = true;
-
-       for (pos_type i = beg; i < end; ++i) {
-               char_type const c = d->text_[i];
-               if (isPrintable(c) || c == '\t'
-                   || (c == '\n' && (options & AS_STR_NEWLINES)))
-                       os.put(c);
-               else if (c == META_INSET && (options & AS_STR_INSETS)) {
-                       getInset(i)->plaintext(os, op);
-               }
-       }
-
-       return os.str();
-}
-
-
 void Paragraph::setInsetOwner(Inset const * inset)
 {
        d->inset_owner_ = inset;
index ba62f9bee6b6841512e8a6cf508efa8a176f0dcd..587612d76b3c5a7f64711ed55cba79648e8fbe25 100644 (file)
@@ -127,7 +127,8 @@ enum AsStringParameter
        AS_STR_LABEL = 1, ///< Prefix with paragraph label.
        AS_STR_INSETS = 2, ///< Go into insets.
        AS_STR_NEWLINES = 4, ///< Get also newline characters.
-       AS_STR_SKIPDELETE = 8 ///< Skip deleted text in change tracking.
+       AS_STR_SKIPDELETE = 8, ///< Skip deleted text in change tracking.
+       AS_STR_PLAINTEXT = 16 ///< Don't export formatting when descending into insets.
 };
 
 
@@ -173,17 +174,15 @@ public:
        ///             asString(AS_STR_LABEL | AS_STR_INSETS)
        ///             asString(AS_STR_INSETS)
        docstring asString(int options = AS_STR_NONE) const;
-       ///
+
+       /// Convert the paragraph to a string.
+       /// \note If options includes AS_STR_PLAINTEXT, then runparams must be != 0
        docstring asString(pos_type beg, pos_type end,
-               int options = AS_STR_NONE) const;
+                          int options = AS_STR_NONE,
+                          const OutputParams *runparams = 0) const;
        ///
        void forOutliner(docstring &, size_t maxlen) const;
 
-       /// Extract only the explicitly visible text (without any formatting),
-       /// descending into insets
-       docstring stringify(pos_type beg, pos_type end, int options,
-               OutputParams const & runparams) const;
-
        ///
        void write(std::ostream &, BufferParams const &,
                depth_type & depth) const;
index 75f04128111c6ec1ba929342d871e90930dceb69..1b32ae37c780b558778f7443bcbbb726641296ac 100644 (file)
@@ -782,14 +782,17 @@ static docstring stringifySearchBuffer(Buffer & buffer, FindAndReplaceOptions co
                runparams.flavor = OutputParams::LATEX;
                runparams.linelen = 100000; //lyxrc.plaintext_linelen;
                runparams.dryrun = true;
+               runparams.for_search = true;
                for (pos_type pit = pos_type(0); pit < (pos_type)buffer.paragraphs().size(); ++pit) {
                        Paragraph const & par = buffer.paragraphs().at(pit);
                        LYXERR(Debug::FIND, "Adding to search string: '"
-                              << par.stringify(pos_type(0), par.size(),
-                                               AS_STR_INSETS, runparams)
+                              << par.asString(pos_type(0), par.size(),
+                                              AS_STR_INSETS | AS_STR_PLAINTEXT,
+                                              &runparams)
                               << "'");
-                       str += par.stringify(pos_type(0), par.size(),
-                                            AS_STR_INSETS, runparams);
+                       str += par.asString(pos_type(0), par.size(),
+                                           AS_STR_INSETS | AS_STR_PLAINTEXT,
+                                           &runparams);
                }
        }
        return str;
@@ -1040,7 +1043,9 @@ docstring stringifyFromCursor(DocIterator const & cur, int len)
                runparams.dryrun = true;
                LYXERR(Debug::FIND, "Stringifying with cur: "
                       << cur << ", from pos: " << cur.pos() << ", end: " << end);
-               return par.stringify(cur.pos(), end, AS_STR_INSETS, runparams);
+               return par.asString(cur.pos(), end,
+                       AS_STR_INSETS | AS_STR_PLAINTEXT,
+                       &runparams);
        } else if (cur.inMathed()) {
                docstring s;
                CursorSlice cs = cur.top();