X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetCommand.cpp;h=6ade744ed93c431da1d5f1a4cd1edb9eeec4b7f8;hb=2c357c1d23b7b83839a9beb8225d4f1ae4f793b4;hp=a97b84d2ab7a3ac8f178a782172f7d94c8893175;hpb=59c2e75e41c4a6e210dde757646e064c65f535a5;p=lyx.git diff --git a/src/insets/InsetCommand.cpp b/src/insets/InsetCommand.cpp index a97b84d2ab..6ade744ed9 100644 --- a/src/insets/InsetCommand.cpp +++ b/src/insets/InsetCommand.cpp @@ -18,20 +18,19 @@ #include "DispatchResult.h" #include "FuncRequest.h" #include "FuncStatus.h" -#include "gettext.h" +#include "support/gettext.h" #include "Lexer.h" #include "MetricsInfo.h" #include +using namespace std; namespace lyx { -using std::string; -using std::istringstream; -using std::ostringstream; - +// FIXME Would it now be possible to use the InsetCode in +// place of the mailer name and recover that information? InsetCommand::InsetCommand(InsetCommandParams const & p, string const & mailer_name) : p_(p), @@ -48,7 +47,7 @@ InsetCommand::~InsetCommand() } -bool InsetCommand::metrics(MetricsInfo & mi, Dimension & dim) const +void InsetCommand::metrics(MetricsInfo & mi, Dimension & dim) const { if (updateButtonLabel_) { updateButtonLabel_ = false; @@ -56,9 +55,6 @@ bool InsetCommand::metrics(MetricsInfo & mi, Dimension & dim) const editable() != NOT_EDITABLE); } button_.metrics(mi, dim); - bool const changed = dim_ != dim; - dim_ = dim; - return changed; } @@ -71,7 +67,6 @@ bool InsetCommand::setMouseHover(bool mouse_hover) void InsetCommand::draw(PainterInfo & pi, int x, int y) const { - setPosCache(pi, x, y); button_.setRenderState(mouse_hover_); button_.draw(pi, x, y); } @@ -116,7 +111,7 @@ void InsetCommand::doDispatch(Cursor & cur, FuncRequest & cmd) break; case LFUN_INSET_MODIFY: { - InsetCommandParams p(p_.getCmdName()); + InsetCommandParams p(p_.code()); InsetCommandMailer::string2params(mailer_name_, to_utf8(cmd.argument()), p); if (p.getCmdName().empty()) cur.noUpdate(); @@ -165,22 +160,15 @@ bool InsetCommand::getStatus(Cursor & cur, FuncRequest const & cmd, } -void InsetCommand::edit(Cursor & cur, bool) +void InsetCommand::edit(Cursor & cur, bool, EntryDirection) { if (!mailer_name_.empty()) InsetCommandMailer(mailer_name_, *this).showDialog(&cur.bv()); } -void InsetCommand::replaceContents(std::string const & from, string const & to) -{ - if (getContents() == from) - setContents(to); -} - - -InsetCommandMailer::InsetCommandMailer(string const & name, - InsetCommand & inset) +InsetCommandMailer::InsetCommandMailer( + string const & name, InsetCommand & inset) : name_(name), inset_(inset) {} @@ -191,13 +179,13 @@ string const InsetCommandMailer::inset2string(Buffer const &) const } -void InsetCommandMailer::string2params(string const & name, - string const & in, - InsetCommandParams & params) +//FIXME This could take an InsetCode instead of a string +bool InsetCommandMailer::string2params( + string const & name, string const & in, InsetCommandParams & params) { params.clear(); if (in.empty()) - return; + return false; istringstream data(in); Lexer lex(0,0); @@ -205,20 +193,26 @@ void InsetCommandMailer::string2params(string const & name, string n; lex >> n; - if (!lex || n != name) - return print_mailer_error("InsetCommandMailer", in, 1, name); + if (!lex || n != name) { + print_mailer_error("InsetCommandMailer", in, 1, name); + return false; + } // This is part of the inset proper that is usually swallowed // by Text::readInset string id; lex >> id; - if (!lex || id != "LatexCommand") - return print_mailer_error("InsetCommandMailer", in, 2, "LatexCommand"); + if (!lex || id != "CommandInset") { + print_mailer_error("InsetCommandMailer", in, 2, "LatexCommand"); + return false; + } params.read(lex); + return true; } +//FIXME This could take an InsetCode instead of a string string const InsetCommandMailer::params2string(string const & name, InsetCommandParams const & params)