]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/InsetMathHull.cpp
* src/mathed/InsetMathHull.cpp:
[lyx.git] / src / mathed / InsetMathHull.cpp
index c9e540bed6ca8c88190728d2baf12277eccf39e3..c463d850f8e3c8b5299a56f80ec9e7a1a14688a8 100644 (file)
@@ -420,7 +420,7 @@ void InsetMathHull::metricsT(TextMetricsInfo const & mi, Dimension & dim) const
                InsetMathGrid::metricsT(mi, dim);
        } else {
                odocstringstream os;
-               WriteStream wi(os, false, true);
+               WriteStream wi(os, false, true, false);
                write(wi);
                dim.wid = os.str().size();
                dim.asc = 1;
@@ -435,7 +435,7 @@ void InsetMathHull::drawT(TextPainter & pain, int x, int y) const
                InsetMathGrid::drawT(pain, x, y);
        } else {
                odocstringstream os;
-               WriteStream wi(os, false, true);
+               WriteStream wi(os, false, true, false);
                write(wi);
                pain.draw(x, y, os.str().c_str());
        }
@@ -445,7 +445,7 @@ void InsetMathHull::drawT(TextPainter & pain, int x, int y) const
 static docstring latexString(InsetMathHull const & inset)
 {
        odocstringstream ls;
-       WriteStream wi(ls, false, false);
+       WriteStream wi(ls, false, false, false);
        inset.write(wi);
        return ls.str();
 }
@@ -489,6 +489,9 @@ void InsetMathHull::label(row_type row, docstring const & label)
                if (label.empty()) {
                        delete label_[row];
                        label_[row] = dummy_pointer;
+                       // We need an update of the Buffer reference cache.
+                       // This is achieved by updateLabels().
+                       lyx::updateLabels(buffer());
                } else
                        label_[row]->updateCommand(label);
                return;
@@ -507,6 +510,9 @@ void InsetMathHull::numbered(row_type row, bool num)
        if (nonum_[row] && label_[row]) {
                delete label_[row];
                label_[row] = 0;
+               // We need an update of the Buffer reference cache.
+               // This is achieved by updateLabels().
+               lyx::updateLabels(buffer());
        }
 }
 
@@ -1299,12 +1305,12 @@ bool InsetMathHull::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_MATH_MUTATE:
        case LFUN_MATH_DISPLAY:
                // we handle these
-               status.enabled(true);
+               status.setEnabled(true);
                return true;
        case LFUN_MATH_NUMBER_TOGGLE:
                // FIXME: what is the right test, this or the one of
                // LABEL_INSERT?
-               status.enabled(display());
+               status.setEnabled(display());
                status.setOnOff(numberedType());
                return true;
        case LFUN_MATH_NUMBER_LINE_TOGGLE: {
@@ -1313,16 +1319,16 @@ bool InsetMathHull::getStatus(Cursor & cur, FuncRequest const & cmd,
                bool const enable = (type_ == hullMultline) ?
                        (nrows() - 1 == cur.row()) : display();
                row_type const r = (type_ == hullMultline) ? nrows() - 1 : cur.row();
-               status.enabled(enable);
+               status.setEnabled(enable);
                status.setOnOff(numbered(r));
                return true;
        }
        case LFUN_LABEL_INSERT:
-               status.enabled(type_ != hullSimple);
+               status.setEnabled(type_ != hullSimple);
                return true;
        case LFUN_INSET_INSERT:
                if (cmd.getArg(0) == "label") {
-                       status.enabled(type_ != hullSimple);
+                       status.setEnabled(type_ != hullSimple);
                        return true;
                }
                return InsetMathGrid::getStatus(cur, cmd, status);
@@ -1337,7 +1343,7 @@ bool InsetMathHull::getStatus(Cursor & cur, FuncRequest const & cmd,
                        status.message(bformat(
                                from_utf8(N_("Can't change number of rows in '%1$s'")),
                                hullName(type_)));
-                       status.enabled(false);
+                       status.setEnabled(false);
                        return true;
                }
                if (!colChangeOK()
@@ -1347,7 +1353,7 @@ bool InsetMathHull::getStatus(Cursor & cur, FuncRequest const & cmd,
                        status.message(bformat(
                                from_utf8(N_("Can't change number of columns in '%1$s'")),
                                hullName(type_)));
-                       status.enabled(false);
+                       status.setEnabled(false);
                        return true;
                }
                if ((type_ == hullSimple
@@ -1357,20 +1363,20 @@ bool InsetMathHull::getStatus(Cursor & cur, FuncRequest const & cmd,
                        status.message(bformat(
                                from_utf8(N_("Can't add horizontal grid lines in '%1$s'")),
                                hullName(type_)));
-                       status.enabled(false);
+                       status.setEnabled(false);
                        return true;
                }
                if (s == "add-vline-left" || s == "add-vline-right") {
                        status.message(bformat(
                                from_utf8(N_("Can't add vertical grid lines in '%1$s'")),
                                hullName(type_)));
-                       status.enabled(false);
+                       status.setEnabled(false);
                        return true;
                }
                if (s == "valign-top" || s == "valign-middle"
                 || s == "valign-bottom" || s == "align-left"
                 || s == "align-center" || s == "align-right") {
-                       status.enabled(false);
+                       status.setEnabled(false);
                        return true;
                }
                return InsetMathGrid::getStatus(cur, cmd, status);
@@ -1546,7 +1552,7 @@ bool InsetMathHull::searchForward(BufferView * bv, string const & str,
 void InsetMathHull::write(ostream & os) const
 {
        odocstringstream oss;
-       WriteStream wi(oss, false, false);
+       WriteStream wi(oss, false, false, false);
        oss << "Formula ";
        write(wi);
        os << to_utf8(oss.str());
@@ -1561,7 +1567,7 @@ void InsetMathHull::read(Lexer & lex)
 }
 
 
-int InsetMathHull::plaintext(odocstream & os, OutputParams const &) const
+int InsetMathHull::plaintext(odocstream & os, OutputParams const & runparams) const
 {
        if (0 && display()) {
                Dimension dim;
@@ -1575,7 +1581,7 @@ int InsetMathHull::plaintext(odocstream & os, OutputParams const &) const
                return tpain.textheight();
        } else {
                odocstringstream oss;
-               WriteStream wi(oss, false, true);
+               WriteStream wi(oss, false, true, false, runparams.encoding);
                wi << cell(0);
 
                docstring const str = oss.str();
@@ -1607,7 +1613,7 @@ int InsetMathHull::docbook(odocstream & os, OutputParams const & runparams) cons
                // Workaround for db2latex: db2latex always includes equations with
                // \ensuremath{} or \begin{display}\end{display}
                // so we strip LyX' math environment
-               WriteStream wi(ls, false, false);
+               WriteStream wi(ls, false, false, false, runparams.encoding);
                InsetMathGrid::write(wi);
                ms << from_utf8(subst(subst(to_utf8(ls.str()), "&", "&amp;"), "<", "&lt;"));
                ms << ETag("alt");