]> git.lyx.org Git - lyx.git/blobdiff - src/OutputParams.h
* Document prefs: rename Format -> Output
[lyx.git] / src / OutputParams.h
index 7ca5c1ff62bb3adc6269695c217c9b3263e606de..65b4fc266f83975822775666a0cccf6d14ee4f00 100644 (file)
@@ -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;
 };