[LyX/master] Fix problem with display of include insets with non-existent files.
Richard Kimberly Heck
rikiheck at lyx.org
Sun Jan 10 07:08:08 UTC 2021
commit 2fcc764728843be8d8077aab143112415bc18f2b
Author: Richard Kimberly Heck <rikiheck at lyx.org>
Date: Sun Jan 10 02:08:18 2021 -0500
Fix problem with display of include insets with non-existent files.
---
src/insets/InsetInclude.cpp | 63 ++++++++++++++++++++++--------------------
1 files changed, 33 insertions(+), 30 deletions(-)
diff --git a/src/insets/InsetInclude.cpp b/src/insets/InsetInclude.cpp
index 284f4c1..f480c0d 100644
--- a/src/insets/InsetInclude.cpp
+++ b/src/insets/InsetInclude.cpp
@@ -400,7 +400,7 @@ bool InsetInclude::isChildIncluded() const
docstring InsetInclude::screenLabel() const
{
- docstring pre = file_exist_ ? docstring() : _("FILE MISSING:");
+ docstring pre = file_exist_ ? docstring() : _("MISSING:");
docstring temp;
@@ -1357,41 +1357,44 @@ void InsetInclude::addToToc(DocIterator const & cpit, bool output_active,
InsetListingsParams p(to_utf8(params()["lstparams"]));
b.argumentItem(from_utf8(p.getParamValue("caption")));
b.pop();
- } else if (isVerbatim(params())) {
+ return;
+ }
+ if (isVerbatim(params())) {
TocBuilder & b = backend.builder("child");
b.pushItem(cpit, screenLabel(), output_active);
b.pop();
- } else {
- Buffer const * const childbuffer = loadIfNeeded();
+ return;
+ }
+ // the common case
+ Buffer const * const childbuffer = loadIfNeeded();
- TocBuilder & b = backend.builder("child");
- string const fname = ltrim(to_utf8(params()["filename"]));
- // mark non-existent childbuffer with FILE MISSING
- docstring const str = (childbuffer ? from_ascii("") : _("FILE MISSING: "))
- + from_utf8(onlyFileName(fname)) + " (" + from_utf8(fname) + ")";
- b.pushItem(cpit, str, output_active);
- b.pop();
+ TocBuilder & b = backend.builder("child");
+ string const fname = ltrim(to_utf8(params()["filename"]));
+ // mark non-existent file with MISSING
+ docstring const str = (file_exist_ ? from_ascii("") : _("MISSING: "))
+ + from_utf8(onlyFileName(fname)) + " (" + from_utf8(fname) + ")";
+ b.pushItem(cpit, str, output_active);
+ b.pop();
- if (!childbuffer)
- return;
+ if (!childbuffer)
+ return;
- if (checkForRecursiveInclude(childbuffer))
- return;
- buffer().pushIncludedBuffer(childbuffer);
- // Update the child's tocBackend. The outliner uses the master's, but
- // the navigation menu uses the child's.
- childbuffer->tocBackend().update(output_active, utype);
- // Include Tocs from children
- childbuffer->inset().addToToc(DocIterator(), output_active, utype,
- backend);
- buffer().popIncludedBuffer();
- // Copy missing outliner names (though the user has been warned against
- // having different document class and module selection between master
- // and child).
- for (auto const & name
- : childbuffer->params().documentClass().outlinerNames())
- backend.addName(name.first, translateIfPossible(name.second));
- }
+ if (checkForRecursiveInclude(childbuffer))
+ return;
+ buffer().pushIncludedBuffer(childbuffer);
+ // Update the child's tocBackend. The outliner uses the master's, but
+ // the navigation menu uses the child's.
+ childbuffer->tocBackend().update(output_active, utype);
+ // Include Tocs from children
+ childbuffer->inset().addToToc(DocIterator(), output_active, utype,
+ backend);
+ buffer().popIncludedBuffer();
+ // Copy missing outliner names (though the user has been warned against
+ // having different document class and module selection between master
+ // and child).
+ for (auto const & name
+ : childbuffer->params().documentClass().outlinerNames())
+ backend.addName(name.first, translateIfPossible(name.second));
}
More information about the lyx-cvs
mailing list