setCaptionLabels(icap, type, label, counters);
if (icap.lyxCode() == Inset::CAPTION_CODE) {
// We found a caption!
- counters.step(counter);
+ counters.step(counter);
int number = counters.value(counter);
InsetCaption & ic = static_cast<InsetCaption &>(icap);
ic.setType(type);
InsetList::iterator end = par.insetlist.end();
for (; it != end; ++it) {
Inset & inset = *it->inset;
- if (inset.lyxCode() == Inset::FLOAT_CODE
+ if (inset.lyxCode() == Inset::FLOAT_CODE
|| inset.lyxCode() == Inset::WRAP_CODE) {
docstring const name = inset.name();
if (name.empty())
// FIXME: are "table" and "Table" the correct type and label?
setCaptionLabels(inset, "table", from_ascii("Table"), counters);
}
+ else if (inset.lyxCode() == Inset::LISTINGS_CODE)
+ setCaptionLabels(inset, "listing", from_ascii("Listing"), counters);
+ else if (inset.lyxCode() == Inset::INCLUDE_CODE)
+ // if this include inset contains lstinputlisting, and has a caption
+ // it will increase the 'listing' counter by one
+ static_cast<InsetInclude &>(inset).updateCounter(counters);
}
}
Buffer & cbuf = const_cast<Buffer &>(buf);
cbuf.tocBackend().update();
- cbuf.structureChanged();
+ if (!childonly)
+ cbuf.structureChanged();
}
{
if (par_it->layout()->labeltype == LABEL_COUNTER
&& par_it->layout()->toclevel != Layout::NOT_IN_TOC) {
- buffer.tocBackend().updateItem(par_it);
- buffer.structureChanged();
+ Buffer * master = buffer.getMasterBuffer();
+ master->tocBackend().updateItem(par_it);
+ master->structureChanged();
}
}