Fleshed out remainder of XmlUtil. Units cleanup.

This commit is contained in:
Jim Evins
2015-08-27 00:30:54 -04:00
parent 38450ebb2d
commit 000c7f69e5
13 changed files with 113 additions and 139 deletions
+1 -1
View File
@@ -62,7 +62,7 @@ namespace libglabels
virtual double w() const = 0; virtual double w() const = 0;
virtual double h() const = 0; virtual double h() const = 0;
virtual const QString sizeDescription( const Units* units ) const = 0; virtual const QString sizeDescription( const Units& units ) const = 0;
virtual bool isSimilarTo( Frame* other ) const = 0; virtual bool isSimilarTo( Frame* other ) const = 0;
virtual const QPainterPath& path() const = 0; virtual const QPainterPath& path() const = 0;
+6 -6
View File
@@ -80,22 +80,22 @@ namespace libglabels
} }
const QString FrameCd::sizeDescription( const Units* units ) const const QString FrameCd::sizeDescription( const Units& units ) const
{ {
if ( units->id() == "in" ) if ( units.id() == "in" )
{ {
QString dStr = StrUtil::formatFraction( 2 * mR1 * units->unitsPerPoint() ); QString dStr = StrUtil::formatFraction( 2 * mR1 * units.unitsPerPoint() );
return QString().sprintf( "%s %s %s", return QString().sprintf( "%s %s %s",
qPrintable(dStr), qPrintable(dStr),
qPrintable(units->name()), qPrintable(units.name()),
qPrintable(tr("diameter")) ); qPrintable(tr("diameter")) );
} }
else else
{ {
return QString().sprintf( "%.5g %s %s", return QString().sprintf( "%.5g %s %s",
2 * mR1 * units->unitsPerPoint(), 2 * mR1 * units.unitsPerPoint(),
qPrintable(units->name()), qPrintable(units.name()),
qPrintable(tr("diameter")) ); qPrintable(tr("diameter")) );
} }
} }
+1 -1
View File
@@ -43,7 +43,7 @@ namespace libglabels
double w() const; double w() const;
double h() const; double h() const;
const QString sizeDescription( const Units* units ) const; const QString sizeDescription( const Units& units ) const;
bool isSimilarTo( Frame* other ) const; bool isSimilarTo( Frame* other ) const;
const QPainterPath& path() const; const QPainterPath& path() const;
+8 -8
View File
@@ -59,24 +59,24 @@ namespace libglabels
} }
const QString FrameEllipse::sizeDescription( const Units* units ) const const QString FrameEllipse::sizeDescription( const Units& units ) const
{ {
if ( units->id() == "in" ) if ( units.id() == "in" )
{ {
QString wStr = StrUtil::formatFraction( mW * units->unitsPerPoint() ); QString wStr = StrUtil::formatFraction( mW * units.unitsPerPoint() );
QString hStr = StrUtil::formatFraction( mH * units->unitsPerPoint() ); QString hStr = StrUtil::formatFraction( mH * units.unitsPerPoint() );
return QString().sprintf( "%s x %s %s", return QString().sprintf( "%s x %s %s",
qPrintable(wStr), qPrintable(wStr),
qPrintable(hStr), qPrintable(hStr),
qPrintable(units->name()) ); qPrintable(units.name()) );
} }
else else
{ {
return QString().sprintf( "%.5g x %.5g %s", return QString().sprintf( "%.5g x %.5g %s",
mW * units->unitsPerPoint(), mW * units.unitsPerPoint(),
mH * units->unitsPerPoint(), mH * units.unitsPerPoint(),
qPrintable(units->name()) ); qPrintable(units.name()) );
} }
} }
+1 -1
View File
@@ -42,7 +42,7 @@ namespace libglabels
double w() const; double w() const;
double h() const; double h() const;
const QString sizeDescription( const Units* units ) const; const QString sizeDescription( const Units& units ) const;
bool isSimilarTo( Frame* other ) const; bool isSimilarTo( Frame* other ) const;
const QPainterPath& path() const; const QPainterPath& path() const;
+8 -8
View File
@@ -61,24 +61,24 @@ namespace libglabels
} }
const QString FrameRect::sizeDescription( const Units* units ) const const QString FrameRect::sizeDescription( const Units& units ) const
{ {
if ( units->id() == "in" ) if ( units.id() == "in" )
{ {
QString wStr = StrUtil::formatFraction( mW * units->unitsPerPoint() ); QString wStr = StrUtil::formatFraction( mW * units.unitsPerPoint() );
QString hStr = StrUtil::formatFraction( mH * units->unitsPerPoint() ); QString hStr = StrUtil::formatFraction( mH * units.unitsPerPoint() );
return QString().sprintf( "%s x %s %s", return QString().sprintf( "%s x %s %s",
qPrintable(wStr), qPrintable(wStr),
qPrintable(hStr), qPrintable(hStr),
qPrintable(units->name()) ); qPrintable(units.name()) );
} }
else else
{ {
return QString().sprintf( "%.5g x %.5g %s", return QString().sprintf( "%.5g x %.5g %s",
mW * units->unitsPerPoint(), mW * units.unitsPerPoint(),
mH * units->unitsPerPoint(), mH * units.unitsPerPoint(),
qPrintable(units->name()) ); qPrintable(units.name()) );
} }
} }
+1 -1
View File
@@ -48,7 +48,7 @@ namespace libglabels
double w() const; double w() const;
double h() const; double h() const;
const QString sizeDescription( const Units* units ) const; const QString sizeDescription( const Units& units ) const;
bool isSimilarTo( Frame* other ) const; bool isSimilarTo( Frame* other ) const;
+6 -6
View File
@@ -60,22 +60,22 @@ namespace libglabels
} }
const QString FrameRound::sizeDescription( const Units* units ) const const QString FrameRound::sizeDescription( const Units& units ) const
{ {
if ( units->id() == "in" ) if ( units.id() == "in" )
{ {
QString dStr = StrUtil::formatFraction( 2 * mR * units->unitsPerPoint() ); QString dStr = StrUtil::formatFraction( 2 * mR * units.unitsPerPoint() );
return QString().sprintf( "%s %s %s", return QString().sprintf( "%s %s %s",
qPrintable(dStr), qPrintable(dStr),
qPrintable(units->name()), qPrintable(units.name()),
qPrintable(tr("diameter")) ); qPrintable(tr("diameter")) );
} }
else else
{ {
return QString().sprintf( "%.5g %s %s", return QString().sprintf( "%.5g %s %s",
2 * mR * units->unitsPerPoint(), 2 * mR * units.unitsPerPoint(),
qPrintable(units->name()), qPrintable(units.name()),
qPrintable(tr("diameter")) ); qPrintable(tr("diameter")) );
} }
} }
+1 -1
View File
@@ -43,7 +43,7 @@ namespace libglabels
double w() const; double w() const;
double h() const; double h() const;
const QString sizeDescription( const Units* units ) const; const QString sizeDescription( const Units& units ) const;
bool isSimilarTo( Frame* other ) const; bool isSimilarTo( Frame* other ) const;
const QPainterPath& path() const; const QPainterPath& path() const;
+17 -46
View File
@@ -43,7 +43,13 @@ namespace libglabels
} }
Units *Units::fromId( const QString &id ) Units::Units()
: mId("pt"), mName(tr("points")), mPointsPerUnit(POINTS_PER_POINT)
{
}
Units Units::fromId( const QString &id )
{ {
if ( id == "pt" ) if ( id == "pt" )
{ {
@@ -79,68 +85,33 @@ namespace libglabels
} }
Units *Units::point() Units Units::point()
{ {
static Units *instance = NULL; return Units( "pt", tr("points"), POINTS_PER_POINT );
if ( instance == NULL )
{
instance = new Units( "pt", tr("points"), POINTS_PER_POINT );
}
return instance;
} }
Units *Units::inch() Units Units::inch()
{ {
static Units *instance = NULL; return Units( "in", tr("inches"), POINTS_PER_INCH );
if ( instance == NULL )
{
instance = new Units( "in", tr("inches"), POINTS_PER_INCH );
}
return instance;
} }
Units *Units::mm() Units Units::mm()
{ {
static Units *instance = NULL; return Units( "mm", tr("mm"), POINTS_PER_MM );
if ( instance == NULL )
{
instance = new Units( "mm", tr("mm"), POINTS_PER_MM );
}
return instance;
} }
Units *Units::cm() Units Units::cm()
{ {
static Units *instance = NULL; return Units( "cm", tr("cm"), POINTS_PER_CM );
if ( instance == NULL )
{
instance = new Units( "cm", tr("cm"), POINTS_PER_CM );
}
return instance;
} }
Units *Units::pica() Units Units::pica()
{ {
static Units *instance = NULL; return Units( "pc", tr("picas"), POINTS_PER_PICA );
if ( instance == NULL )
{
instance = new Units( "pc", tr("picas"), POINTS_PER_PICA );
}
return instance;
} }
+8 -6
View File
@@ -39,23 +39,25 @@ namespace libglabels
Units( const QString &id, const QString &name, double pointsPerUnit ); Units( const QString &id, const QString &name, double pointsPerUnit );
public: public:
Units();
QString id() const; QString id() const;
QString name() const; QString name() const;
double pointsPerUnit() const; double pointsPerUnit() const;
double unitsPerPoint() const; double unitsPerPoint() const;
static Units *fromId( const QString &id ); static Units fromId( const QString &id );
static Units *point(); static Units point();
static Units *inch(); static Units inch();
static Units *mm(); static Units mm();
static Units *cm(); static Units cm();
static Units *pica(); static Units pica();
static bool isIdValid( QString id ); static bool isIdValid( QString id );
+30 -29
View File
@@ -27,7 +27,7 @@
namespace libglabels namespace libglabels
{ {
Units* XmlUtil::mDefaultUnits; Units XmlUtil::mDefaultUnits;
XmlUtil::XmlUtil() XmlUtil::XmlUtil()
@@ -42,13 +42,13 @@ namespace libglabels
} }
const Units* XmlUtil::defaultUnits() Units XmlUtil::defaultUnits()
{ {
return mDefaultUnits; return mDefaultUnits;
} }
void XmlUtil::setDefaultUnits( Units* defaultUnits ) void XmlUtil::setDefaultUnits( const Units& defaultUnits )
{ {
mDefaultUnits = defaultUnits; mDefaultUnits = defaultUnits;
} }
@@ -210,60 +210,61 @@ namespace libglabels
return default_value; return default_value;
} }
Units* units = Units::fromId( unitsString ); Units units = Units::fromId( unitsString );
return value* units->pointsPerUnit(); return value * units.pointsPerUnit();
} }
return default_value; return default_value;
} }
void XmlUtil::setStringAttr( const QDomElement& node, void XmlUtil::setStringAttr( QDomElement& node,
const QString& name, const QString& name,
const QString& value ) const QString& value )
{ {
// TODO node.setAttribute( name, value );
} }
void XmlUtil::setDoubleAttr( const QDomElement& node, void XmlUtil::setDoubleAttr( QDomElement& node,
const QString& name, const QString& name,
double value ) double value )
{ {
// TODO node.setAttribute( name, QString::number(value) );
} }
void XmlUtil::setBoolAttr( const QDomElement& node, void XmlUtil::setBoolAttr( QDomElement& node,
const QString& name, const QString& name,
bool value ) bool value )
{ {
// TODO node.setAttribute( name, value ? "true" : "false" );
} }
void XmlUtil::setIntAttr( const QDomElement& node, void XmlUtil::setIntAttr( QDomElement& node,
const QString& name, const QString& name,
int value ) int value )
{ {
// TODO node.setAttribute( name, QString::number(value) );
} }
void XmlUtil::setUIntAttr( const QDomElement& node, void XmlUtil::setUIntAttr( QDomElement& node,
const QString& name, const QString& name,
uint32_t value ) uint32_t value )
{ {
// TODO node.setAttribute( name, "0x" + QString::number(value, 16) );
} }
void XmlUtil::setLengthAttr( const QDomElement& node, void XmlUtil::setLengthAttr( QDomElement& node,
const QString& name, const QString& name,
double value ) double value )
{ {
// TODO value *= mDefaultUnits.unitsPerPoint();
node.setAttribute( name, QString::number(value) + mDefaultUnits.id() );
} }
} }
+25 -25
View File
@@ -41,8 +41,8 @@ namespace libglabels
static void init(); static void init();
static const Units* defaultUnits(); static Units defaultUnits();
static void setDefaultUnits( Units* defaultUnits ); static void setDefaultUnits( const Units& defaultUnits );
static QString getStringAttr( const QDomElement& node, static QString getStringAttr( const QDomElement& node,
const QString& name, const QString& name,
@@ -72,32 +72,32 @@ namespace libglabels
const QString& name, const QString& name,
double default_value ); double default_value );
static void setStringAttr( const QDomElement& node, static void setStringAttr( QDomElement& node,
const QString& name,
const QString& value );
static void setDoubleAttr( const QDomElement& node,
const QString& name,
double value );
static void setBoolAttr( const QDomElement& node,
const QString& name,
bool value );
static void setIntAttr( const QDomElement& node,
const QString& name,
int value );
static void setUIntAttr( const QDomElement& node,
const QString& name,
uint32_t value );
static void setLengthAttr( const QDomElement& node,
const QString& name, const QString& name,
double value ); const QString& value );
static void setDoubleAttr( QDomElement& node,
const QString& name,
double value );
static void setBoolAttr( QDomElement& node,
const QString& name,
bool value );
static void setIntAttr( QDomElement& node,
const QString& name,
int value );
static void setUIntAttr( QDomElement& node,
const QString& name,
uint32_t value );
static void setLengthAttr( QDomElement& node,
const QString& name,
double value );
private: private:
static Units* mDefaultUnits; static Units mDefaultUnits;
}; };