Hooked up rect size controls in object editor.
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
#include <QTransform>
|
||||
#include <QFont>
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
#include <QtDebug>
|
||||
|
||||
#include "ColorNode.h"
|
||||
@@ -171,7 +172,7 @@ namespace glabels
|
||||
if ( mW != value )
|
||||
{
|
||||
mW = value;
|
||||
emit moved();
|
||||
emit changed();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -193,7 +194,7 @@ namespace glabels
|
||||
if ( mH != value )
|
||||
{
|
||||
mH = value;
|
||||
emit moved();
|
||||
emit changed();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -778,23 +779,13 @@ namespace glabels
|
||||
///
|
||||
void LabelModelObject::setSizeHonorAspect( double w, double h )
|
||||
{
|
||||
double aspectRatio = mH / mW;
|
||||
|
||||
if ( h > (w * aspectRatio) )
|
||||
if ( fabs(w - mW) > fabs(h - mH) )
|
||||
{
|
||||
h = w * aspectRatio;
|
||||
setWHonorAspect( w );
|
||||
}
|
||||
else
|
||||
{
|
||||
w = h / aspectRatio;
|
||||
}
|
||||
|
||||
if ( ( mW != w ) || ( mH != h ) )
|
||||
{
|
||||
mW = w;
|
||||
mH = h;
|
||||
|
||||
emit changed();
|
||||
setHHonorAspect( h );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "LabelModelObject.h"
|
||||
#include "LabelModelBoxObject.h"
|
||||
|
||||
#include <cmath>
|
||||
#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()
|
||||
{
|
||||
if ( mModel )
|
||||
{
|
||||
mBlocked = true;
|
||||
|
||||
posXSpin->setRange( -mModel->w(), 2*mModel->w() );
|
||||
posYSpin->setRange( -mModel->h(), 2*mModel->h() );
|
||||
double whMax = std::max( mModel->w(), mModel->h() );
|
||||
|
||||
posXSpin->setRange( -whMax, 2*whMax );
|
||||
posYSpin->setRange( -whMax, 2*whMax );
|
||||
sizeWSpin->setRange( 0, 2*whMax );
|
||||
sizeHSpin->setRange( 0, 2*whMax );
|
||||
|
||||
mBlocked = false;
|
||||
}
|
||||
@@ -141,6 +160,7 @@ namespace glabels
|
||||
|
||||
loadLineFillPage();
|
||||
loadPositionPage();
|
||||
loadRectSizePage();
|
||||
|
||||
setEnabled( true );
|
||||
}
|
||||
@@ -167,6 +187,8 @@ namespace glabels
|
||||
{
|
||||
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()
|
||||
{
|
||||
qDebug() << "Form changed.";
|
||||
if ( !mBlocked )
|
||||
{
|
||||
mBlocked = true;
|
||||
|
||||
qDebug() << "Form changed.";
|
||||
|
||||
mBlocked = false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -58,6 +58,7 @@ namespace glabels
|
||||
void hidePages();
|
||||
void loadLineFillPage();
|
||||
void loadPositionPage();
|
||||
void loadRectSizePage();
|
||||
|
||||
|
||||
/////////////////////////////////
|
||||
@@ -71,6 +72,7 @@ namespace glabels
|
||||
void onLineControlsChanged();
|
||||
void onFillControlsChanged();
|
||||
void onPositionControlsChanged();
|
||||
void onRectSizeControlsChanged();
|
||||
void onChanged();
|
||||
|
||||
|
||||
|
||||
+15
-18
@@ -1100,6 +1100,18 @@
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
<item>
|
||||
<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">
|
||||
<string>Lock aspect ratio</string>
|
||||
</property>
|
||||
@@ -1887,7 +1899,7 @@
|
||||
<sender>sizeWSpin</sender>
|
||||
<signal>valueChanged(double)</signal>
|
||||
<receiver>ObjectEditor</receiver>
|
||||
<slot>onChanged()</slot>
|
||||
<slot>onRectSizeControlsChanged()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>135</x>
|
||||
@@ -1903,7 +1915,7 @@
|
||||
<sender>sizeHSpin</sender>
|
||||
<signal>valueChanged(double)</signal>
|
||||
<receiver>ObjectEditor</receiver>
|
||||
<slot>onChanged()</slot>
|
||||
<slot>onRectSizeControlsChanged()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>98</x>
|
||||
@@ -1915,22 +1927,6 @@
|
||||
</hint>
|
||||
</hints>
|
||||
</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>
|
||||
<sender>sizeResetImageButton</sender>
|
||||
<signal>clicked()</signal>
|
||||
@@ -2066,5 +2062,6 @@
|
||||
<slot>onLineControlsChanged()</slot>
|
||||
<slot>onFillControlsChanged()</slot>
|
||||
<slot>onPositionControlsChanged()</slot>
|
||||
<slot>onRectSizeControlsChanged()</slot>
|
||||
</slots>
|
||||
</ui>
|
||||
|
||||
Reference in New Issue
Block a user