X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FOutputParams.h;h=65b4fc266f83975822775666a0cccf6d14ee4f00;hb=32209c9845165a1f686d3faddd1afcedc865da0b;hp=7ca5c1ff62bb3adc6269695c217c9b3263e606de;hpb=f0126b9fdff2118f3e9566387bed0cb5da2df9d4;p=lyx.git diff --git a/src/OutputParams.h b/src/OutputParams.h index 7ca5c1ff62..65b4fc266f 100644 --- a/src/OutputParams.h +++ b/src/OutputParams.h @@ -139,7 +139,26 @@ public: mutable int inulemcmd = 0; /** the font at the point where the inset is - */ + * + * Note from lasgouttes: I have doubts on the semantics of this + * variable. Until this is sorted out, here are some notes on the + * history of local_font. + * + * A research that excludes test and assignment [*] shows that + * this is only used to remember language, which is a different + * story (and not changed by this patch). The only exception being + * in InsetMathHull::getCtObject and InsetMathNest::latex to + * support change tracking in insets, but I am not 100% sure that + * this is required. And historically [**] local_font used to be + * local_lang; it may be good to return to this simpler variable + * later. + * + * [*] git grep local_font src|grep -v 'local_font [!=]*=' + * + * [**] before afed118a, which improved support for InsetLine; + * however, since 0e7ab29f, InsetLine does not depend on the + * current font anymore. + */ Font const * local_font = nullptr; /** Document language lyx name @@ -407,12 +426,19 @@ public: /// Are we generating this material for use by advanced search? enum Search { - NoSearch, - SearchWithDeleted, - SearchWithoutDeleted + NoSearch = 0, + SearchWithDeleted = 1, + SearchWithoutDeleted = 2, + SearchQuick = 4, + SearchNonOutput = 8 }; - enum Search for_searchAdv = NoSearch; + inline bool find_effective(void) const { return (for_search != OutputParams::NoSearch); } + inline bool find_with_non_output() const { return ((for_search & OutputParams::SearchNonOutput) != 0); } + inline bool find_with_deleted() const { return ((for_search & OutputParams::SearchWithDeleted) != 0); } + inline void find_set_feature(enum Search set_) { for_search = set_; } + inline void find_add_feature(enum Search add_) { for_search |= add_; } + inline void find_clean_features(void) { for_search = OutputParams::NoSearch; } /// Are we generating this material for instant preview? bool for_preview = false; @@ -425,6 +451,8 @@ public: /// A postponed \\noindent (after VSpace) mutable bool need_noindent = false; +private: + int for_search = NoSearch; };