]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetgraphicsParams.C
prevent crash when inserting minipage in table cell,
[lyx.git] / src / insets / insetgraphicsParams.C
index f9e7f29ce7f322ccb0c9aac489822c78aa50a992..12ab7177709bbfd5c069082726a9c8747dd604cc 100644 (file)
@@ -21,6 +21,7 @@
 #include "support/LOstream.h"
 #include "support/LAssert.h"
 #include "support/lstrings.h"
+#include "support/translator.h"
 #include "lyxrc.h"
 #include "debug.h"
 #include "lyxlex.h"
@@ -30,6 +31,13 @@ using namespace lyx::support;
 
 using std::ostream;
 
+namespace lyx {
+namespace graphics {
+/// The translator between the DisplayType and the corresponding lyx string.
+extern Translator<DisplayType, string> displayTranslator;
+}
+}
+
 
 InsetGraphicsParams::InsetGraphicsParams()
 {
@@ -144,7 +152,7 @@ void InsetGraphicsParams::Write(ostream & os, string const & bufpath) const
        // Do not write the default values
 
        if (!filename.empty()) {
-               os << "\tfilename " << MakeRelPath(filename, bufpath) << '\n';
+               os << "\tfilename " << filename.outputFilename(bufpath) << '\n';
        }
        if (lyxscale != 100)
                os << "\tlyxscale " << lyxscale << '\n';
@@ -189,7 +197,7 @@ bool InsetGraphicsParams::Read(LyXLex & lex, string const & token, string const
 {
        if (token == "filename") {
                lex.eatLine();
-               filename = MakeAbsPath(lex.getString(), bufpath);
+               filename.set(lex.getString(), bufpath);
        } else if (token == "lyxscale") {
                lex.next();
                lyxscale = lex.getInteger();
@@ -259,7 +267,7 @@ bool InsetGraphicsParams::Read(LyXLex & lex, string const & token, string const
 lyx::graphics::Params InsetGraphicsParams::as_grfxParams() const
 {
        lyx::graphics::Params pars;
-       pars.filename = filename;
+       pars.filename = filename.absFilename();
        pars.scale = lyxscale;
        pars.angle = rotateAngle;
 
@@ -267,7 +275,7 @@ lyx::graphics::Params InsetGraphicsParams::as_grfxParams() const
                pars.bb = bb;
 
                // Get the original Bounding Box from the file
-               string const tmp = readBB_from_PSFile(filename);
+               string const tmp = readBB_from_PSFile(filename.absFilename());
                lyxerr[Debug::GRAPHICS] << "BB_from_File: " << tmp << std::endl;
                if (!tmp.empty()) {
                        unsigned int const bb_orig_xl = strToInt(token(tmp, ' ', 0));