X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FinsetgraphicsParams.C;h=c0cdd5fae8826669aa6d68d3e2c1ae08c78acc69;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=53c5647d5a35a589782bc43ad4f54f9fb7a225c0;hpb=92d522b7f1be6046adcac062c558bbf0bf021612;p=lyx.git diff --git a/src/insets/insetgraphicsParams.C b/src/insets/insetgraphicsParams.C index 53c5647d5a..c0cdd5fae8 100644 --- a/src/insets/insetgraphicsParams.C +++ b/src/insets/insetgraphicsParams.C @@ -4,30 +4,36 @@ * Licence details can be found in the file COPYING. * * \author Baruch Even - * \author Herbert Voss + * \author Herbert Voß * - * Full author contact details are available in file CREDITS + * Full author contact details are available in file CREDITS. */ #include - #include "insetgraphicsParams.h" +#include "debug.h" +#include "lyx_main.h" // for use_gui +#include "lyxlex.h" +#include "lyxrc.h" + #include "graphics/GraphicsParams.h" +#include "support/convert.h" #include "support/filetools.h" #include "support/lyxlib.h" -#include "support/LOstream.h" -#include "support/LAssert.h" #include "support/lstrings.h" -#include "lyxrc.h" -#include "debug.h" -#include "lyxlex.h" -#include "frontends/lyx_gui.h" +#include "support/translator.h" + -using namespace lyx::support; +namespace lyx { +using support::float_equal; +using support::readBB_from_PSFile; +using support::token; + +using std::string; using std::ostream; @@ -61,8 +67,8 @@ void InsetGraphicsParams::init() { filename.erase(); lyxscale = 100; // lyx scaling in percentage - display = grfx::DefaultDisplay; // display mode; see preferences - scale = 100.0; // output scaling in percentage + display = graphics::DefaultDisplay; // display mode; see preferences + scale = string(); // output scaling in percentage width = LyXLength(); height = LyXLength(); keepAspectRatio = false; // for LaTeX output @@ -72,7 +78,7 @@ void InsetGraphicsParams::init() bb = string(); // bounding box clip = false; // clip image - rotateAngle = 0.0; // angle of rotation in degrees + rotateAngle = "0"; // angle of rotation in degrees rotateOrigin.erase(); // Origin of rotation subcaption = false; // subfigure subcaptionText.erase(); // subfigure caption @@ -120,7 +126,7 @@ bool operator==(InsetGraphicsParams const & left, left.bb == right.bb && left.clip == right.clip && - float_equal(left.rotateAngle, right.rotateAngle, 0.001) && + left.rotateAngle == right.rotateAngle && left.rotateOrigin == right.rotateOrigin && left.subcaption == right.subcaption && left.subcaptionText == right.subcaptionText && @@ -144,14 +150,14 @@ 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'; - if (display != grfx::DefaultDisplay) - os << "\tdisplay " << grfx::displayTranslator.find(display) << '\n'; - if (!float_equal(scale, 0.0, 0.05)) { - if (!float_equal(scale, 100.0, 0.05)) + if (display != graphics::DefaultDisplay) + os << "\tdisplay " << graphics::displayTranslator().find(display) << '\n'; + if (!scale.empty() && !float_equal(convert(scale), 0.0, 0.05)) { + if (!float_equal(convert(scale), 100.0, 0.05)) os << "\tscale " << scale << '\n'; } else { if (!width.zero()) @@ -172,7 +178,8 @@ void InsetGraphicsParams::Write(ostream & os, string const & bufpath) const if (clip) // clip image os << "\tclip\n"; - if (rotateAngle != 0.0) + if (!rotateAngle.empty() + && !float_equal(convert(rotateAngle), 0.0, 0.001)) os << "\trotateAngle " << rotateAngle << '\n'; if (!rotateOrigin.empty()) os << "\trotateOrigin " << rotateOrigin << '\n'; @@ -189,25 +196,25 @@ 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(); } else if (token == "display") { lex.next(); string const type = lex.getString(); - display = grfx::displayTranslator.find(type); + display = graphics::displayTranslator().find(type); } else if (token == "scale") { lex.next(); - scale = lex.getFloat(); + scale = lex.getString(); } else if (token == "width") { lex.next(); width = LyXLength(lex.getString()); - scale = 0.0; + scale = string(); } else if (token == "height") { lex.next(); height = LyXLength(lex.getString()); - scale = 0.0; + scale = string(); } else if (token == "keepAspectRatio") { keepAspectRatio = true; } else if (token == "draft") { @@ -226,7 +233,7 @@ bool InsetGraphicsParams::Read(LyXLex & lex, string const & token, string const clip = true; } else if (token == "rotateAngle") { lex.next(); - rotateAngle = lex.getFloat(); + rotateAngle = lex.getString(); } else if (token == "rotateOrigin") { lex.next(); rotateOrigin=lex.getString(); @@ -256,12 +263,12 @@ bool InsetGraphicsParams::Read(LyXLex & lex, string const & token, string const } -grfx::Params InsetGraphicsParams::as_grfxParams() const +graphics::Params InsetGraphicsParams::as_grfxParams() const { - grfx::Params pars; + graphics::Params pars; pars.filename = filename; pars.scale = lyxscale; - pars.angle = rotateAngle; + pars.angle = convert(rotateAngle); if (clip) { pars.bb = bb; @@ -270,8 +277,11 @@ grfx::Params InsetGraphicsParams::as_grfxParams() const string const tmp = readBB_from_PSFile(filename); lyxerr[Debug::GRAPHICS] << "BB_from_File: " << tmp << std::endl; if (!tmp.empty()) { - unsigned int const bb_orig_xl = strToInt(token(tmp, ' ', 0)); - unsigned int const bb_orig_yb = strToInt(token(tmp, ' ', 1)); +#ifdef WITH_WARNINGS +# warning why not convert to unsigned int? (Lgb) +#endif + unsigned int const bb_orig_xl = convert(token(tmp, ' ', 0)); + unsigned int const bb_orig_yb = convert(token(tmp, ' ', 1)); // new pars.bb values must be >= zero if (pars.bb.xl > bb_orig_xl) @@ -307,16 +317,19 @@ grfx::Params InsetGraphicsParams::as_grfxParams() const } } - if (display == grfx::DefaultDisplay) { + if (display == graphics::DefaultDisplay) { pars.display = lyxrc.display_graphics; } else { pars.display = display; } // Override the above if we're not using a gui - if (!lyx_gui::use_gui) { - pars.display = grfx::NoDisplay; + if (!use_gui) { + pars.display = graphics::NoDisplay; } return pars; } + + +} // namespace lyx