]> git.lyx.org Git - lyx.git/commitdiff
Fix previews in yellow notes and disabled branches
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 19 Dec 2023 16:45:00 +0000 (17:45 +0100)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 19 Dec 2023 16:56:18 +0000 (17:56 +0100)
While it is not necessary to run validate() on insets that do not
produce output (yellow notes and disabled branches), it has to be done
for previewing, since a construct inside the inset may require some
support.

This is done in two steps:

1. in PreviewLoader::dumpPreamble, indicate that a preview is being
   prepared. It is not clear why the `for_preview' boolean was not set
   before.

2. in Inset(Branch|Note)::validate, always call the parent's validate
   method when previewing.

It should have been possible to move the code from 2. to
InsetText::validate, but the weird code in handling
InsetNoteParams::Comment in html makes it difficult.

src/graphics/PreviewLoader.cpp
src/insets/InsetBranch.cpp
src/insets/InsetNote.cpp

index 198d6d96abb3be104608bad7c55ca1640e2fbb76..a350a4939bdd9dc9564c77c1912d2f7ae1111a70 100644 (file)
@@ -809,6 +809,7 @@ void PreviewLoader::Impl::dumpPreamble(otexstream & os, Flavor flavor) const
        runparams.moving_arg = true;
        runparams.free_spacing = true;
        runparams.is_child = buffer_.parent();
+       runparams.for_preview = true;
        buffer_.writeLaTeXSource(os, buffer_.filePath(), runparams, Buffer::OnlyPreamble);
 
        // FIXME! This is a HACK! The proper fix is to control the 'true'
index 7a97e2c3b4a32993a794a134e63d6b1551cde664..229e1bc37e3a051769cc133fa36486155f70eecd 100644 (file)
@@ -22,6 +22,7 @@
 #include "FuncRequest.h"
 #include "FuncStatus.h"
 #include "Inset.h"
+#include "LaTeXFeatures.h"
 #include "Lexer.h"
 #include "LyX.h"
 #include "output_docbook.h"
@@ -340,7 +341,8 @@ void InsetBranch::forOutliner(docstring & os, size_t const maxlen,
 
 void InsetBranch::validate(LaTeXFeatures & features) const
 {
-       if (producesOutput())
+       // Showing previews in a disabled branch may require stuff
+       if (producesOutput() || features.runparams().for_preview)
                InsetCollapsible::validate(features);
 }
 
index a7a0dc16abf0fad7856075ad085271d6f600d724..b12b755fba9ed16e2a135c28a0286afb13720b81 100644 (file)
@@ -334,6 +334,9 @@ void InsetNote::validate(LaTeXFeatures & features) const
                InsetCollapsible::validate(features);
                break;
        case InsetNoteParams::Note:
+               // Showing previews in this inset may require stuff
+               if (features.runparams().for_preview)
+                       InsetCollapsible::validate(features);
                break;
        }
 }