]> git.lyx.org Git - features.git/commitdiff
John's external material patch
authorAngus Leeming <leeming@lyx.org>
Wed, 11 Apr 2001 17:14:20 +0000 (17:14 +0000)
committerAngus Leeming <leeming@lyx.org>
Wed, 11 Apr 2001 17:14:20 +0000 (17:14 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1909 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/controllers/ChangeLog
src/frontends/controllers/ControlExternal.C
src/frontends/xforms/ChangeLog
src/frontends/xforms/form_external.C
src/frontends/xforms/forms/form_external.fd
src/insets/insetexternal.C
src/insets/insetexternal.h

index 735afab7d4fcd790d06a8927e8e2d43decec5758..972ab96a4df69166525a269e7ae43b4550290e60 100644 (file)
@@ -1,3 +1,8 @@
+2001-04-06  John Levon  <moz@compsoc.man.ac.uk>
+
+       * ControlExternal.C: from Angus, clone the new InsetExternal
+         before acting on it
+
 2001-04-09  Angus Leeming  <a.leeming@ic.ac.uk>
 
        * helper_funcs.C (getStringFromVector, getVectorFromString): fixed bugs
index 7a023138210ed6bd4741c7f7931ce2cb5167e239..a294c1283aa578e6ca0e122ba8809f0c7b8a4176 100644 (file)
@@ -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<InsetExternal> ie;
+       ie.reset(static_cast<InsetExternal *>(inset()->Clone(*lv_.buffer())));
+       ie->setFromParams(params());
 
-       ie.editExternal();
+       ie->editExternal();
 }
 
 void ControlExternal::viewExternal()
 {
        view().apply();
 
-       InsetExternal ie;
-       ie.setFromParams(params());
+       boost::scoped_ptr<InsetExternal> ie;
+       ie.reset(static_cast<InsetExternal *>(inset()->Clone(*lv_.buffer())));
+       ie->setFromParams(params());
 
-       ie.viewExternal();
+       ie->viewExternal();
 }
 
 void ControlExternal::updateExternal()
 {
        view().apply();
 
-       InsetExternal ie;
-       ie.setFromParams(params());
+       boost::scoped_ptr<InsetExternal> ie;
+       ie.reset(static_cast<InsetExternal *>(inset()->Clone(*lv_.buffer())));
+       ie->setFromParams(params());
 
-       ie.updateExternal();
+       ie->updateExternal();
 }
 
 vector<string> const ControlExternal::getTemplates() const
index d13fa39a1b5ad2b39bf19b6387592880b60d1384..864da918d703c7dbc464e70a2410dca6aff2c44d 100644 (file)
@@ -1,3 +1,7 @@
+2001-04-06  John Levon  <moz@compsoc.man.ac.uk>
+
+       * forms/form_external.fd: make params update state (from Angus)
+
 2001-04-05  Jean-Marc Lasgouttes  <Jean-Marc.Lasgouttes@inria.fr>
 
        * Menubar_pimpl.C: include gettext.h
index 73b6c3d0959772669acfb0e468d219842fa46336..ea9e8bbb37c50e89a54f8e2ea3d7a3ddfda0891c 100644 (file)
@@ -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)));
index 8061433accded451da13bc09462d52276a915fba..5168cc6401f30cad698b77dbccb9282ca6de1b21 100644 (file)
@@ -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
index b95ae9939712e1e54a7c91b8c27d058cdc9ffa8e..bdf11c0945a90163ee52cf607d9917da2a0688a2 100644 (file)
@@ -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());
 }
 
 
index 486c3244af855cfb9557e44da8fe39a9c9ad452b..599619bde148171e4d9905aa321fec9c4153bcf7 100644 (file)
@@ -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_;
 };
 
 ///