X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetCommand.cpp;h=fcda3cd2b984175a7cf24169adffb322c2a74095;hb=57b69a5efddf9f3c148007322f00dad6c253a2ed;hp=004f2f328300fa577a61f5f32af9ad7da0ebbe9a;hpb=5d3461b10f68b81c06898d19e5d7a1b55c472f37;p=lyx.git diff --git a/src/insets/InsetCommand.cpp b/src/insets/InsetCommand.cpp index 004f2f3283..fcda3cd2b9 100644 --- a/src/insets/InsetCommand.cpp +++ b/src/insets/InsetCommand.cpp @@ -51,7 +51,7 @@ using namespace std; namespace lyx { -// FIXME Would it now be possible to use the InsetCode in +// FIXME Would it now be possible to use the InsetCode in // place of the mailer name and recover that information? InsetCommand::InsetCommand(Buffer * buf, InsetCommandParams const & p) : Inset(buf), p_(p) @@ -65,6 +65,20 @@ InsetCommand::InsetCommand(InsetCommand const & rhs) {} +InsetCommand & InsetCommand::operator=(InsetCommand const & rhs) +{ + if (&rhs == this) + return *this; + + Inset::operator=(rhs); + p_ = rhs.p_; + mouse_hover_.clear(); + button_ = RenderButton(); + + return *this; +} + + InsetCommand::~InsetCommand() { if (p_.code() != NO_CODE) @@ -80,7 +94,7 @@ InsetCommand::~InsetCommand() void InsetCommand::metrics(MetricsInfo & mi, Dimension & dim) const { - button_.update(screenLabel(), editable() || clickable(0, 0)); + button_.update(screenLabel(), editable() || clickable(*mi.base.bv, 0, 0)); button_.metrics(mi, dim); } @@ -126,7 +140,8 @@ void InsetCommand::latex(otexstream & os, OutputParams const & runparams_in) con } -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()) + "]"; @@ -189,21 +204,21 @@ bool InsetCommand::getStatus(Cursor & cur, FuncRequest const & cmd, case LFUN_ERT_INSERT: status.setEnabled(false); return true; - + // we handle these case LFUN_INSET_MODIFY: if (cmd.getArg(0) == "changetype") { string const newtype = cmd.getArg(1); status.setEnabled(p_.isCompatibleCommand(p_.code(), newtype)); status.setOnOff(newtype == p_.getCmdName()); - } + } status.setEnabled(true); return true; - + case LFUN_INSET_DIALOG_UPDATE: status.setEnabled(true); return true; - + default: return Inset::getStatus(cur, cmd, status); } @@ -333,7 +348,7 @@ bool decodeInsetParam(string const & name, string & data, break; } case MATH_SPACE_CODE: { - InsetSpaceParams p(true); + InsetSpaceParams p(true); data = InsetSpace::params2string(p); break; }