Hooked up rect size controls in object editor.
This commit is contained in:
@@ -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();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
{
|
{
|
||||||
qDebug() << "Form changed.";
|
if ( !mBlocked )
|
||||||
|
{
|
||||||
|
mBlocked = true;
|
||||||
|
|
||||||
|
qDebug() << "Form changed.";
|
||||||
|
|
||||||
|
mBlocked = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user