float2string changes #1 (Graphics)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9404 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jürgen Spitzmüller 2004-12-28 11:23:05 +00:00
parent e3ff1652a1
commit ec0c2e5bc0
4 changed files with 28 additions and 22 deletions

View File

@ -1,3 +1,7 @@
2004-12-28 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
* insetgraphics.C:
* insetgraphicsParams.[Ch]: store all values as strings.
2004-12-17 Alfredo Braunstein <abraunst@lyx.org>

View File

@ -76,7 +76,8 @@ TODO
#include "support/filetools.h"
#include "support/lyxalgo.h" // lyx::count
#include "support/lyxlib.h" // float_equal
#include "support/lyxlib.h" // lyx::sum
#include "support/lstrings.h"
#include "support/os.h"
#include "support/systemcall.h"
@ -93,12 +94,12 @@ using lyx::support::ChangeExtension;
using lyx::support::compare_timestamps;
using lyx::support::contains;
using lyx::support::FileName;
using lyx::support::float_equal;
using lyx::support::GetExtension;
using lyx::support::IsFileReadable;
using lyx::support::LibFileSearch;
using lyx::support::OnlyFilename;
using lyx::support::rtrim;
using lyx::support::strToDbl;
using lyx::support::subst;
using lyx::support::Systemcall;
using lyx::support::unzipFile;
@ -298,9 +299,9 @@ string const InsetGraphics::createLatexOptions() const
options << " draft,\n";
if (params().clip)
options << " clip,\n";
if (!float_equal(params().scale, 0.0, 0.05)) {
if (!float_equal(params().scale, 100.0, 0.05))
options << " scale=" << params().scale / 100.0
if (!params().scale.empty() && params().scale != "0") {
if (params().scale != "100")
options << " scale=" << strToDbl(params().scale) / 100.0
<< ",\n";
} else {
if (!params().width.zero())
@ -313,7 +314,7 @@ string const InsetGraphics::createLatexOptions() const
// Make sure rotation angle is not very close to zero;
// a float can be effectively zero but not exactly zero.
if (!float_equal(params().rotateAngle, 0, 0.001)) {
if (!params().rotateAngle.empty() && params().rotateAngle != "0") {
options << " angle=" << params().rotateAngle << ",\n";
if (!params().rotateOrigin.empty()) {
options << " origin=" << params().rotateOrigin[0];
@ -402,9 +403,10 @@ string const InsetGraphics::createDocBookAttributes() const
// Right now it only works with my version of db2latex :-)
ostringstream options;
if (!float_equal(params().scale, 0.0, 0.05)) {
if (!float_equal(params().scale, 100.0, 0.05))
options << " scale=\"" << static_cast<int>( (params().scale) + 0.5 )
if (!params().scale.empty() && params().scale != "0") {
if (params().scale != "100")
options << " scale=\""
<< static_cast<int>( (strToDbl(params().scale)) + 0.5 )
<< "\" ";
} else {
if (!params().width.zero()) {

View File

@ -66,7 +66,7 @@ void InsetGraphicsParams::init()
filename.erase();
lyxscale = 100; // lyx scaling in percentage
display = lyx::graphics::DefaultDisplay; // display mode; see preferences
scale = 100.0; // output scaling in percentage
scale = string(); // output scaling in percentage
width = LyXLength();
height = LyXLength();
keepAspectRatio = false; // for LaTeX output
@ -76,7 +76,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
@ -124,7 +124,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 &&
@ -154,8 +154,8 @@ void InsetGraphicsParams::Write(ostream & os, string const & bufpath) const
os << "\tlyxscale " << lyxscale << '\n';
if (display != lyx::graphics::DefaultDisplay)
os << "\tdisplay " << lyx::graphics::displayTranslator().find(display) << '\n';
if (!float_equal(scale, 0.0, 0.05)) {
if (!float_equal(scale, 100.0, 0.05))
if (!scale.empty() && scale != "0") {
if (scale != "100")
os << "\tscale " << scale << '\n';
} else {
if (!width.zero())
@ -176,7 +176,7 @@ void InsetGraphicsParams::Write(ostream & os, string const & bufpath) const
if (clip) // clip image
os << "\tclip\n";
if (rotateAngle != 0.0)
if (!rotateAngle.empty() && rotateAngle != "0")
os << "\trotateAngle " << rotateAngle << '\n';
if (!rotateOrigin.empty())
os << "\trotateOrigin " << rotateOrigin << '\n';
@ -203,15 +203,15 @@ bool InsetGraphicsParams::Read(LyXLex & lex, string const & token, string const
display = lyx::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") {
@ -230,7 +230,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();
@ -265,7 +265,7 @@ lyx::graphics::Params InsetGraphicsParams::as_grfxParams() const
lyx::graphics::Params pars;
pars.filename = filename.absFilename();
pars.scale = lyxscale;
pars.angle = rotateAngle;
pars.angle = lyx::support::strToDbl(rotateAngle);
if (clip) {
pars.bb = bb;

View File

@ -37,7 +37,7 @@ struct InsetGraphicsParams
/// How to display the image inside LyX
lyx::graphics::DisplayType display;
/// Scaling for output (LaTeX)
float scale;
std::string scale;
/// sizes for output (LaTeX)
LyXLength width;
///
@ -55,7 +55,7 @@ struct InsetGraphicsParams
bool clip;
/// Rotation angle.
float rotateAngle;
std::string rotateAngle;
/// Origin point of rotation
std::string rotateOrigin;
/// Do we have a subcaption?