dispatch_result InsetExternal::localDispatch(FuncRequest const & cmd)
{
- if (cmd.action != LFUN_INSET_MODIFY)
- return UNDISPATCHED;
+ dispatch_result result = UNDISPATCHED;
- InsetExternal::Params p;
- InsetExternalMailer::string2params(cmd.argument, p);
- if (p.filename.empty())
- return UNDISPATCHED;
+ switch (cmd.action) {
+ case LFUN_INSET_MODIFY: {
+ InsetExternal::Params p;
+ InsetExternalMailer::string2params(cmd.argument, p);
+ if (p.filename.empty())
+ break;
+
+ setFromParams(p);
+ cmd.view()->updateInset(this);
+ result = DISPATCHED;
+ }
+ break;
+
+ case LFUN_INSET_DIALOG_UPDATE: {
+ InsetExternalMailer mailer(*this);
+ mailer.updateDialog(cmd.view());
+ }
+ break;
- setFromParams(p);
- cmd.view()->updateInset(this, true);
- return DISPATCHED;
+ case LFUN_MOUSE_RELEASE:
+ edit(cmd.view(), cmd.x, cmd.y, cmd.button());
+ break;
+
+ default:
+ break;
+ }
+
+ return result;
}
}
-void InsetExternal::edit(BufferView *, int, int, mouse_button::state)
+void InsetExternal::edit(BufferView * bv, int, int, mouse_button::state)
{
InsetExternalMailer mailer(*this);
- mailer.showDialog();
+ mailer.showDialog(bv);
}
}
-bool operator==(InsetExternal::Params const & left,
- InsetExternal::Params const & right)
-{
- return ((left.filename == right.filename) &&
- (left.parameters == right.parameters) &&
- (left.templ.lyxName == right.templ.lyxName));
-}
-
-
-bool operator!=(InsetExternal::Params const & left,
- InsetExternal::Params const & right)
-{
- return !(left == right);
-}
-
-
string const InsetExternalMailer::name_("external");
InsetExternalMailer::InsetExternalMailer(InsetExternal & inset)
return;
}
- InsetExternal inset;
- inset.read(0, lex);
- params = inset.params();
+ if (lex.isOK()) {
+ InsetExternal inset;
+ inset.read(0, lex);
+ params = inset.params();
+ }
}