PropertiesView and View now follow Settings::units.
This commit is contained in:
@@ -26,6 +26,7 @@ set (libglabels_sources
|
||||
XmlTemplateCreator.cpp
|
||||
XmlUtil.cpp
|
||||
MiniPreviewPixmap.cpp
|
||||
Units.cpp
|
||||
Distance.cpp
|
||||
)
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace glabels
|
||||
const double PTS_PER_INCH = 72.0;
|
||||
const double PTS_PER_MM = 2.83464566929;
|
||||
const double PTS_PER_CM = (10.0*PTS_PER_MM);
|
||||
const double PTS_PER_PICA = (1.0/12.0);
|
||||
const double PTS_PER_PICA = 12.0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
+79
-128
@@ -27,125 +27,9 @@
|
||||
namespace glabels
|
||||
{
|
||||
|
||||
QString Distance::toId( Units units )
|
||||
Distance::Distance( double d, Units::Enum unitsEnum )
|
||||
{
|
||||
QString idString;
|
||||
|
||||
switch (units)
|
||||
{
|
||||
case Units::PT:
|
||||
idString = "pt";
|
||||
break;
|
||||
case Units::IN:
|
||||
idString = "in";
|
||||
break;
|
||||
case Units::MM:
|
||||
idString = "mm";
|
||||
break;
|
||||
case Units::CM:
|
||||
idString = "cm";
|
||||
break;
|
||||
case Units::PC:
|
||||
idString = "pc";
|
||||
break;
|
||||
}
|
||||
|
||||
return idString;
|
||||
}
|
||||
|
||||
|
||||
QString Distance::toTrName( Units units )
|
||||
{
|
||||
QString nameString;
|
||||
|
||||
switch (units)
|
||||
{
|
||||
case Units::PT:
|
||||
nameString = tr("points");
|
||||
break;
|
||||
case Units::IN:
|
||||
nameString = tr("inches");
|
||||
break;
|
||||
case Units::MM:
|
||||
nameString = tr("mm");
|
||||
break;
|
||||
case Units::CM:
|
||||
nameString = tr("cm");
|
||||
break;
|
||||
case Units::PC:
|
||||
nameString = tr("picas");
|
||||
break;
|
||||
}
|
||||
|
||||
return nameString;
|
||||
}
|
||||
|
||||
|
||||
bool Distance::isIdValid( const QString& unitsId )
|
||||
{
|
||||
bool retValue = false;
|
||||
|
||||
if ( unitsId == "pt" )
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
else if ( unitsId == "in" )
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
else if ( unitsId == "mm" )
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
else if ( unitsId == "cm" )
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
else if ( unitsId == "pc" )
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
|
||||
Distance::Units Distance::toUnits( const QString& unitsId )
|
||||
{
|
||||
Units units;
|
||||
|
||||
if ( unitsId == "pt" )
|
||||
{
|
||||
units = Units::PT;
|
||||
}
|
||||
else if ( unitsId == "in" )
|
||||
{
|
||||
units = Units::IN;
|
||||
}
|
||||
else if ( unitsId == "mm" )
|
||||
{
|
||||
units = Units::MM;
|
||||
}
|
||||
else if ( unitsId == "cm" )
|
||||
{
|
||||
units = Units::CM;
|
||||
}
|
||||
else if ( unitsId == "pc" )
|
||||
{
|
||||
units = Units::PC;
|
||||
}
|
||||
else
|
||||
{
|
||||
units = Units::PT;
|
||||
}
|
||||
|
||||
return units;
|
||||
}
|
||||
|
||||
|
||||
Distance::Distance( double d, Units units )
|
||||
{
|
||||
switch (units)
|
||||
switch (unitsEnum)
|
||||
{
|
||||
case Units::PT:
|
||||
mDPts = d;
|
||||
@@ -162,15 +46,44 @@ namespace glabels
|
||||
case Units::PC:
|
||||
mDPts = d * PTS_PER_PICA;
|
||||
break;
|
||||
default:
|
||||
mDPts = d;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Distance::Distance( double d, const Units& units )
|
||||
{
|
||||
switch (units.toEnum())
|
||||
{
|
||||
case Units::PT:
|
||||
mDPts = d;
|
||||
break;
|
||||
case Units::IN:
|
||||
mDPts = d * PTS_PER_INCH;
|
||||
break;
|
||||
case Units::MM:
|
||||
mDPts = d * PTS_PER_MM;
|
||||
break;
|
||||
case Units::CM:
|
||||
mDPts = d * PTS_PER_CM;
|
||||
break;
|
||||
case Units::PC:
|
||||
mDPts = d * PTS_PER_PICA;
|
||||
break;
|
||||
default:
|
||||
mDPts = d;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Distance::Distance( double d, const QString& unitsId )
|
||||
{
|
||||
Units units = toUnits( unitsId );
|
||||
Units units = Units( unitsId );
|
||||
|
||||
switch (units)
|
||||
switch (units.toEnum())
|
||||
{
|
||||
case Units::PT:
|
||||
mDPts = d;
|
||||
@@ -187,6 +100,9 @@ namespace glabels
|
||||
case Units::PC:
|
||||
mDPts = d * PTS_PER_PICA;
|
||||
break;
|
||||
default:
|
||||
mDPts = d;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -200,20 +116,47 @@ namespace glabels
|
||||
QString unitsString;
|
||||
valueStream >> value >> unitsString;
|
||||
|
||||
if ( !unitsString.isEmpty() && !isIdValid( unitsString ) )
|
||||
if ( !unitsString.isEmpty() && !Units::isIdValid( unitsString ) )
|
||||
{
|
||||
qWarning() << "Error: invalid Distance::Units \"" << string << "\"";
|
||||
qWarning() << "Invalid Units in string: \"" << string << "\"";
|
||||
}
|
||||
|
||||
return Distance( value, unitsString );
|
||||
}
|
||||
|
||||
|
||||
double Distance::inUnits( Units units ) const
|
||||
double Distance::inUnits( const Units& units ) const
|
||||
{
|
||||
double d;
|
||||
|
||||
switch (units)
|
||||
switch (units.toEnum())
|
||||
{
|
||||
case Units::PT:
|
||||
d = pt();
|
||||
break;
|
||||
case Units::IN:
|
||||
d = in();
|
||||
break;
|
||||
case Units::MM:
|
||||
d = mm();
|
||||
break;
|
||||
case Units::CM:
|
||||
d = cm();
|
||||
break;
|
||||
case Units::PC:
|
||||
d = pc();
|
||||
break;
|
||||
}
|
||||
|
||||
return d;
|
||||
}
|
||||
|
||||
|
||||
double Distance::inUnits( Units::Enum unitsEnum ) const
|
||||
{
|
||||
double d;
|
||||
|
||||
switch (unitsEnum)
|
||||
{
|
||||
case Units::PT:
|
||||
d = pt();
|
||||
@@ -238,18 +181,26 @@ namespace glabels
|
||||
|
||||
double Distance::inUnits( const QString& unitsId ) const
|
||||
{
|
||||
return inUnits( toUnits( unitsId ) );
|
||||
return inUnits( Units( unitsId ) );
|
||||
}
|
||||
|
||||
|
||||
QString Distance::toString( Units units ) const
|
||||
QString Distance::toString( const Units& units ) const
|
||||
{
|
||||
return QString::number( inUnits(units) ) + toId(units);
|
||||
return QString::number( inUnits(units) ) + units.toIdString();
|
||||
}
|
||||
|
||||
|
||||
QString Distance::toString( Units::Enum unitsEnum ) const
|
||||
{
|
||||
Units units(unitsEnum);
|
||||
return QString::number( inUnits(units) ) + units.toIdString();
|
||||
}
|
||||
|
||||
|
||||
QString Distance::toString( const QString& unitsId ) const
|
||||
{
|
||||
return QString::number( inUnits(unitsId) ) + unitsId;
|
||||
Units units(unitsId);
|
||||
return QString::number( inUnits(units) ) + units.toIdString();
|
||||
}
|
||||
}
|
||||
|
||||
+7
-12
@@ -24,7 +24,7 @@
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QString>
|
||||
#include "Constants.h"
|
||||
#include "Units.h"
|
||||
|
||||
|
||||
namespace glabels
|
||||
@@ -36,16 +36,9 @@ namespace glabels
|
||||
Q_DECLARE_TR_FUNCTIONS(Distance)
|
||||
|
||||
public:
|
||||
enum class Units { PT, IN, MM, CM, PC };
|
||||
|
||||
static QString toId( Units units );
|
||||
static QString toTrName( Units units );
|
||||
static bool isIdValid( const QString& unitsId );
|
||||
static Units toUnits( const QString& unitsId );
|
||||
|
||||
|
||||
Distance();
|
||||
Distance( double d, Units units = Units::PT );
|
||||
Distance( double d, Units::Enum unitsEnum = Units::PT );
|
||||
Distance( double d, const Units& units );
|
||||
Distance( double d, const QString& unitsId );
|
||||
|
||||
static Distance pt( double dPts );
|
||||
@@ -61,11 +54,13 @@ namespace glabels
|
||||
double mm() const;
|
||||
double cm() const;
|
||||
double pc() const;
|
||||
double inUnits( Units units ) const;
|
||||
double inUnits( const Units& units ) const;
|
||||
double inUnits( Units::Enum unitsEnum ) const;
|
||||
double inUnits( const QString& unitsId ) const;
|
||||
|
||||
|
||||
QString toString( Units units ) const;
|
||||
QString toString( const Units& units ) const;
|
||||
QString toString( Units::Enum unitsEnum ) const;
|
||||
QString toString( const QString& unitsId ) const;
|
||||
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "Constants.h"
|
||||
#include <cmath>
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -62,7 +62,7 @@ namespace glabels
|
||||
virtual Distance w() const = 0;
|
||||
virtual Distance h() const = 0;
|
||||
|
||||
virtual const QString sizeDescription( Distance::Units units ) const = 0;
|
||||
virtual const QString sizeDescription( const Units& units ) const = 0;
|
||||
virtual bool isSimilarTo( Frame* other ) const = 0;
|
||||
|
||||
virtual const QPainterPath& path() const = 0;
|
||||
|
||||
@@ -85,22 +85,22 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
const QString FrameCd::sizeDescription( Distance::Units units ) const
|
||||
const QString FrameCd::sizeDescription( const Units& units ) const
|
||||
{
|
||||
if ( units == Distance::Units::IN )
|
||||
if ( units.toEnum() == Units::IN )
|
||||
{
|
||||
QString dStr = StrUtil::formatFraction( 2 * mR1.in() );
|
||||
|
||||
return QString().sprintf( "%s %s %s",
|
||||
qPrintable(dStr),
|
||||
qPrintable(Distance::toTrName(units)),
|
||||
qPrintable(units.toTrName()),
|
||||
qPrintable(tr("diameter")) );
|
||||
}
|
||||
else
|
||||
{
|
||||
return QString().sprintf( "%.5g %s %s",
|
||||
2 * mR1.inUnits(units),
|
||||
qPrintable(Distance::toTrName(units)),
|
||||
qPrintable(units.toTrName()),
|
||||
qPrintable(tr("diameter")) );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace glabels
|
||||
Distance w() const;
|
||||
Distance h() const;
|
||||
|
||||
const QString sizeDescription( Distance::Units units ) const;
|
||||
const QString sizeDescription( const Units& units ) const;
|
||||
bool isSimilarTo( Frame* other ) const;
|
||||
|
||||
const QPainterPath& path() const;
|
||||
|
||||
@@ -62,9 +62,9 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
const QString FrameEllipse::sizeDescription( Distance::Units units ) const
|
||||
const QString FrameEllipse::sizeDescription( const Units& units ) const
|
||||
{
|
||||
if ( units == Distance::Units::IN )
|
||||
if ( units.toEnum() == Units::IN )
|
||||
{
|
||||
QString wStr = StrUtil::formatFraction( mW.in() );
|
||||
QString hStr = StrUtil::formatFraction( mH.in() );
|
||||
@@ -72,14 +72,14 @@ namespace glabels
|
||||
return QString().sprintf( "%s x %s %s",
|
||||
qPrintable(wStr),
|
||||
qPrintable(hStr),
|
||||
qPrintable(Distance::toTrName(units)) );
|
||||
qPrintable(units.toTrName()) );
|
||||
}
|
||||
else
|
||||
{
|
||||
return QString().sprintf( "%.5g x %.5g %s",
|
||||
mW.inUnits(units),
|
||||
mH.inUnits(units),
|
||||
qPrintable(Distance::toTrName(units)) );
|
||||
qPrintable(units.toTrName()) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace glabels
|
||||
Distance w() const;
|
||||
Distance h() const;
|
||||
|
||||
const QString sizeDescription( Distance::Units units ) const;
|
||||
const QString sizeDescription( const Units& units ) const;
|
||||
bool isSimilarTo( Frame* other ) const;
|
||||
|
||||
const QPainterPath& path() const;
|
||||
|
||||
@@ -66,9 +66,9 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
const QString FrameRect::sizeDescription( Distance::Units units ) const
|
||||
const QString FrameRect::sizeDescription( const Units& units ) const
|
||||
{
|
||||
if ( units == Distance::Units::IN )
|
||||
if ( units.toEnum() == Units::IN )
|
||||
{
|
||||
QString wStr = StrUtil::formatFraction( mW.in() );
|
||||
QString hStr = StrUtil::formatFraction( mH.in() );
|
||||
@@ -76,14 +76,14 @@ namespace glabels
|
||||
return QString().sprintf( "%s x %s %s",
|
||||
qPrintable(wStr),
|
||||
qPrintable(hStr),
|
||||
qPrintable(Distance::toTrName(units)) );
|
||||
qPrintable(units.toTrName()) );
|
||||
}
|
||||
else
|
||||
{
|
||||
return QString().sprintf( "%.5g x %.5g %s",
|
||||
mW.inUnits(units),
|
||||
mH.inUnits(units),
|
||||
qPrintable(Distance::toTrName(units)) );
|
||||
qPrintable(units.toTrName()) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace glabels
|
||||
Distance w() const;
|
||||
Distance h() const;
|
||||
|
||||
const QString sizeDescription( Distance::Units units ) const;
|
||||
const QString sizeDescription( const Units& units ) const;
|
||||
|
||||
bool isSimilarTo( Frame* other ) const;
|
||||
|
||||
|
||||
@@ -62,22 +62,22 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
const QString FrameRound::sizeDescription( Distance::Units units ) const
|
||||
const QString FrameRound::sizeDescription( const Units& units ) const
|
||||
{
|
||||
if ( units == Distance::Units::IN )
|
||||
if ( units.toEnum() == Units::IN )
|
||||
{
|
||||
QString dStr = StrUtil::formatFraction( 2 * mR.in() );
|
||||
|
||||
return QString().sprintf( "%s %s %s",
|
||||
qPrintable(dStr),
|
||||
qPrintable(Distance::toTrName(units)),
|
||||
qPrintable(units.toTrName()),
|
||||
qPrintable(tr("diameter")) );
|
||||
}
|
||||
else
|
||||
{
|
||||
return QString().sprintf( "%.5g %s %s",
|
||||
2 * mR.inUnits(units),
|
||||
qPrintable(Distance::toTrName(units)),
|
||||
qPrintable(units.toTrName()),
|
||||
qPrintable(tr("diameter")) );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace glabels
|
||||
Distance w() const;
|
||||
Distance h() const;
|
||||
|
||||
const QString sizeDescription( Distance::Units units ) const;
|
||||
const QString sizeDescription( const Units& units ) const;
|
||||
bool isSimilarTo( Frame* other ) const;
|
||||
|
||||
const QPainterPath& path() const;
|
||||
|
||||
@@ -0,0 +1,258 @@
|
||||
/* Units.cpp
|
||||
*
|
||||
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
|
||||
*
|
||||
* This file is part of gLabels-qt.
|
||||
*
|
||||
* gLabels-qt is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* gLabels-qt is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "Units.h"
|
||||
|
||||
#include <QTextStream>
|
||||
#include <QtDebug>
|
||||
|
||||
|
||||
namespace glabels
|
||||
{
|
||||
|
||||
|
||||
Units::Units() : mEnumValue(PT)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
Units::Units( Units::Enum enumValue ) : mEnumValue(enumValue)
|
||||
{
|
||||
switch (enumValue)
|
||||
{
|
||||
case PT:
|
||||
case IN:
|
||||
case MM:
|
||||
case CM:
|
||||
case PC:
|
||||
/* Catch all valid enum values. */
|
||||
break;
|
||||
default:
|
||||
/* Catch invalid enum values, reset to PT. */
|
||||
qWarning() << "Bad Units::Enum value = " << enumValue << ".";
|
||||
mEnumValue = PT;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Units::Units( const QString& idString )
|
||||
{
|
||||
if ( idString == "pt" )
|
||||
{
|
||||
mEnumValue = PT;
|
||||
}
|
||||
else if ( idString == "in" )
|
||||
{
|
||||
mEnumValue = IN;
|
||||
}
|
||||
else if ( idString == "mm" )
|
||||
{
|
||||
mEnumValue = MM;
|
||||
}
|
||||
else if ( idString == "cm" )
|
||||
{
|
||||
mEnumValue = CM;
|
||||
}
|
||||
else if ( idString == "pc" )
|
||||
{
|
||||
mEnumValue = PC;
|
||||
}
|
||||
else
|
||||
{
|
||||
mEnumValue = PT;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Units Units::pt()
|
||||
{
|
||||
return Units(PT);
|
||||
}
|
||||
|
||||
|
||||
Units Units::in()
|
||||
{
|
||||
return Units(IN);
|
||||
}
|
||||
|
||||
|
||||
Units Units::mm()
|
||||
{
|
||||
return Units(MM);
|
||||
}
|
||||
|
||||
|
||||
Units Units::cm()
|
||||
{
|
||||
return Units(CM);
|
||||
}
|
||||
|
||||
|
||||
Units Units::pc()
|
||||
{
|
||||
return Units(PC);
|
||||
}
|
||||
|
||||
|
||||
Units::Enum Units::toEnum() const
|
||||
{
|
||||
return mEnumValue;
|
||||
}
|
||||
|
||||
|
||||
QString Units::toIdString() const
|
||||
{
|
||||
QString idString;
|
||||
|
||||
switch (mEnumValue)
|
||||
{
|
||||
case Units::PT:
|
||||
idString = "pt";
|
||||
break;
|
||||
case Units::IN:
|
||||
idString = "in";
|
||||
break;
|
||||
case Units::MM:
|
||||
idString = "mm";
|
||||
break;
|
||||
case Units::CM:
|
||||
idString = "cm";
|
||||
break;
|
||||
case Units::PC:
|
||||
idString = "pc";
|
||||
break;
|
||||
}
|
||||
|
||||
return idString;
|
||||
}
|
||||
|
||||
|
||||
QString Units::toTrName() const
|
||||
{
|
||||
QString nameString;
|
||||
|
||||
switch (mEnumValue)
|
||||
{
|
||||
case Units::PT:
|
||||
nameString = tr("points");
|
||||
break;
|
||||
case Units::IN:
|
||||
nameString = tr("inches");
|
||||
break;
|
||||
case Units::MM:
|
||||
nameString = tr("mm");
|
||||
break;
|
||||
case Units::CM:
|
||||
nameString = tr("cm");
|
||||
break;
|
||||
case Units::PC:
|
||||
nameString = tr("picas");
|
||||
break;
|
||||
}
|
||||
|
||||
return nameString;
|
||||
}
|
||||
|
||||
|
||||
double Units::resolution() const
|
||||
{
|
||||
double value;
|
||||
|
||||
switch (mEnumValue)
|
||||
{
|
||||
case glabels::Units::PT:
|
||||
value = 0.01;
|
||||
break;
|
||||
case glabels::Units::IN:
|
||||
value = 0.001;
|
||||
break;
|
||||
case glabels::Units::MM:
|
||||
value = 0.01;
|
||||
break;
|
||||
case glabels::Units::CM:
|
||||
value = 0.001;
|
||||
break;
|
||||
case glabels::Units::PC:
|
||||
value = 0.01;
|
||||
break;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
int Units::resolutionDigits() const
|
||||
{
|
||||
int digits;
|
||||
|
||||
switch (mEnumValue)
|
||||
{
|
||||
case glabels::Units::PT:
|
||||
digits = 2;
|
||||
break;
|
||||
case glabels::Units::IN:
|
||||
digits = 3;
|
||||
break;
|
||||
case glabels::Units::MM:
|
||||
digits = 2;
|
||||
break;
|
||||
case glabels::Units::CM:
|
||||
digits = 3;
|
||||
break;
|
||||
case glabels::Units::PC:
|
||||
digits = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
return digits;
|
||||
}
|
||||
|
||||
|
||||
bool Units::isIdValid( const QString& idString )
|
||||
{
|
||||
bool retValue = false;
|
||||
|
||||
if ( idString == "pt" )
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
else if ( idString == "in" )
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
else if ( idString == "mm" )
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
else if ( idString == "cm" )
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
else if ( idString == "pc" )
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
/* Units.h
|
||||
*
|
||||
* Copyright (C) 2016 Jim Evins <evins@snaught.com>
|
||||
*
|
||||
* This file is part of gLabels-qt.
|
||||
*
|
||||
* gLabels-qt is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* gLabels-qt is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef glabels_Units_h
|
||||
#define glabels_Units_h
|
||||
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QString>
|
||||
|
||||
|
||||
namespace glabels
|
||||
{
|
||||
|
||||
|
||||
class Units
|
||||
{
|
||||
Q_DECLARE_TR_FUNCTIONS(Units)
|
||||
|
||||
public:
|
||||
enum Enum { PT, IN, MM, CM, PC };
|
||||
|
||||
Units();
|
||||
Units( Enum enumValue );
|
||||
Units( const QString& idString );
|
||||
|
||||
static Units pt();
|
||||
static Units in();
|
||||
static Units mm();
|
||||
static Units cm();
|
||||
static Units pc();
|
||||
|
||||
Enum toEnum() const;
|
||||
|
||||
QString toIdString() const;
|
||||
QString toTrName() const;
|
||||
|
||||
double resolution() const;
|
||||
int resolutionDigits() const;
|
||||
|
||||
static bool isIdValid( const QString& unitsId );
|
||||
|
||||
|
||||
private:
|
||||
Enum mEnumValue;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endif // glabels_Units_h
|
||||
@@ -27,12 +27,12 @@
|
||||
namespace glabels
|
||||
{
|
||||
|
||||
Distance::Units XmlUtil::mUnits;
|
||||
Units XmlUtil::mUnits;
|
||||
|
||||
|
||||
XmlUtil::XmlUtil()
|
||||
{
|
||||
mUnits = Distance::Units::PT;
|
||||
mUnits = Units(Units::PT);
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
Distance::Units XmlUtil::units()
|
||||
Units XmlUtil::units()
|
||||
{
|
||||
init();
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace glabels
|
||||
}
|
||||
|
||||
|
||||
void XmlUtil::setUnits( Distance::Units units )
|
||||
void XmlUtil::setUnits( const Units& units )
|
||||
{
|
||||
init();
|
||||
|
||||
@@ -215,7 +215,7 @@ namespace glabels
|
||||
|
||||
valueStream >> value >> unitsString;
|
||||
|
||||
if ( !unitsString.isEmpty() && !Distance::isIdValid( unitsString ) )
|
||||
if ( !unitsString.isEmpty() && !Units::isIdValid( unitsString ) )
|
||||
{
|
||||
qWarning() << "Error: bad length value in attribute "
|
||||
<< node.tagName() << ":" << name << "=" << valueString;
|
||||
@@ -284,7 +284,7 @@ namespace glabels
|
||||
{
|
||||
init();
|
||||
|
||||
node.setAttribute( name, QString::number(value.inUnits(mUnits)) + Distance::toId(mUnits) );
|
||||
node.setAttribute( name, QString::number(value.inUnits(mUnits)) + mUnits.toIdString() );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -41,8 +41,8 @@ namespace glabels
|
||||
|
||||
static void init();
|
||||
|
||||
static Distance::Units units();
|
||||
static void setUnits( Distance::Units units );
|
||||
static Units units();
|
||||
static void setUnits( const Units& units );
|
||||
|
||||
static QString getStringAttr( const QDomElement& node,
|
||||
const QString& name,
|
||||
@@ -97,7 +97,7 @@ namespace glabels
|
||||
const Distance& value );
|
||||
|
||||
private:
|
||||
static Distance::Units mUnits;
|
||||
static Units mUnits;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace glabels
|
||||
namespace Constants
|
||||
{
|
||||
|
||||
const Distance EPSILON( 0.5, Distance::Units::PT );
|
||||
const Distance EPSILON( 0.5, Units::PT );
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user