X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetIndex.cpp;h=d485a11969db24232f9d78b35de7550c0075592e;hb=babe9eaeabd44faf4ecf98285799f2a8670c8f6c;hp=9db1aca4dde3c485400b925f47ed587526754a2b;hpb=8b00b355ca7012ca703c78a8be89193ac6435fcb;p=features.git diff --git a/src/insets/InsetIndex.cpp b/src/insets/InsetIndex.cpp index 9db1aca4dd..d485a11969 100644 --- a/src/insets/InsetIndex.cpp +++ b/src/insets/InsetIndex.cpp @@ -200,13 +200,13 @@ void InsetIndex::doDispatch(Cursor & cur, FuncRequest & cmd) case LFUN_INSET_MODIFY: { if (cmd.getArg(0) == "changetype") { - cur.recordUndoInset(ATOMIC_UNDO, this); + cur.recordUndoInset(this); params_.index = from_utf8(cmd.getArg(1)); break; } InsetIndexParams params; InsetIndex::string2params(to_utf8(cmd.argument()), params); - cur.recordUndoInset(ATOMIC_UNDO, this); + cur.recordUndoInset(this); params_.index = params.index; // what we really want here is a TOC update, but that means // a full buffer update @@ -353,8 +353,12 @@ void InsetIndex::addToToc(DocIterator const & cpit, bool output_active) const DocIterator pit = cpit; pit.push_back(CursorSlice(const_cast(*this))); docstring str; - text().forOutliner(str, 0); - buffer().tocBackend().toc("index").push_back(TocItem(pit, 0, str, output_active)); + string type = "index"; + if (buffer().masterBuffer()->params().use_indices) + type += ":" + to_utf8(params_.index); + // this is unlikely to be terribly long + text().forOutliner(str, INT_MAX); + buffer().tocBackend().toc(type).push_back(TocItem(pit, 0, str, output_active)); // Proceed with the rest of the inset. InsetCollapsable::addToToc(cpit, output_active); } @@ -427,7 +431,7 @@ ParamInfo const & InsetPrintIndex::findInfo(string const & /* cmdName */) static ParamInfo param_info_; if (param_info_.empty()) { param_info_.add("type", ParamInfo::LATEX_OPTIONAL, - ParamInfo::HANDLING_ESCAPE); + ParamInfo::HANDLING_ESCAPE); param_info_.add("name", ParamInfo::LATEX_REQUIRED); } return param_info_;