b->setReadonly(false);
b->fully_loaded(true);
- b->updateDocLang(b->params().language);
return b;
}
InsetBase * in = 0;
while (i > 0) {
--i;
- in = &it[i].inset();
- if (in->lyxCode() == InsetBase::FLOAT_CODE
- || in->lyxCode() == InsetBase::WRAP_CODE)
+ InsetBase::Code const code = it[i].inset().lyxCode();
+ if (code == InsetBase::FLOAT_CODE ||
+ code == InsetBase::WRAP_CODE) {
+ in = &it[i].inset();
break;
+ }
}
+ // FIXME Can getInsetName() return an empty name for wide or
+ // float insets? If not we can put the definition of type
+ // inside the if (in) clause and use that instead of
+ // if (!type.empty()).
docstring type;
if (in)
type = in->getInsetName();
}
}
- const_cast<Buffer &>(buf).tocBackend().update();
+ Buffer & cbuf = const_cast<Buffer &>(buf);
+ cbuf.tocBackend().update();
+ cbuf.structureChanged();
}
+void checkBufferStructure(Buffer & buffer, ParIterator const & par_it)
+{
+ if (par_it->layout()->labeltype == LABEL_COUNTER
+ && par_it->layout()->toclevel != LyXLayout::NOT_IN_TOC) {
+ buffer.tocBackend().updateItem(par_it);
+ buffer.structureChanged();
+ }
+}
+
} // namespace lyx