Hooked up rect size controls in object editor.

This commit is contained in:
Jim Evins
2015-08-19 14:49:02 -04:00
parent c4ceb8c14d
commit 0834d158ed
4 changed files with 78 additions and 37 deletions
+6 -15
View File
@@ -23,6 +23,7 @@
#include <QTransform> #include <QTransform>
#include <QFont> #include <QFont>
#include <algorithm> #include <algorithm>
#include <cmath>
#include <QtDebug> #include <QtDebug>
#include "ColorNode.h" #include "ColorNode.h"
@@ -171,7 +172,7 @@ namespace glabels
if ( mW != value ) if ( mW != value )
{ {
mW = value; mW = value;
emit moved(); emit changed();
} }
} }
@@ -193,7 +194,7 @@ namespace glabels
if ( mH != value ) if ( mH != value )
{ {
mH = value; mH = value;
emit moved(); emit changed();
} }
} }
@@ -778,23 +779,13 @@ namespace glabels
/// ///
void LabelModelObject::setSizeHonorAspect( double w, double h ) void LabelModelObject::setSizeHonorAspect( double w, double h )
{ {
double aspectRatio = mH / mW; if ( fabs(w - mW) > fabs(h - mH) )
if ( h > (w * aspectRatio) )
{ {
h = w * aspectRatio; setWHonorAspect( w );
} }
else else
{ {
w = h / aspectRatio; setHHonorAspect( h );
}
if ( ( mW != w ) || ( mH != h ) )
{
mW = w;
mH = h;
emit changed();
} }
} }
+53 -2
View File
@@ -25,6 +25,7 @@
#include "LabelModelObject.h" #include "LabelModelObject.h"
#include "LabelModelBoxObject.h" #include "LabelModelBoxObject.h"
#include <cmath>
#include <QtDebug> #include <QtDebug>
@@ -99,14 +100,32 @@ namespace glabels
} }
void ObjectEditor::loadRectSizePage()
{
if ( mObject )
{
mBlocked = true;
sizeWSpin->setValue( mObject->w() );
sizeHSpin->setValue( mObject->h() );
mBlocked = false;
}
}
void ObjectEditor::onLabelSizeChanged() void ObjectEditor::onLabelSizeChanged()
{ {
if ( mModel ) if ( mModel )
{ {
mBlocked = true; mBlocked = true;
posXSpin->setRange( -mModel->w(), 2*mModel->w() ); double whMax = std::max( mModel->w(), mModel->h() );
posYSpin->setRange( -mModel->h(), 2*mModel->h() );
posXSpin->setRange( -whMax, 2*whMax );
posYSpin->setRange( -whMax, 2*whMax );
sizeWSpin->setRange( 0, 2*whMax );
sizeHSpin->setRange( 0, 2*whMax );
mBlocked = false; mBlocked = false;
} }
@@ -141,6 +160,7 @@ namespace glabels
loadLineFillPage(); loadLineFillPage();
loadPositionPage(); loadPositionPage();
loadRectSizePage();
setEnabled( true ); setEnabled( true );
} }
@@ -167,6 +187,8 @@ namespace glabels
{ {
if ( !mBlocked ) if ( !mBlocked )
{ {
loadLineFillPage();
loadRectSizePage();
} }
} }
@@ -220,9 +242,38 @@ namespace glabels
} }
void ObjectEditor::onRectSizeControlsChanged()
{
if ( !mBlocked )
{
mBlocked = true;
if ( sizeAspectCheck->isChecked() )
{
mObject->setSizeHonorAspect( sizeWSpin->value(), sizeHSpin->value() );
sizeWSpin->setValue( mObject->w() );
sizeHSpin->setValue( mObject->h() );
}
else
{
mObject->setSize( sizeWSpin->value(), sizeHSpin->value() );
}
mBlocked = false;
}
}
void ObjectEditor::onChanged() void ObjectEditor::onChanged()
{ {
if ( !mBlocked )
{
mBlocked = true;
qDebug() << "Form changed."; qDebug() << "Form changed.";
mBlocked = false;
}
} }
} }
+2
View File
@@ -58,6 +58,7 @@ namespace glabels
void hidePages(); void hidePages();
void loadLineFillPage(); void loadLineFillPage();
void loadPositionPage(); void loadPositionPage();
void loadRectSizePage();
///////////////////////////////// /////////////////////////////////
@@ -71,6 +72,7 @@ namespace glabels
void onLineControlsChanged(); void onLineControlsChanged();
void onFillControlsChanged(); void onFillControlsChanged();
void onPositionControlsChanged(); void onPositionControlsChanged();
void onRectSizeControlsChanged();
void onChanged(); void onChanged();
+15 -18
View File
@@ -1100,6 +1100,18 @@
<layout class="QVBoxLayout" name="verticalLayout_6"> <layout class="QVBoxLayout" name="verticalLayout_6">
<item> <item>
<widget class="QCheckBox" name="sizeAspectCheck"> <widget class="QCheckBox" name="sizeAspectCheck">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>132</width>
<height>0</height>
</size>
</property>
<property name="text"> <property name="text">
<string>Lock aspect ratio</string> <string>Lock aspect ratio</string>
</property> </property>
@@ -1887,7 +1899,7 @@
<sender>sizeWSpin</sender> <sender>sizeWSpin</sender>
<signal>valueChanged(double)</signal> <signal>valueChanged(double)</signal>
<receiver>ObjectEditor</receiver> <receiver>ObjectEditor</receiver>
<slot>onChanged()</slot> <slot>onRectSizeControlsChanged()</slot>
<hints> <hints>
<hint type="sourcelabel"> <hint type="sourcelabel">
<x>135</x> <x>135</x>
@@ -1903,7 +1915,7 @@
<sender>sizeHSpin</sender> <sender>sizeHSpin</sender>
<signal>valueChanged(double)</signal> <signal>valueChanged(double)</signal>
<receiver>ObjectEditor</receiver> <receiver>ObjectEditor</receiver>
<slot>onChanged()</slot> <slot>onRectSizeControlsChanged()</slot>
<hints> <hints>
<hint type="sourcelabel"> <hint type="sourcelabel">
<x>98</x> <x>98</x>
@@ -1915,22 +1927,6 @@
</hint> </hint>
</hints> </hints>
</connection> </connection>
<connection>
<sender>sizeAspectCheck</sender>
<signal>toggled(bool)</signal>
<receiver>ObjectEditor</receiver>
<slot>onChanged()</slot>
<hints>
<hint type="sourcelabel">
<x>191</x>
<y>293</y>
</hint>
<hint type="destinationlabel">
<x>395</x>
<y>275</y>
</hint>
</hints>
</connection>
<connection> <connection>
<sender>sizeResetImageButton</sender> <sender>sizeResetImageButton</sender>
<signal>clicked()</signal> <signal>clicked()</signal>
@@ -2066,5 +2062,6 @@
<slot>onLineControlsChanged()</slot> <slot>onLineControlsChanged()</slot>
<slot>onFillControlsChanged()</slot> <slot>onFillControlsChanged()</slot>
<slot>onPositionControlsChanged()</slot> <slot>onPositionControlsChanged()</slot>
<slot>onRectSizeControlsChanged()</slot>
</slots> </slots>
</ui> </ui>