]> git.lyx.org Git - features.git/blobdiff - src/insets/InsetInclude.cpp
s/updateLabels/updateBuffer/g, per a suggestion of Abdel's.
[features.git] / src / insets / InsetInclude.cpp
index cacbf420db3b1391eb3aced290fc0edfb47bda79..ccd0dda6ac97c6b0251e92c265609d6011c319e9 100644 (file)
@@ -29,7 +29,6 @@
 #include "LayoutFile.h"
 #include "LayoutModuleList.h"
 #include "LyX.h"
-#include "LyXFunc.h"
 #include "LyXRC.h"
 #include "Lexer.h"
 #include "MetricsInfo.h"
@@ -342,6 +341,18 @@ void InsetInclude::setParams(InsetCommandParams const & p)
 }
 
 
+bool InsetInclude::isChildIncluded() const
+{
+       std::list<std::string> includeonlys =
+               buffer().params().getIncludedChildren();
+       if (includeonlys.empty())
+               return true;
+       return (std::find(includeonlys.begin(),
+                         includeonlys.end(),
+                         to_utf8(params()["filename"])) != includeonlys.end());
+}
+
+
 docstring InsetInclude::screenLabel() const
 {
        docstring temp;
@@ -357,7 +368,10 @@ docstring InsetInclude::screenLabel() const
                        temp = buffer().B_("Verbatim Input*");
                        break;
                case INCLUDE:
-                       temp = buffer().B_("Include");
+                       if (isChildIncluded())
+                               temp = buffer().B_("Include");
+                       else
+                               temp += buffer().B_("Include (excluded)");
                        break;
                case LISTINGS:
                        temp = listings_label_;
@@ -390,7 +404,8 @@ Buffer * InsetInclude::loadIfNeeded() const
 {
        // This is for background export and preview. We don't want to load the
        // cloned child document again.
-       if (child_buffer_ && child_buffer_->isClone())
+       if (child_buffer_ && theBufferList().isLoaded(child_buffer_)
+                 && child_buffer_->isClone())
                return child_buffer_;
 
        // Don't try to load it again if we failed before.
@@ -653,11 +668,11 @@ docstring InsetInclude::xhtml(XHTMLStream & xs, OutputParams const &rp) const
        bool const listing = isListings(params());
        if (listing || isVerbatim(params())) {
                if (listing)
-                       xs << StartTag("pre");
+                       xs << html::StartTag("pre");
                // FIXME: We don't know the encoding of the file, default to UTF-8.
                xs << includedFilename(buffer(), params()).fileContents("UTF-8");
                if (listing)
-                       xs << EndTag("pre");
+                       xs << html::EndTag("pre");
                return docstring();
        }
 
@@ -1032,18 +1047,18 @@ void InsetInclude::updateCommand()
        setParams(p);   
 }
 
-void InsetInclude::updateLabels(ParIterator const & it, bool out)
+void InsetInclude::updateBuffer(ParIterator const & it, UpdateType utype)
 {
        Buffer const * const childbuffer = getChildBuffer();
        if (childbuffer) {
-               childbuffer->updateLabels(Buffer::UpdateChildOnly, out);
+               childbuffer->updateBuffer(Buffer::UpdateChildOnly, utype);
                return;
        }
        if (!isListings(params()))
                return;
 
        if (label_)
-               label_->updateLabels(it, out);
+               label_->updateBuffer(it, utype);
 
        InsetListingsParams const par(to_utf8(params()["lstparams"]));
        if (par.getParamValue("caption").empty()) {
@@ -1055,7 +1070,7 @@ void InsetInclude::updateLabels(ParIterator const & it, bool out)
        docstring const cnt = from_ascii("listing");
        listings_label_ = master.B_("Program Listing");
        if (counters.hasCounter(cnt)) {
-               counters.step(cnt);
+               counters.step(cnt, utype);
                listings_label_ += " " + convert<docstring>(counters.value(cnt));
        }
 }