Would anybody mind if I moved the InsetGraphics related stuff from
src/graphics to insets/insetGraphics*?

Like I started to do in the attached patch? [Not perfect, I know. Just
moving things around for starters]

Goal is better separation of functionality and possible code re-use for the
preview stuff.

Andre'

-- 
Those who desire to give up Freedom in order to gain Security,
will not have, nor do they deserve, either one. (T. Jefferson)
Index: graphics/GraphicsCache.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/graphics/GraphicsCache.C,v
retrieving revision 1.24
diff -u -p -r1.24 GraphicsCache.C
--- graphics/GraphicsCache.C    19 Apr 2002 09:17:05 -0000      1.24
+++ graphics/GraphicsCache.C    28 May 2002 10:19:32 -0000
@@ -55,7 +55,7 @@ void GCache::update(InsetGraphics const 
        // A subset only of InsetGraphicsParams is needed for display purposes.
        // The GraphicsParams c-tor also interrogates lyxrc to ascertain whether
        // to display or not.
-       GParams params(inset.params(), filepath);
+       GParams params = inset.params().asGParams(filepath);
 
        // Each inset can reference only one file, so check the cache for any
        // graphics files referenced by inset. If the name of this file is
Index: graphics/GraphicsCacheItem.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/graphics/GraphicsCacheItem.C,v
retrieving revision 1.33
diff -u -p -r1.33 GraphicsCacheItem.C
--- graphics/GraphicsCacheItem.C        16 Apr 2002 12:43:42 -0000      1.33
+++ graphics/GraphicsCacheItem.C        28 May 2002 10:19:32 -0000
@@ -631,7 +631,7 @@ struct Params_Changed {
        bool operator()(InsetGraphics const * inset)
        {
                string const path = OnlyPath(p_.filename);
-               return GParams(inset->params(), path) != p_;
+               return inset->params().asGParams(path) != p_;
        }
 
 private:
@@ -669,7 +669,7 @@ ModifiedItemPtr ModifiedItem::changeDisp
 
        ModifiedItemPtr new_item(new ModifiedItem(*this));
        new_item->insets = new_insets;
-       *(new_item->p_)  = GParams((*new_insets.begin())->params(), path);
+       *(new_item->p_) = (*new_insets.begin())->params().asGParams(path);
 
        new_item->setPixmap();
        return new_item;
Index: graphics/GraphicsParams.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/graphics/GraphicsParams.C,v
retrieving revision 1.13
diff -u -p -r1.13 GraphicsParams.C
--- graphics/GraphicsParams.C   1 May 2002 11:12:02 -0000       1.13
+++ graphics/GraphicsParams.C   28 May 2002 10:19:32 -0000
@@ -13,107 +13,17 @@
 #endif
 
 #include "GraphicsParams.h"
-#include "insets/insetgraphicsParams.h"
-#include "lyxrc.h"
-#include "debug.h"
-#include "support/filetools.h"
-#include "support/lstrings.h"
-#include "support/LAssert.h"
+#include "Lsstream.h"
+
 
 namespace grfx {
 
-GParams::GParams(InsetGraphicsParams const & iparams, string const & filepath)
+GParams::GParams()
        : width(0),
          height(0),
          scale(0),
          angle(0)
-{
-       filename = iparams.filename;
-       if (!filepath.empty()) {
-               filename = MakeAbsPath(filename, filepath);
-       }
-
-       if (iparams.clip) {
-               bb = iparams.bb;
-
-               // Get the original Bounding Box from the file
-               string const tmp = readBB_from_PSFile(filename);
-               lyxerr[Debug::GRAPHICS] << "BB_from_File: " << tmp << std::endl;
-               if (!tmp.empty()) {
-                       int const bb_orig_xl = strToInt(token(tmp, ' ', 0));
-                       int const bb_orig_yb = strToInt(token(tmp, ' ', 1));
-
-                       bb.xl -= bb_orig_xl;
-                       bb.xr -= bb_orig_xl;
-                       bb.yb -= bb_orig_yb;
-                       bb.yt -= bb_orig_yb;
-               }
-
-               bb.xl = std::max(0, bb.xl);
-               bb.xr = std::max(0, bb.xr);
-               bb.yb = std::max(0, bb.yb);
-               bb.yt = std::max(0, bb.yt);
-
-               // Paranoia check.
-               int const width  = bb.xr - bb.xl;
-               int const height = bb.yt - bb.yb;
-
-               if (width  < 0 || height < 0) {
-                       bb.xl = 0;
-                       bb.xr = 0;
-                       bb.yb = 0;
-                       bb.yt = 0;
-               }
-       }
-       
-       if (iparams.rotate)
-               angle = int(iparams.rotateAngle);
-
-       if (iparams.display == InsetGraphicsParams::DEFAULT) {
-
-               if (lyxrc.display_graphics == "mono")
-                       display = MONOCHROME;
-               else if (lyxrc.display_graphics == "gray")
-                       display = GRAYSCALE;
-               else if (lyxrc.display_graphics == "color")
-                       display = COLOR;
-               else
-                       display = NONE;
-
-       } else if (iparams.display == InsetGraphicsParams::NONE) {
-               display = NONE;
-
-       } else if (iparams.display == InsetGraphicsParams::MONOCHROME) {
-               display = MONOCHROME;
-
-       } else if (iparams.display == InsetGraphicsParams::GRAYSCALE) {
-               display = GRAYSCALE;
-
-       } else if (iparams.display == InsetGraphicsParams::COLOR) {
-               display = COLOR;
-       }
-
-       // Override the above if we're not using a gui
-       if (!lyxrc.use_gui) {
-               display = NONE;
-       }
-
-       if (iparams.lyxsize_type == InsetGraphicsParams::SCALE) {
-               scale = iparams.lyxscale;
-
-       } else if (iparams.lyxsize_type == InsetGraphicsParams::WH) {
-               if (!iparams.lyxwidth.zero())
-                       width  = iparams.lyxwidth.inPixels(1, 1);
-               if (!iparams.lyxheight.zero())
-                       height = iparams.lyxheight.inPixels(1, 1);
-
-               // inPixels returns a value scaled by lyxrc.zoom.
-               // We want, therefore, to undo this.
-               double const scaling_factor = 100.0 / double(lyxrc.zoom);
-               width  = uint(scaling_factor * width);
-               height = uint(scaling_factor * height);
-       }
-}
+{}
 
 
 bool operator==(GParams const & a, GParams const & b)
Index: graphics/GraphicsParams.h
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/graphics/GraphicsParams.h,v
retrieving revision 1.6
diff -u -p -r1.6 GraphicsParams.h
--- graphics/GraphicsParams.h   8 Apr 2002 16:51:46 -0000       1.6
+++ graphics/GraphicsParams.h   28 May 2002 10:19:32 -0000
@@ -22,7 +22,6 @@
 #include "LString.h"
 #include "lyxlength.h"
 
-class InsetGraphicsParams;
 
 namespace grfx {
 
@@ -49,7 +48,7 @@ bool operator!=(BoundingBox const &, Bou
 
 struct GParams
 {
-       GParams(InsetGraphicsParams const &, string const &);
+       GParams();
 
        /// How is the image to be displayed on the LyX screen?
        enum DisplayType {
Index: insets/insetgraphicsParams.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/insets/insetgraphicsParams.C,v
retrieving revision 1.37
diff -u -p -r1.37 insetgraphicsParams.C
--- insets/insetgraphicsParams.C        23 May 2002 09:21:28 -0000      1.37
+++ insets/insetgraphicsParams.C        28 May 2002 10:19:32 -0000
@@ -23,6 +23,9 @@
 #include "support/lyxlib.h"
 #include "support/LOstream.h"
 #include "support/LAssert.h"
+#include "support/lstrings.h"
+#include "lyxrc.h"
+#include "debug.h"
 
 
 using std::ostream;
@@ -301,4 +304,101 @@ bool InsetGraphicsParams::Read(LyXLex & 
                return false;
        }
        return true;
+}
+
+
+grfx::GParams InsetGraphicsParams::asGParams(string const & filepath) const
+{
+       grfx::GParams pars;
+       pars.width    = 0;
+       pars.height   = 0;
+       pars.scale    = 0;
+       pars.angle    = 0;
+       pars.filename = filename;
+
+       if (!filepath.empty()) {
+               pars.filename = MakeAbsPath(pars.filename, filepath);
+       }
+
+       if (clip) {
+               pars.bb = bb;
+
+               // Get the original Bounding Box from the file
+               string const tmp = readBB_from_PSFile(filename);
+               lyxerr[Debug::GRAPHICS] << "BB_from_File: " << tmp << std::endl;
+               if (!tmp.empty()) {
+                       int const bb_orig_xl = strToInt(token(tmp, ' ', 0));
+                       int const bb_orig_yb = strToInt(token(tmp, ' ', 1));
+
+                       pars.bb.xl -= bb_orig_xl;
+                       pars.bb.xr -= bb_orig_xl;
+                       pars.bb.yb -= bb_orig_yb;
+                       pars.bb.yt -= bb_orig_yb;
+               }
+
+               pars.bb.xl = std::max(0, pars.bb.xl);
+               pars.bb.xr = std::max(0, pars.bb.xr);
+               pars.bb.yb = std::max(0, pars.bb.yb);
+               pars.bb.yt = std::max(0, pars.bb.yt);
+
+               // Paranoia check.
+               int const width  = pars.bb.xr - pars.bb.xl;
+               int const height = pars.bb.yt - pars.bb.yb;
+
+               if (width  < 0 || height < 0) {
+                       pars.bb.xl = 0;
+                       pars.bb.xr = 0;
+                       pars.bb.yb = 0;
+                       pars.bb.yt = 0;
+               }
+       }
+       
+       if (rotate)
+               pars.angle = int(rotateAngle);
+
+       if (display == InsetGraphicsParams::DEFAULT) {
+
+               if (lyxrc.display_graphics == "mono")
+                       pars.display = grfx::GParams::MONOCHROME;
+               else if (lyxrc.display_graphics == "gray")
+                       pars.display = grfx::GParams::GRAYSCALE;
+               else if (lyxrc.display_graphics == "color")
+                       pars.display = grfx::GParams::COLOR;
+               else
+                       pars.display = grfx::GParams::NONE;
+
+       } else if (display == InsetGraphicsParams::NONE) {
+               pars.display = grfx::GParams::NONE;
+
+       } else if (display == InsetGraphicsParams::MONOCHROME) {
+               pars.display = grfx::GParams::MONOCHROME;
+
+       } else if (display == InsetGraphicsParams::GRAYSCALE) {
+               pars.display = grfx::GParams::GRAYSCALE;
+
+       } else if (display == InsetGraphicsParams::COLOR) {
+               pars.display = grfx::GParams::COLOR;
+       }
+
+       // Override the above if we're not using a gui
+       if (!lyxrc.use_gui) {
+               pars.display = grfx::GParams::NONE;
+       }
+
+       if (lyxsize_type == InsetGraphicsParams::SCALE) {
+               pars.scale = lyxscale;
+
+       } else if (lyxsize_type == InsetGraphicsParams::WH) {
+               if (!lyxwidth.zero())
+                       pars.width  = lyxwidth.inPixels(1, 1);
+               if (!lyxheight.zero())
+                       pars.height = lyxheight.inPixels(1, 1);
+
+               // inPixels returns a value scaled by lyxrc.zoom.
+               // We want, therefore, to undo this.
+               double const scaling_factor = 100.0 / double(lyxrc.zoom);
+               pars.width  = uint(scaling_factor * pars.width);
+               pars.height = uint(scaling_factor * pars.height);
+       }
+       return pars;
 }
Index: insets/insetgraphicsParams.h
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/insets/insetgraphicsParams.h,v
retrieving revision 1.19
diff -u -p -r1.19 insetgraphicsParams.h
--- insets/insetgraphicsParams.h        1 May 2002 10:23:51 -0000       1.19
+++ insets/insetgraphicsParams.h        28 May 2002 10:19:32 -0000
@@ -22,6 +22,9 @@
 #include "buffer.h"
 #include "lyxlex.h"
 
+#include "graphics/GraphicsParams.h"
+
+
 /// This struct holds all the parameters needed by insetGraphics.
 struct InsetGraphicsParams
 {
@@ -91,6 +94,8 @@ struct InsetGraphicsParams
        void Write(std::ostream & os) const;
        /// If the token belongs to our parameters, read it.
        bool Read(LyXLex & lex, string const & token);
+       /// convert 
+       grfx::GParams asGParams(string const & filepath) const;
 
 private:
        /// Initialize the object to a default status.

Reply via email to