X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetLabel.cpp;h=553c6d7b969bac5cb09fcf1f26862c4a99509328;hb=1f0305509b99681885958c03f8d8f04c1564c84c;hp=35d5f543b8f86e4a0d32fa3799b3192c0ecd48e2;hpb=9c55af4a223ce4db29d643251109e245665344bd;p=lyx.git diff --git a/src/insets/InsetLabel.cpp b/src/insets/InsetLabel.cpp index 35d5f543b8..553c6d7b96 100644 --- a/src/insets/InsetLabel.cpp +++ b/src/insets/InsetLabel.cpp @@ -169,28 +169,29 @@ void InsetLabel::updateBuffer(ParIterator const & par, UpdateType utype) } -void InsetLabel::addToToc(DocIterator const & cpit, bool output_active) const +void InsetLabel::addToToc(DocIterator const & cpit, bool output_active, + UpdateType) const { docstring const & label = getParam("name"); - Toc & toc = buffer().tocBackend().toc("label"); + shared_ptr toc = buffer().tocBackend().toc("label"); if (buffer().insetLabel(label) != this) { - toc.push_back(TocItem(cpit, 0, screen_label_, output_active)); - return; - } - toc.push_back(TocItem(cpit, 0, screen_label_, output_active)); - Buffer::References const & refs = buffer().references(label); - Buffer::References::const_iterator it = refs.begin(); - Buffer::References::const_iterator end = refs.end(); - for (; it != end; ++it) { - DocIterator const ref_pit(it->second); - if (it->first->lyxCode() == MATH_REF_CODE) - toc.push_back(TocItem(ref_pit, 1, - it->first->asInsetMath()->asRefInset()->screenLabel(), - output_active)); - else - toc.push_back(TocItem(ref_pit, 1, - static_cast(it->first)->getTOCString(), - output_active)); + toc->push_back(TocItem(cpit, 0, screen_label_, output_active)); + } else { + toc->push_back(TocItem(cpit, 0, screen_label_, output_active)); + Buffer::References const & refs = buffer().references(label); + Buffer::References::const_iterator it = refs.begin(); + Buffer::References::const_iterator end = refs.end(); + for (; it != end; ++it) { + DocIterator const ref_pit(it->second); + if (it->first->lyxCode() == MATH_REF_CODE) + toc->push_back(TocItem(ref_pit, 1, + it->first->asInsetMath()->asRefInset()->screenLabel(), + output_active)); + else + toc->push_back(TocItem(ref_pit, 1, + static_cast(it->first)->getTOCString(), + output_active)); + } } } @@ -294,8 +295,8 @@ docstring InsetLabel::xhtml(XHTMLStream & xs, OutputParams const &) const // id here to get the document to validate as XHTML 1.1. This will cause a // problem with some browsers, though, I'm sure. (Guess which!) So we will // have to figure out what to do about this later. - string const attr = "id=\"" + html::cleanAttr(to_utf8(getParam("name"))) + "\""; - xs << html::CompTag("a", attr); + docstring const attr = "id=\"" + html::cleanAttr(getParam("name")) + '"'; + xs << html::CompTag("a", to_utf8(attr)); return docstring(); }