From: Angus Leeming Date: Wed, 11 Apr 2001 17:14:20 +0000 (+0000) Subject: John's external material patch X-Git-Tag: 1.6.10~21320 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=87998757a9efae4ef52ed5119b1777ad6bf8bce5;p=features.git John's external material patch git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1909 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/frontends/controllers/ChangeLog b/src/frontends/controllers/ChangeLog index 735afab7d4..972ab96a4d 100644 --- a/src/frontends/controllers/ChangeLog +++ b/src/frontends/controllers/ChangeLog @@ -1,3 +1,8 @@ +2001-04-06 John Levon + + * ControlExternal.C: from Angus, clone the new InsetExternal + before acting on it + 2001-04-09 Angus Leeming * helper_funcs.C (getStringFromVector, getVectorFromString): fixed bugs diff --git a/src/frontends/controllers/ControlExternal.C b/src/frontends/controllers/ControlExternal.C index 7a02313821..a294c1283a 100644 --- a/src/frontends/controllers/ControlExternal.C +++ b/src/frontends/controllers/ControlExternal.C @@ -9,7 +9,7 @@ * * \file ControlExternal.C * \author Asger Alstrup - * \author John Levon + * \author John Levon, moz@compsoc.man.ac.uk * \author Angus Leeming, a.leeming@ic.ac.uk */ @@ -68,30 +68,33 @@ void ControlExternal::editExternal() // Create a local copy of the inset and initialise it with this // params struct. - InsetExternal ie; - ie.setFromParams(params()); + boost::scoped_ptr ie; + ie.reset(static_cast(inset()->Clone(*lv_.buffer()))); + ie->setFromParams(params()); - ie.editExternal(); + ie->editExternal(); } void ControlExternal::viewExternal() { view().apply(); - InsetExternal ie; - ie.setFromParams(params()); + boost::scoped_ptr ie; + ie.reset(static_cast(inset()->Clone(*lv_.buffer()))); + ie->setFromParams(params()); - ie.viewExternal(); + ie->viewExternal(); } void ControlExternal::updateExternal() { view().apply(); - InsetExternal ie; - ie.setFromParams(params()); + boost::scoped_ptr ie; + ie.reset(static_cast(inset()->Clone(*lv_.buffer()))); + ie->setFromParams(params()); - ie.updateExternal(); + ie->updateExternal(); } vector const ControlExternal::getTemplates() const diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index d13fa39a1b..864da918d7 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,3 +1,7 @@ +2001-04-06 John Levon + + * forms/form_external.fd: make params update state (from Angus) + 2001-04-05 Jean-Marc Lasgouttes * Menubar_pimpl.C: include gettext.h diff --git a/src/frontends/xforms/form_external.C b/src/frontends/xforms/form_external.C index 73b6c3d095..ea9e8bbb37 100644 --- a/src/frontends/xforms/form_external.C +++ b/src/frontends/xforms/form_external.C @@ -60,6 +60,7 @@ FD_form_external * FormExternal::build_external() } fl_set_object_lsize(obj, FL_NORMAL_SIZE); fl_set_object_gravity(obj, FL_SouthWest, FL_SouthEast); + fl_set_object_callback(obj, C_FormBaseInputCB, 0); { char const * const dummy = N_("Edit file|#E"); fdui->button_edit = obj = fl_add_button(FL_NORMAL_BUTTON, 435, 50, 110, 30, idex(_(dummy))); diff --git a/src/frontends/xforms/forms/form_external.fd b/src/frontends/xforms/forms/form_external.fd index 8061433acc..5168cc6401 100644 --- a/src/frontends/xforms/forms/form_external.fd +++ b/src/frontends/xforms/forms/form_external.fd @@ -117,8 +117,8 @@ shortcut: resize: FL_RESIZE_ALL gravity: FL_SouthWest FL_SouthEast name: input_parameters -callback: -argument: +callback: C_FormBaseInputCB +argument: 0 -------------------- class: FL_BUTTON diff --git a/src/insets/insetexternal.C b/src/insets/insetexternal.C index b95ae99397..bdf11c0945 100644 --- a/src/insets/insetexternal.C +++ b/src/insets/insetexternal.C @@ -34,9 +34,9 @@ using std::endl; InsetExternal::InsetExternal() - : view(0) + : view_(0) { - tempname = lyx::tempName(string(), "lyxext"); + tempname_ = lyx::tempName(string(), "lyxext"); //ExternalTemplateManager::Templates::const_iterator i1; params_.templ = ExternalTemplateManager::get().getTemplates().begin()->second; } @@ -44,7 +44,7 @@ InsetExternal::InsetExternal() InsetExternal::~InsetExternal() { - lyx::unlink(tempname); + lyx::unlink(tempname_); hideDialog(); } @@ -72,8 +72,8 @@ string const InsetExternal::EditMessage() const void InsetExternal::Edit(BufferView * bv, int /*x*/, int /*y*/, unsigned int /*button*/) { - view = bv; - view->owner()->getDialogs()->showExternal(this); + view_ = bv; + view_->owner()->getDialogs()->showExternal(this); } @@ -189,6 +189,7 @@ Inset * InsetExternal::Clone(Buffer const &) const { InsetExternal * inset = new InsetExternal(); inset->params_ = params_; + inset->view_ = view_; return inset; } @@ -227,7 +228,7 @@ string const InsetExternal::doSubstitution(Buffer const * buffer, result = subst(result, "$$Basename", basename); result = subst(result, "$$Parameters", params_.parameters); result = ReplaceEnvironmentPath(result); - result = subst(result, "$$Tempname", tempname); + result = subst(result, "$$Tempname", tempname_); result = subst(result, "$$Sysdir", system_lyxdir); // Handle the $$Contents(filename) syntax @@ -263,9 +264,9 @@ void InsetExternal::updateExternal() const if (cit == et.formats.end()) return; - executeCommand(doSubstitution(view->buffer(), + executeCommand(doSubstitution(view_->buffer(), (*cit).second.updateCommand), - view->buffer()); + view_->buffer()); } @@ -275,9 +276,9 @@ void InsetExternal::viewExternal() const if (et.automaticProduction) updateExternal(); - executeCommand(doSubstitution(view->buffer(), + executeCommand(doSubstitution(view_->buffer(), et.viewCommand), - view->buffer()); + view_->buffer()); } @@ -287,9 +288,9 @@ void InsetExternal::editExternal() const if (et.automaticProduction) updateExternal(); - executeCommand(doSubstitution(view->buffer(), + executeCommand(doSubstitution(view_->buffer(), et.editCommand), - view->buffer()); + view_->buffer()); } diff --git a/src/insets/insetexternal.h b/src/insets/insetexternal.h index 486c3244af..599619bde1 100644 --- a/src/insets/insetexternal.h +++ b/src/insets/insetexternal.h @@ -111,13 +111,13 @@ private: string const doSubstitution(Buffer const *, string const & s) const; /// our owning view - BufferView * view; + BufferView * view_; /// the current params Params params_; /// A temp filename - string tempname; + string tempname_; }; ///