]> git.lyx.org Git - features.git/blobdiff - src/insets/InsetCollapsable.cpp
* Lazy MathData to avoid unneeded interpretation of macro definitions
[features.git] / src / insets / InsetCollapsable.cpp
index 3be7346a8d066db530e1a7a5a234bee884641bed..fe747bc9e8b840db7e264d4d4a53d3e0edc0372d 100644 (file)
 #include "BufferParams.h"
 #include "BufferView.h"
 #include "Cursor.h"
-#include "debug.h"
+#include "support/debug.h"
 #include "Dimension.h"
 #include "DispatchResult.h"
 #include "FloatList.h"
 #include "FuncStatus.h"
-#include "gettext.h"
+#include "support/gettext.h"
 #include "Language.h"
 #include "LaTeXFeatures.h"
 #include "Lexer.h"
 #include "frontends/FontMetrics.h"
 #include "frontends/Painter.h"
 
+#include "support/docstream.h"
 
-namespace lyx {
+using namespace std;
 
-using std::endl;
-using std::max;
-using std::ostream;
-using std::string;
+namespace lyx {
 
 
 InsetCollapsable::CollapseStatus InsetCollapsable::status() const
@@ -154,8 +152,7 @@ void InsetCollapsable::read(Buffer const & buf, Lexer & lex)
                                lex.pushToken(token);
                        }
                } else {
-                       lyxerr << "InsetCollapsable::read: Missing 'status'-tag!"
-                                  << endl;
+                       LYXERR0("InsetCollapsable::read: Missing 'status'-tag!");
                        // take countermeasures
                        lex.pushToken(token);
                }
@@ -429,7 +426,7 @@ docstring const InsetCollapsable::getNewLabel(docstring const & l) const
        docstring label;
        pos_type const max_length = 15;
        pos_type const p_siz = paragraphs().begin()->size();
-       pos_type const n = std::min(max_length, p_siz);
+       pos_type const n = min(max_length, p_siz);
        pos_type i = 0;
        pos_type j = 0;
        for (; i < n && j < p_siz; ++j) {
@@ -651,14 +648,12 @@ bool InsetCollapsable::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_BIBITEM_INSERT:
        case LFUN_BOX_INSERT:
        case LFUN_BRANCH_INSERT:
-       case LFUN_BREAK_LINE:
+       case LFUN_NEW_LINE:
        case LFUN_CAPTION_INSERT:
        case LFUN_CLEARPAGE_INSERT:
        case LFUN_CLEARDOUBLEPAGE_INSERT:
        case LFUN_DEPTH_DECREMENT:
        case LFUN_DEPTH_INCREMENT:
-       case LFUN_DOTS_INSERT:
-       case LFUN_END_OF_SENTENCE_PERIOD_INSERT:
        case LFUN_ENVIRONMENT_INSERT:
        case LFUN_ERT_INSERT:
        case LFUN_FILE_INSERT:
@@ -683,13 +678,11 @@ bool InsetCollapsable::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_FOOTNOTE_INSERT:
        case LFUN_HFILL_INSERT:
        case LFUN_HYPERLINK_INSERT:
-       case LFUN_HYPHENATION_POINT_INSERT:
        case LFUN_INDEX_INSERT:
        case LFUN_INDEX_PRINT:
        case LFUN_INSET_INSERT:
        case LFUN_LABEL_GOTO:
        case LFUN_LABEL_INSERT:
-       case LFUN_LIGATURE_BREAK_INSERT:
        case LFUN_LINE_INSERT:
        case LFUN_NEWPAGE_INSERT:
        case LFUN_PAGEBREAK_INSERT:
@@ -702,7 +695,6 @@ bool InsetCollapsable::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_MATH_MATRIX:
        case LFUN_MATH_MODE:
        case LFUN_MENU_OPEN:
-       case LFUN_MENU_SEPARATOR_INSERT:
        case LFUN_NOACTION:
        case LFUN_NOMENCL_INSERT:
        case LFUN_NOMENCL_PRINT:
@@ -718,6 +710,7 @@ bool InsetCollapsable::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_SERVER_NOTIFY:
        case LFUN_SERVER_SET_XY:
        case LFUN_SPACE_INSERT:
+       case LFUN_SPECIALCHAR_INSERT:
        case LFUN_TABULAR_INSERT:
        case LFUN_TOC_INSERT:
        case LFUN_WRAP_INSERT:
@@ -789,6 +782,22 @@ InsetCollapsable::Decoration InsetCollapsable::decoration() const
 }
 
 
+bool InsetCollapsable::isMacroScope(Buffer const & buf) const
+{
+       // layout_ == 0 leads to no latex output, so ignore 
+       // the macros outside
+       if (!layout_)
+               return true;
+
+       // see InsetCollapsable::latex(...) below. In these case
+       // an environment is opened there
+       if (!layout_->latexname.empty())
+               return true;
+
+       return false;
+}
+
+
 int InsetCollapsable::latex(Buffer const & buf, odocstream & os,
                          OutputParams const & runparams) const
 {