]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetGraphicsParams.cpp
This should be the last of the commits refactoring the InsetLayout code.
[lyx.git] / src / insets / InsetGraphicsParams.cpp
index 8fee672724347f4418e7314529a1691afaafe53f..c7419b39eaeae8f77d04c0c342c8feadab7e013c 100644 (file)
@@ -13,7 +13,6 @@
 
 #include "InsetGraphicsParams.h"
 
-#include "support/debug.h"
 #include "LyX.h" // for use_gui
 #include "Lexer.h"
 #include "LyXRC.h"
@@ -23,6 +22,7 @@
 #include "graphics/GraphicsTypes.h"
 
 #include "support/convert.h"
+#include "support/debug.h"
 #include "support/filetools.h"
 #include "support/lyxlib.h"
 #include "support/lstrings.h"
 
 #include <ostream>
 
+using namespace std;
+using namespace lyx::support;
 
 namespace lyx {
 
-using support::float_equal;
-using support::readBB_from_PSFile;
-using support::token;
-using support::DocFileName;
-
-using std::string;
-using std::ostream;
-
 
 InsetGraphicsParams::InsetGraphicsParams()
 {
@@ -151,8 +145,7 @@ void InsetGraphicsParams::Write(ostream & os, Buffer const & buffer) const
        // Do not write the default values
        if (!filename.empty()) {
                os << "\tfilename " << filename.outputFilename(buffer.filePath()) << '\n';
-               os << "\tinzipName " << filename.inzipName() << '\n';
-               os << "\tembed " << (filename.embedded() ? "true" : "false") << '\n';
+               os << "\tembed " << (filename.embedded() ? filename.inzipName() : "\"\"") << '\n';
        }
        if (lyxscale != 100)
                os << "\tlyxscale " << lyxscale << '\n';
@@ -202,11 +195,15 @@ bool InsetGraphicsParams::Read(Lexer & lex, string const & token, string const &
                lex.eatLine();
                filename.set(lex.getString(), bufpath);
        } else if (token == "inzipName") {
+               // this option is currently ignored because only files in
+               // or under current document path is embeddable, and their
+               // inzipName is automatically determined.
                lex.eatLine();
-               filename.setInzipName(lex.getString());
        } else if (token == "embed") {
                lex.next();
-               filename.setEmbed(lex.getBool());               
+               string const name = lex.getString();
+               filename.setInzipName(name);
+               filename.setEmbed(!name.empty());
        } else if (token == "lyxscale") {
                lex.next();
                lyxscale = lex.getInteger();
@@ -278,7 +275,8 @@ bool InsetGraphicsParams::Read(Lexer & lex, string const & token, string const &
 graphics::Params InsetGraphicsParams::as_grfxParams() const
 {
        graphics::Params pars;
-       pars.filename = filename;
+       pars.filename = filename.availableFile();
+       pars.icon = filename.embedded() ? "pin.png" : "";
        pars.scale = lyxscale;
        pars.angle = convert<double>(rotateAngle);