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:
Jaye Evins
2025-08-14 15:47:22 -04:00
committed by GitHub
parent f147407a46
commit fa96cc5a17
8 changed files with 378 additions and 29 deletions
+64
View File
@@ -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();
}
}
}