X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetCommand.cpp;h=b2fbc690000652cf4e6bcd594beb9414565edd7b;hb=15ae3eb85c5494b4343936108cb3b5b7c53bafe4;hp=9d9408fed5397e0a744f19ba5df8da183bfb5b5b;hpb=64e77d6c145b5d2b9a12feb7b1a0176a7b08bfe1;p=lyx.git diff --git a/src/insets/InsetCommand.cpp b/src/insets/InsetCommand.cpp index 9d9408fed5..b2fbc69000 100644 --- a/src/insets/InsetCommand.cpp +++ b/src/insets/InsetCommand.cpp @@ -29,6 +29,7 @@ #include "insets/InsetExternal.h" #include "insets/InsetFloat.h" #include "insets/InsetGraphics.h" +#include "insets/InsetIndex.h" #include "insets/InsetLine.h" #include "insets/InsetListings.h" #include "insets/InsetNote.h" @@ -79,7 +80,7 @@ InsetCommand::~InsetCommand() void InsetCommand::metrics(MetricsInfo & mi, Dimension & dim) const { - button_.update(screenLabel(), editable() || hasSettings()); + button_.update(screenLabel(), editable() || clickable(0, 0)); button_.metrics(mi, dim); } @@ -99,13 +100,13 @@ void InsetCommand::draw(PainterInfo & pi, int x, int y) const } -void InsetCommand::setParam(std::string const & name, docstring const & value) +void InsetCommand::setParam(string const & name, docstring const & value) { p_[name] = value; } -docstring const & InsetCommand::getParam(std::string const & name) const +docstring const & InsetCommand::getParam(string const & name) const { return p_[name]; } @@ -118,15 +119,15 @@ void InsetCommand::setParams(InsetCommandParams const & p) } -int InsetCommand::latex(odocstream & os, OutputParams const & runparams_in) const +void InsetCommand::latex(otexstream & os, OutputParams const & runparams_in) const { OutputParams runparams = runparams_in; os << getCommand(runparams); - return 0; } -int InsetCommand::plaintext(odocstream & os, OutputParams const &) const +int InsetCommand::plaintext(odocstringstream & os, + OutputParams const &, size_t) const { docstring const str = "[" + buffer().B_("LaTeX Command: ") + from_utf8(getCmdName()) + "]"; @@ -146,6 +147,7 @@ void InsetCommand::doDispatch(Cursor & cur, FuncRequest & cmd) switch (cmd.action()) { case LFUN_INSET_MODIFY: { if (cmd.getArg(0) == "changetype") { + cur.recordUndo(); p_.setCmdName(cmd.getArg(1)); cur.forceBufferUpdate(); initView(); @@ -155,8 +157,10 @@ void InsetCommand::doDispatch(Cursor & cur, FuncRequest & cmd) InsetCommand::string2params(to_utf8(cmd.argument()), p); if (p.getCmdName().empty()) cur.noScreenUpdate(); - else + else { + cur.recordUndo(); setParams(p); + } // FIXME We might also want to check here if this one is in the TOC. // But I think most of those are labeled. if (isLabeled()) @@ -207,9 +211,9 @@ bool InsetCommand::getStatus(Cursor & cur, FuncRequest const & cmd, } -docstring InsetCommand::contextMenu(BufferView const &, int, int) const +string InsetCommand::contextMenuName() const { - return from_ascii("context-") + from_ascii(insetName(p_.code())); + return "context-" + insetName(p_.code()); } @@ -262,7 +266,7 @@ bool decodeInsetParam(string const & name, string & data, switch (code) { case BIBITEM_CODE: case BIBTEX_CODE: - case INDEX_CODE: + case INDEX_PRINT_CODE: case LABEL_CODE: case LINE_CODE: case NOMENCL_CODE: @@ -314,6 +318,11 @@ bool decodeInsetParam(string const & name, string & data, data = InsetFloat::params2string(p); break; } + case INDEX_CODE: { + InsetIndexParams p; + data = InsetIndex::params2string(p); + break; + } case LISTINGS_CODE: { InsetListingsParams p; data = InsetListings::params2string(p); @@ -324,6 +333,11 @@ bool decodeInsetParam(string const & name, string & data, data = InsetGraphics::params2string(p, buffer); break; } + case MATH_SPACE_CODE: { + InsetSpaceParams p(true); + data = InsetSpace::params2string(p); + break; + } case NOTE_CODE: { InsetNoteParams p; data = InsetNote::params2string(p);