Add grid settings to preferences (#224)
- Allow origin to be either at the top-left corner or center of label (#174) - For non-rectangular labels (cd, round, etc.) the origin will still always be at the center of the label. - User controllable grid spacing
This commit is contained in:
@@ -66,7 +66,6 @@ namespace glabels
|
||||
QString toString( Units::Enum unitsEnum ) const;
|
||||
QString toString( const QString& unitsId ) const;
|
||||
|
||||
|
||||
Distance& operator+=( const Distance& d );
|
||||
Distance& operator-=( const Distance& d );
|
||||
Distance& operator*=( double f );
|
||||
|
||||
@@ -375,5 +375,69 @@ namespace glabels
|
||||
mInstance->endGroup();
|
||||
}
|
||||
|
||||
|
||||
Settings::GridOrigin Settings::gridOrigin()
|
||||
{
|
||||
mInstance->beginGroup( "Grid" );
|
||||
QString value = mInstance->value( "origin", "top_left" ).toString();
|
||||
mInstance->endGroup();
|
||||
|
||||
return (value == "top_left") ? ORIGIN_TL : ORIGIN_CENTER;
|
||||
}
|
||||
|
||||
|
||||
void Settings::setGridOrigin( GridOrigin origin )
|
||||
{
|
||||
mInstance->beginGroup( "Grid" );
|
||||
mInstance->setValue( "origin", origin == ORIGIN_TL ? "top_left" : "center" );
|
||||
mInstance->endGroup();
|
||||
|
||||
emit mInstance->changed();
|
||||
}
|
||||
|
||||
|
||||
Distance Settings::gridSpacing()
|
||||
{
|
||||
// Guess at a suitable default
|
||||
QString defaultSpacingString;
|
||||
if ( QLocale::system().measurementSystem() == QLocale::ImperialSystem )
|
||||
{
|
||||
defaultSpacingString = Distance::in(0.125).toString( Units::IN );
|
||||
}
|
||||
else
|
||||
{
|
||||
defaultSpacingString = Distance::mm(5).toString( Units::MM );
|
||||
}
|
||||
|
||||
mInstance->beginGroup( "Grid" );
|
||||
QString spacingString = mInstance->value( "spacing", defaultSpacingString ).toString();
|
||||
mInstance->endGroup();
|
||||
|
||||
return Distance::fromString( spacingString );
|
||||
}
|
||||
|
||||
|
||||
void Settings::setGridSpacing( Distance spacing )
|
||||
{
|
||||
QString spacingString = spacing.toString( Settings::units() );
|
||||
|
||||
mInstance->beginGroup( "Grid" );
|
||||
mInstance->setValue( "spacing", spacingString );
|
||||
mInstance->endGroup();
|
||||
|
||||
emit mInstance->changed();
|
||||
}
|
||||
|
||||
|
||||
void Settings::resetGridSpacing()
|
||||
{
|
||||
mInstance->beginGroup( "Grid" );
|
||||
mInstance->remove( "spacing" );
|
||||
mInstance->endGroup();
|
||||
|
||||
emit mInstance->changed();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+9
-1
@@ -43,7 +43,8 @@ namespace glabels
|
||||
|
||||
public:
|
||||
enum PageSizeFamily { ISO, US, };
|
||||
|
||||
enum GridOrigin { ORIGIN_TL, ORIGIN_CENTER };
|
||||
|
||||
|
||||
/////////////////////////////////
|
||||
// Life Cycle
|
||||
@@ -101,6 +102,13 @@ namespace glabels
|
||||
static QString recentPrinter();
|
||||
static void setRecentPrinter( const QString& printer );
|
||||
|
||||
static GridOrigin gridOrigin();
|
||||
static void setGridOrigin( GridOrigin origin );
|
||||
|
||||
static Distance gridSpacing();
|
||||
static void setGridSpacing( Distance spacing );
|
||||
static void resetGridSpacing();
|
||||
|
||||
|
||||
private:
|
||||
static Settings* mInstance;
|
||||
|
||||
Reference in New Issue
Block a user