}
-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> 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<InsetRef *>(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<InsetRef *>(it->first)->getTOCString(),
+ output_active));
+ }
}
}
// 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();
}