PropertiesView and View now follow Settings::units.

This commit is contained in:
Jim Evins
2016-04-14 23:10:38 -04:00
parent 2f7f4b2041
commit 783ede0a03
28 changed files with 559 additions and 258 deletions
+8 -62
View File
@@ -97,11 +97,11 @@ void ObjectEditor::loadPositionPage()
posXSpin->setDecimals( mSpinDigits );
posXSpin->setSingleStep( mSpinStep );
posXSpin->setSuffix( " " + glabels::Distance::toId(mUnits) );
posXSpin->setSuffix( " " + mUnits.toIdString() );
posYSpin->setDecimals( mSpinDigits );
posYSpin->setSingleStep( mSpinStep );
posYSpin->setSuffix( " " + glabels::Distance::toId(mUnits) );
posYSpin->setSuffix( " " + mUnits.toIdString() );
posXSpin->setValue( mObject->x0().inUnits(mUnits) );
posYSpin->setValue( mObject->y0().inUnits(mUnits) );
@@ -119,11 +119,11 @@ void ObjectEditor::loadRectSizePage()
sizeWSpin->setDecimals( mSpinDigits );
sizeWSpin->setSingleStep( mSpinStep );
sizeWSpin->setSuffix( " " + glabels::Distance::toId(mUnits) );
sizeWSpin->setSuffix( " " + mUnits.toIdString() );
sizeHSpin->setDecimals( mSpinDigits );
sizeHSpin->setSingleStep( mSpinStep );
sizeHSpin->setSuffix( " " + glabels::Distance::toId(mUnits) );
sizeHSpin->setSuffix( " " + mUnits.toIdString() );
sizeWSpin->setValue( mObject->w().inUnits(mUnits) );
sizeHSpin->setValue( mObject->h().inUnits(mUnits) );
@@ -141,11 +141,11 @@ void ObjectEditor::loadShadowPage()
shadowXSpin->setDecimals( mSpinDigits );
shadowXSpin->setSingleStep( mSpinStep );
shadowXSpin->setSuffix( " " + glabels::Distance::toId(mUnits) );
shadowXSpin->setSuffix( " " + mUnits.toIdString() );
shadowYSpin->setDecimals( mSpinDigits );
shadowYSpin->setSingleStep( mSpinStep );
shadowYSpin->setSuffix( " " + glabels::Distance::toId(mUnits) );
shadowYSpin->setSuffix( " " + mUnits.toIdString() );
shadowEnableCheck->setChecked( mObject->shadow() );
shadowXSpin->setValue( mObject->shadowX().inUnits(mUnits) );
@@ -158,65 +158,11 @@ void ObjectEditor::loadShadowPage()
}
int ObjectEditor::spinDigits( glabels::Distance::Units units )
{
int digits;
switch (units)
{
case glabels::Distance::Units::PT:
digits = 2;
break;
case glabels::Distance::Units::IN:
digits = 3;
break;
case glabels::Distance::Units::MM:
digits = 2;
break;
case glabels::Distance::Units::CM:
digits = 3;
break;
case glabels::Distance::Units::PC:
digits = 2;
break;
}
return digits;
}
double ObjectEditor::spinStep( glabels::Distance::Units units )
{
double step;
switch (units)
{
case glabels::Distance::Units::PT:
step = 0.01;
break;
case glabels::Distance::Units::IN:
step = 0.001;
break;
case glabels::Distance::Units::MM:
step = 0.01;
break;
case glabels::Distance::Units::CM:
step = 0.001;
break;
case glabels::Distance::Units::PC:
step = 0.01;
break;
}
return step;
}
void ObjectEditor::onSettingsChanged()
{
mUnits = Settings::units();
mSpinDigits = spinDigits( mUnits );
mSpinStep = spinStep( mUnits );
mSpinDigits = mUnits.resolutionDigits();
mSpinStep = mUnits.resolution();
/* Must now update limits and reload any active pages with appropriate units . */
onLabelSizeChanged();
+1 -4
View File
@@ -60,9 +60,6 @@ private:
void loadRectSizePage();
void loadShadowPage();
int spinDigits( glabels::Distance::Units units );
double spinStep( glabels::Distance::Units units );
/////////////////////////////////
// Slots
@@ -89,7 +86,7 @@ private:
LabelModel* mModel;
LabelModelObject* mObject;
glabels::Distance::Units mUnits;
glabels::Units mUnits;
int mSpinDigits;
double mSpinStep;
+10 -10
View File
@@ -31,18 +31,18 @@ PreferencesDialog::PreferencesDialog( QWidget *parent )
{
setupUi( this );
switch ( Settings::units() )
switch ( Settings::units().toEnum() )
{
case glabels::Distance::Units::IN:
case glabels::Units::IN:
unitsInchesRadio->setChecked( true );
break;
case glabels::Distance::Units::MM:
case glabels::Units::MM:
unitsMillimetersRadio->setChecked( true );
break;
case glabels::Distance::Units::CM:
case glabels::Units::CM:
unitsCentimetersRadio->setChecked( true );
break;
case glabels::Distance::Units::PC:
case glabels::Units::PC:
unitsPicasRadio->setChecked( true );
break;
default:
@@ -59,22 +59,22 @@ void PreferencesDialog::onUnitsRadiosChanged()
{
if ( unitsInchesRadio->isChecked() )
{
Settings::setUnits( glabels::Distance::Units::IN );
Settings::setUnits( glabels::Units::in() );
}
else if ( unitsMillimetersRadio->isChecked() )
{
Settings::setUnits( glabels::Distance::Units::MM );
Settings::setUnits( glabels::Units::mm() );
}
else if ( unitsCentimetersRadio->isChecked() )
{
Settings::setUnits( glabels::Distance::Units::CM );
Settings::setUnits( glabels::Units::cm() );
}
else if ( unitsPicasRadio->isChecked() )
{
Settings::setUnits( glabels::Distance::Units::PC );
Settings::setUnits( glabels::Units::pc() );
}
else
{
Settings::setUnits( glabels::Distance::Units::PT );
Settings::setUnits( glabels::Units::pt() );
}
}
+18 -1
View File
@@ -21,6 +21,7 @@
#include "PropertiesView.h"
#include "LabelModel.h"
#include "Settings.h"
#include "libglabels/Db.h"
#include "SelectProductDialog.h"
@@ -37,6 +38,9 @@ PropertiesView::PropertiesView( QWidget *parent )
similarBrowser->setAttribute(Qt::WA_TranslucentBackground);
similarBrowser->viewport()->setAutoFillBackground(false);
connect( Settings::instance(), SIGNAL(changed()), this, SLOT(onSettingsChanged()) );
onSettingsChanged();
}
@@ -61,6 +65,19 @@ void PropertiesView::setModel( LabelModel* model )
}
///
/// Settings changed handler
///
void PropertiesView::onSettingsChanged()
{
mUnits = Settings::units();
if (mModel)
{
onLabelSizeChanged();
}
}
///
/// Label size changed handler
///
@@ -99,7 +116,7 @@ void PropertiesView::onLabelSizeChanged()
QString pgSizeString = glabels::Db::lookupPaperNameFromId( tmplate->paperId() );
pageSizeLabel->setText( pgSizeString );
QString labelSizeString = frame->sizeDescription( glabels::Distance::Units::IN );
QString labelSizeString = frame->sizeDescription( mUnits );
labelSizeLabel->setText( labelSizeString );
QString layoutString = frame->layoutDescription();
+4 -1
View File
@@ -23,6 +23,7 @@
#include "ui_PropertiesView.h"
#include "libglabels/Units.h"
class LabelModel; // Forward reference
@@ -53,6 +54,7 @@ public:
// Slots
/////////////////////////////////
private slots:
void onSettingsChanged();
void onLabelSizeChanged();
void onFormChanged();
void onChangeProductButtonClicked();
@@ -62,7 +64,8 @@ private slots:
// Private Data
/////////////////////////////////
private:
LabelModel* mModel;
LabelModel* mModel;
glabels::Units mUnits;
};
+6 -6
View File
@@ -50,30 +50,30 @@ Settings* Settings::instance()
}
glabels::Distance::Units Settings::units()
glabels::Units Settings::units()
{
// Guess at a suitable default
QString defaultIdString;
if ( QLocale::system().measurementSystem() == QLocale::ImperialSystem )
{
defaultIdString = glabels::Distance::toId( glabels::Distance::Units::IN );
defaultIdString = glabels::Units(glabels::Units::IN).toIdString();
}
else
{
defaultIdString = glabels::Distance::toId( glabels::Distance::Units::MM );
defaultIdString = glabels::Units(glabels::Units::MM).toIdString();
}
mInstance->beginGroup( "Locale" );
QString idString = mInstance->value( "units", defaultIdString ).toString();
mInstance->endGroup();
return glabels::Distance::toUnits( idString );
return glabels::Units( idString );
}
void Settings::setUnits( glabels::Distance::Units units )
void Settings::setUnits( const glabels::Units& units )
{
QString idString = glabels::Distance::toId( units );
QString idString = units.toIdString();
mInstance->beginGroup( "Locale" );
mInstance->setValue( "units", idString );
+2 -2
View File
@@ -60,8 +60,8 @@ signals:
// Accessors
/////////////////////////////////
public:
static glabels::Distance::Units units();
static void setUnits( glabels::Distance::Units units );
static glabels::Units units();
static void setUnits( const glabels::Units& units );
static bool searchIsoPaperSizes();
static void setSearchIsoPaperSizes( bool searchIsoPaperSizes );
+60
View File
@@ -28,6 +28,7 @@
#include "LabelModel.h"
#include "LabelModelObject.h"
#include "LabelModelBoxObject.h"
#include "Settings.h"
#include "Cursors.h"
#include "libglabels/Markup.h"
@@ -85,6 +86,10 @@ View::View( QScrollArea* scrollArea, QWidget* parent )
mGridSpacing = 18;
setMouseTracking( true );
setFocusPolicy(Qt::StrongFocus);
connect( Settings::instance(), SIGNAL(changed()), this, SLOT(onSettingsChanged()) );
onSettingsChanged();
}
@@ -851,6 +856,50 @@ View::handleResizeMotion( const glabels::Distance& xWorld,
}
///
/// Key Press Event Handler
void
View::keyPressEvent( QKeyEvent* event )
{
if ( mState == IdleState )
{
switch (event->key())
{
case Qt::Key_Left:
mModel->moveSelection( -mStepSize, glabels::Distance(0) );
break;
case Qt::Key_Up:
mModel->moveSelection( glabels::Distance(0), -mStepSize );
break;
case Qt::Key_Right:
mModel->moveSelection( mStepSize, glabels::Distance(0) );
break;
case Qt::Key_Down:
mModel->moveSelection( glabels::Distance(0), mStepSize );
break;
case Qt::Key_Delete:
mModel->deleteSelection();
setCursor( Qt::ArrowCursor );
break;
default:
QWidget::keyPressEvent( event );
break;
}
}
else
{
QWidget::keyPressEvent( event );
}
}
///
/// Paint Event Handler
///
@@ -1092,6 +1141,17 @@ View::drawSelectRegionLayer( QPainter* painter )
}
///
/// Settings changed handler
///
void View::onSettingsChanged()
{
glabels::Units units = Settings::units();
mStepSize = glabels::Distance( units.resolution(), units );
}
///
/// Model changed handler
///
+3
View File
@@ -119,6 +119,7 @@ protected:
void mouseMoveEvent( QMouseEvent* event );
void mouseReleaseEvent( QMouseEvent* event );
void leaveEvent( QEvent* event );
void keyPressEvent( QKeyEvent* event );
void paintEvent( QPaintEvent* event );
@@ -142,6 +143,7 @@ private:
// Private slots
/////////////////////////////////////
private slots:
void onSettingsChanged();
void onModelChanged();
void onModelSizeChanged();
@@ -180,6 +182,7 @@ private:
bool mGridVisible;
double mGridSpacing;
glabels::Distance mStepSize;
LabelModel* mModel;