Object editor now follows Settings::units().

This commit is contained in:
Jim Evins
2016-04-13 00:00:36 -04:00
parent 642739a1ff
commit e7000f2567
3 changed files with 190 additions and 125 deletions
+122 -17
View File
@@ -25,6 +25,8 @@
#include "LabelModelObject.h" #include "LabelModelObject.h"
#include "LabelModelBoxObject.h" #include "LabelModelBoxObject.h"
#include "Settings.h"
#include <cmath> #include <cmath>
#include <QtDebug> #include <QtDebug>
@@ -43,6 +45,9 @@ ObjectEditor::ObjectEditor( QWidget *parent )
setEnabled( false ); setEnabled( false );
hidePages(); hidePages();
connect( Settings::instance(), SIGNAL(changed()), this, SLOT(onSettingsChanged()) );
onSettingsChanged();
} }
@@ -90,8 +95,8 @@ void ObjectEditor::loadPositionPage()
{ {
mBlocked = true; mBlocked = true;
posXSpin->setValue( mObject->x0().in() ); posXSpin->setValue( mObject->x0().inUnits(mUnits) );
posYSpin->setValue( mObject->y0().in() ); posYSpin->setValue( mObject->y0().inUnits(mUnits) );
mBlocked = false; mBlocked = false;
} }
@@ -104,8 +109,8 @@ void ObjectEditor::loadRectSizePage()
{ {
mBlocked = true; mBlocked = true;
sizeWSpin->setValue( mObject->w().in() ); sizeWSpin->setValue( mObject->w().inUnits(mUnits) );
sizeHSpin->setValue( mObject->h().in() ); sizeHSpin->setValue( mObject->h().inUnits(mUnits) );
mBlocked = false; mBlocked = false;
} }
@@ -119,8 +124,8 @@ void ObjectEditor::loadShadowPage()
mBlocked = true; mBlocked = true;
shadowEnableCheck->setChecked( mObject->shadow() ); shadowEnableCheck->setChecked( mObject->shadow() );
shadowXSpin->setValue( mObject->shadowX().in() ); shadowXSpin->setValue( mObject->shadowX().inUnits(mUnits) );
shadowYSpin->setValue( mObject->shadowY().in() ); shadowYSpin->setValue( mObject->shadowY().inUnits(mUnits) );
shadowColorButton->setColorNode( mObject->shadowColorNode() ); shadowColorButton->setColorNode( mObject->shadowColorNode() );
shadowOpacitySpin->setValue( 100*mObject->shadowOpacity() ); shadowOpacitySpin->setValue( 100*mObject->shadowOpacity() );
@@ -129,6 +134,100 @@ 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();
int digits = spinDigits( mUnits );
double step = spinStep( mUnits );
posXSpin->setDecimals( digits );
posXSpin->setSingleStep( step );
posXSpin->setSuffix( " " + glabels::Distance::toId(mUnits) );
posYSpin->setDecimals( digits );
posYSpin->setSingleStep( step );
posYSpin->setSuffix( " " + glabels::Distance::toId(mUnits) );
sizeWSpin->setDecimals( digits );
sizeWSpin->setSingleStep( step );
sizeWSpin->setSuffix( " " + glabels::Distance::toId(mUnits) );
sizeHSpin->setDecimals( digits );
sizeHSpin->setSingleStep( step );
sizeHSpin->setSuffix( " " + glabels::Distance::toId(mUnits) );
sizeLineLengthSpin->setDecimals( digits );
sizeLineLengthSpin->setSingleStep( step );
sizeLineLengthSpin->setSuffix( " " + glabels::Distance::toId(mUnits) );
shadowXSpin->setDecimals( digits );
shadowXSpin->setSingleStep( step );
shadowXSpin->setSuffix( " " + glabels::Distance::toId(mUnits) );
shadowYSpin->setDecimals( digits );
shadowYSpin->setSingleStep( step );
shadowYSpin->setSuffix( " " + glabels::Distance::toId(mUnits) );
onLabelSizeChanged();
onSelectionChanged();
}
void ObjectEditor::onLabelSizeChanged() void ObjectEditor::onLabelSizeChanged()
{ {
if ( mModel ) if ( mModel )
@@ -137,10 +236,10 @@ void ObjectEditor::onLabelSizeChanged()
glabels::Distance whMax = std::max( mModel->w(), mModel->h() ); glabels::Distance whMax = std::max( mModel->w(), mModel->h() );
posXSpin->setRange( -whMax.in(), 2*whMax.in() ); posXSpin->setRange( -whMax.inUnits(mUnits), 2*whMax.inUnits(mUnits) );
posYSpin->setRange( -whMax.in(), 2*whMax.in() ); posYSpin->setRange( -whMax.inUnits(mUnits), 2*whMax.inUnits(mUnits) );
sizeWSpin->setRange( 0, 2*whMax.in() ); sizeWSpin->setRange( 0, 2*whMax.inUnits(mUnits) );
sizeHSpin->setRange( 0, 2*whMax.in() ); sizeHSpin->setRange( 0, 2*whMax.inUnits(mUnits) );
mBlocked = false; mBlocked = false;
} }
@@ -148,6 +247,8 @@ void ObjectEditor::onLabelSizeChanged()
void ObjectEditor::onSelectionChanged() void ObjectEditor::onSelectionChanged()
{
if ( mModel )
{ {
if ( mObject ) if ( mObject )
{ {
@@ -198,6 +299,7 @@ void ObjectEditor::onSelectionChanged()
setEnabled( false ); setEnabled( false );
} }
} }
}
void ObjectEditor::onObjectChanged() void ObjectEditor::onObjectChanged()
@@ -260,7 +362,10 @@ void ObjectEditor::onPositionControlsChanged()
{ {
mBlocked = true; mBlocked = true;
mObject->setPosition( posXSpin->value(), posYSpin->value() ); glabels::Distance x = glabels::Distance(posXSpin->value(), mUnits);
glabels::Distance y = glabels::Distance(posYSpin->value(), mUnits);
mObject->setPosition( x, y );
mBlocked = false; mBlocked = false;
} }
@@ -273,20 +378,20 @@ void ObjectEditor::onRectSizeControlsChanged()
{ {
mBlocked = true; mBlocked = true;
glabels::Distance spinW = glabels::Distance::in(sizeWSpin->value()); glabels::Distance spinW = glabels::Distance(sizeWSpin->value(), mUnits);
glabels::Distance spinH = glabels::Distance::in(sizeHSpin->value()); glabels::Distance spinH = glabels::Distance(sizeHSpin->value(), mUnits);
if ( sizeAspectCheck->isChecked() ) if ( sizeAspectCheck->isChecked() )
{ {
if ( fabs(spinW - mObject->w()) > fabs(spinH - mObject->h()) ) if ( fabs(spinW - mObject->w()) > fabs(spinH - mObject->h()) )
{ {
mObject->setWHonorAspect( spinW ); mObject->setWHonorAspect( spinW );
sizeHSpin->setValue( mObject->h().in() ); sizeHSpin->setValue( mObject->h().inUnits(mUnits) );
} }
else else
{ {
mObject->setHHonorAspect( spinH ); mObject->setHHonorAspect( spinH );
sizeWSpin->setValue( mObject->w().in() ); sizeWSpin->setValue( mObject->w().inUnits(mUnits) );
} }
} }
else else
@@ -306,8 +411,8 @@ void ObjectEditor::onShadowControlsChanged()
mBlocked = true; mBlocked = true;
mObject->setShadow( shadowEnableCheck->isChecked() ); mObject->setShadow( shadowEnableCheck->isChecked() );
mObject->setShadowX( glabels::Distance::in(shadowXSpin->value()) ); mObject->setShadowX( glabels::Distance(shadowXSpin->value(), mUnits) );
mObject->setShadowY( glabels::Distance::in(shadowYSpin->value()) ); mObject->setShadowY( glabels::Distance(shadowYSpin->value(), mUnits) );
mObject->setShadowColorNode( shadowColorButton->colorNode() ); mObject->setShadowColorNode( shadowColorButton->colorNode() );
mObject->setShadowOpacity( shadowOpacitySpin->value()/100.0 ); mObject->setShadowOpacity( shadowOpacitySpin->value()/100.0 );
+6
View File
@@ -22,6 +22,7 @@
#define ObjectEditor_h #define ObjectEditor_h
#include "ui_ObjectEditor.h" #include "ui_ObjectEditor.h"
#include "libglabels/Distance.h"
class LabelModel; // Forward reference class LabelModel; // Forward reference
@@ -59,11 +60,15 @@ private:
void loadRectSizePage(); void loadRectSizePage();
void loadShadowPage(); void loadShadowPage();
int spinDigits( glabels::Distance::Units units );
double spinStep( glabels::Distance::Units units );
///////////////////////////////// /////////////////////////////////
// Slots // Slots
///////////////////////////////// /////////////////////////////////
private slots: private slots:
void onSettingsChanged();
void onLabelSizeChanged(); void onLabelSizeChanged();
void onSelectionChanged(); void onSelectionChanged();
void onObjectChanged(); void onObjectChanged();
@@ -83,6 +88,7 @@ private slots:
private: private:
LabelModel* mModel; LabelModel* mModel;
LabelModelObject* mObject; LabelModelObject* mObject;
glabels::Distance::Units mUnits;
bool mBlocked; bool mBlocked;
}; };
+22 -68
View File
@@ -70,7 +70,7 @@
<item row="1" column="0"> <item row="1" column="0">
<widget class="QTabWidget" name="notebook"> <widget class="QTabWidget" name="notebook">
<property name="currentIndex"> <property name="currentIndex">
<number>0</number> <number>3</number>
</property> </property>
<widget class="QWidget" name="textPage"> <widget class="QWidget" name="textPage">
<attribute name="title"> <attribute name="title">
@@ -875,12 +875,21 @@
<item row="0" column="1"> <item row="0" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_20"> <layout class="QHBoxLayout" name="horizontalLayout_20">
<item> <item>
<widget class="QDoubleSpinBox" name="lineWidthSpin"/> <widget class="QDoubleSpinBox" name="lineWidthSpin">
</item> <property name="sizePolicy">
<item> <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<widget class="QLabel" name="label_22"> <horstretch>0</horstretch>
<property name="text"> <verstretch>0</verstretch>
<string>points</string> </sizepolicy>
</property>
<property name="suffix">
<string notr="true"> pt</string>
</property>
<property name="decimals">
<number>1</number>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property> </property>
</widget> </widget>
</item> </item>
@@ -1022,13 +1031,6 @@
<item> <item>
<widget class="QDoubleSpinBox" name="posXSpin"/> <widget class="QDoubleSpinBox" name="posXSpin"/>
</item> </item>
<item>
<widget class="QLabel" name="posXUnitsLabel">
<property name="text">
<string>inches</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
@@ -1049,13 +1051,6 @@
<item> <item>
<widget class="QDoubleSpinBox" name="posYSpin"/> <widget class="QDoubleSpinBox" name="posYSpin"/>
</item> </item>
<item>
<widget class="QLabel" name="posYUnitsLabel">
<property name="text">
<string>inches</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>
@@ -1102,13 +1097,6 @@
<item> <item>
<widget class="QDoubleSpinBox" name="sizeWSpin"/> <widget class="QDoubleSpinBox" name="sizeWSpin"/>
</item> </item>
<item>
<widget class="QLabel" name="sizeWUnitsLabel">
<property name="text">
<string>inches</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
@@ -1129,13 +1117,6 @@
<item> <item>
<widget class="QDoubleSpinBox" name="sizeHSpin"/> <widget class="QDoubleSpinBox" name="sizeHSpin"/>
</item> </item>
<item>
<widget class="QLabel" name="sizeHUnitsLabel">
<property name="text">
<string>inches</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item row="2" column="1"> <item row="2" column="1">
@@ -1212,13 +1193,6 @@
<item> <item>
<widget class="QDoubleSpinBox" name="sizeLineLengthSpin"/> <widget class="QDoubleSpinBox" name="sizeLineLengthSpin"/>
</item> </item>
<item>
<widget class="QLabel" name="sizeLineLengthUnitsLabel">
<property name="text">
<string>inches</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
@@ -1237,12 +1211,9 @@
<item row="1" column="1"> <item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_14"> <layout class="QHBoxLayout" name="horizontalLayout_14">
<item> <item>
<widget class="QDoubleSpinBox" name="sizeLineAngleSpin"/> <widget class="QDoubleSpinBox" name="sizeLineAngleSpin">
</item> <property name="suffix">
<item> <string notr="true"> °</string>
<widget class="QLabel" name="label_36">
<property name="text">
<string>degrees</string>
</property> </property>
</widget> </widget>
</item> </item>
@@ -1312,13 +1283,6 @@
<item> <item>
<widget class="QDoubleSpinBox" name="shadowXSpin"/> <widget class="QDoubleSpinBox" name="shadowXSpin"/>
</item> </item>
<item>
<widget class="QLabel" name="shadowXUnitsLabel">
<property name="text">
<string>inches</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
@@ -1333,13 +1297,6 @@
<item> <item>
<widget class="QDoubleSpinBox" name="shadowYSpin"/> <widget class="QDoubleSpinBox" name="shadowYSpin"/>
</item> </item>
<item>
<widget class="QLabel" name="shadowYUnitsLabel">
<property name="text">
<string>inches</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">
@@ -1359,12 +1316,9 @@
<item row="3" column="1"> <item row="3" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_8"> <layout class="QHBoxLayout" name="horizontalLayout_8">
<item> <item>
<widget class="QSpinBox" name="shadowOpacitySpin"/> <widget class="QSpinBox" name="shadowOpacitySpin">
</item> <property name="suffix">
<item> <string notr="true"> %</string>
<widget class="QLabel" name="label_19">
<property name="text">
<string>%</string>
</property> </property>
</widget> </widget>
</item> </item>