X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetLabel.cpp;h=35d5f543b8f86e4a0d32fa3799b3192c0ecd48e2;hb=e15d3d35cba7266d8a1a22c7e4cd92d12599e103;hp=c2ef896b866f53ef6aaab7fa1f8655362b0826ed;hpb=86994bf75320524ec656fd70950633c83d445a6c;p=lyx.git diff --git a/src/insets/InsetLabel.cpp b/src/insets/InsetLabel.cpp index c2ef896b86..35d5f543b8 100644 --- a/src/insets/InsetLabel.cpp +++ b/src/insets/InsetLabel.cpp @@ -109,9 +109,9 @@ void InsetLabel::updateLabelAndRefs(docstring const & new_label, void InsetLabel::updateReferences(docstring const & old_label, docstring const & new_label) { - Buffer::References & refs = buffer().references(old_label); - Buffer::References::iterator it = refs.begin(); - Buffer::References::iterator end = refs.end(); + Buffer::References const & refs = buffer().references(old_label); + Buffer::References::const_iterator it = refs.begin(); + Buffer::References::const_iterator end = refs.end(); for (; it != end; ++it) { buffer().undo().recordUndo(CursorData(it->second)); if (it->first->lyxCode() == MATH_REF_CODE) { @@ -189,7 +189,7 @@ void InsetLabel::addToToc(DocIterator const & cpit, bool output_active) const output_active)); else toc.push_back(TocItem(ref_pit, 1, - static_cast(it->first)->screenLabel(), + static_cast(it->first)->getTOCString(), output_active)); } } @@ -200,10 +200,17 @@ bool InsetLabel::getStatus(Cursor & cur, FuncRequest const & cmd, { bool enabled; switch (cmd.action()) { - case LFUN_LABEL_INSERT_AS_REF: - case LFUN_LABEL_COPY_AS_REF: + case LFUN_LABEL_INSERT_AS_REFERENCE: + case LFUN_LABEL_COPY_AS_REFERENCE: enabled = true; break; + case LFUN_INSET_MODIFY: + if (cmd.getArg(0) == "changetype") { + // this is handled by InsetCommand, + // but not by InsetLabel. + enabled = false; + break; + } default: return InsetCommand::getStatus(cur, cmd, status); } @@ -218,6 +225,12 @@ void InsetLabel::doDispatch(Cursor & cur, FuncRequest & cmd) switch (cmd.action()) { case LFUN_INSET_MODIFY: { + // the only other option here is "changetype", and we + // do not have different types. + if (cmd.getArg(0) != "label") { + cur.undispatched(); + return; + } InsetCommandParams p(LABEL_CODE); // FIXME UNICODE InsetCommand::string2params(to_utf8(cmd.argument()), p); @@ -233,7 +246,7 @@ void InsetLabel::doDispatch(Cursor & cur, FuncRequest & cmd) break; } - case LFUN_LABEL_COPY_AS_REF: { + case LFUN_LABEL_COPY_AS_REFERENCE: { InsetCommandParams p(REF_CODE, "ref"); p["reference"] = getParam("name"); cap::clearSelection(); @@ -241,7 +254,7 @@ void InsetLabel::doDispatch(Cursor & cur, FuncRequest & cmd) break; } - case LFUN_LABEL_INSERT_AS_REF: { + case LFUN_LABEL_INSERT_AS_REFERENCE: { InsetCommandParams p(REF_CODE, "ref"); p["reference"] = getParam("name"); string const data = InsetCommand::params2string(p);