Skip to content

Commit 1c735d5

Browse files
committedNov 7, 2017
Handle position and size with units and ratio lock in item properties
1 parent aebe5a4 commit 1c735d5

File tree

7 files changed

+420
-393
lines changed

7 files changed

+420
-393
lines changed
 

‎python/core/layout/qgslayoutitem.sip

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ class QgsLayoutItem : QgsLayoutObject, QGraphicsRectItem, QgsLayoutUndoObjectInt
5353
enum UndoCommand
5454
{
5555
UndoIncrementalMove,
56+
UndoIncrementalResize,
5657
UndoStrokeColor,
5758
UndoStrokeWidth,
5859
UndoBackgroundColor,

‎src/core/layout/qgslayoutitem.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ class CORE_EXPORT QgsLayoutItem : public QgsLayoutObject, public QGraphicsRectIt
8484
enum UndoCommand
8585
{
8686
UndoIncrementalMove = 1, //!< Layout item incremental movement, e.g. as a result of a keypress
87+
UndoIncrementalResize, //!< Incremental resize
8788
UndoStrokeColor, //!< Stroke color adjustment
8889
UndoStrokeWidth, //!< Stroke width adjustment
8990
UndoBackgroundColor, //!< Background color adjustment

‎src/gui/layout/qgslayoutitemwidget.cpp

Lines changed: 172 additions & 195 deletions
Large diffs are not rendered by default.

‎src/gui/layout/qgslayoutitemwidget.h

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -206,18 +206,20 @@ class GUI_EXPORT QgsLayoutItemPropertiesWidget: public QWidget, private Ui::QgsL
206206
void mPageSpinBox_valueChanged( int );
207207
void mXPosSpin_valueChanged( double );
208208
void mYPosSpin_valueChanged( double );
209+
void positionUnitsChanged( QgsUnitTypes::LayoutUnit unit );
209210
void mWidthSpin_valueChanged( double );
210211
void mHeightSpin_valueChanged( double );
211-
212-
void mUpperLeftCheckBox_stateChanged( int state );
213-
void mUpperMiddleCheckBox_stateChanged( int state );
214-
void mUpperRightCheckBox_stateChanged( int state );
215-
void mMiddleLeftCheckBox_stateChanged( int state );
216-
void mMiddleCheckBox_stateChanged( int state );
217-
void mMiddleRightCheckBox_stateChanged( int state );
218-
void mLowerLeftCheckBox_stateChanged( int state );
219-
void mLowerMiddleCheckBox_stateChanged( int state );
220-
void mLowerRightCheckBox_stateChanged( int state );
212+
void sizeUnitsChanged( QgsUnitTypes::LayoutUnit unit );
213+
214+
void mUpperLeftCheckBox_stateChanged( bool state );
215+
void mUpperMiddleCheckBox_stateChanged( bool state );
216+
void mUpperRightCheckBox_stateChanged( bool state );
217+
void mMiddleLeftCheckBox_stateChanged( bool state );
218+
void mMiddleCheckBox_stateChanged( bool state );
219+
void mMiddleRightCheckBox_stateChanged( bool state );
220+
void mLowerLeftCheckBox_stateChanged( bool state );
221+
void mLowerMiddleCheckBox_stateChanged( bool state );
222+
void mLowerRightCheckBox_stateChanged( bool state );
221223

222224
void mBlendModeCombo_currentIndexChanged( int index );
223225
void opacityChanged( double value );
@@ -247,6 +249,8 @@ class GUI_EXPORT QgsLayoutItemPropertiesWidget: public QWidget, private Ui::QgsL
247249

248250
// void changeItemTransparency( int value );
249251
void changeItemPosition();
252+
void changeItemReference( QgsLayoutItem::ReferencePoint point );
253+
void changeItemSize();
250254

251255
};
252256

‎src/gui/layout/qgslayoutnewitempropertiesdialog.cpp

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ QgsLayoutItemPropertiesDialog::QgsLayoutItemPropertiesDialog( QWidget *parent, Q
2525

2626
//make button exclusive
2727
QButtonGroup *buttonGroup = new QButtonGroup( this );
28-
buttonGroup->addButton( mUpperLeftCheckBox );
29-
buttonGroup->addButton( mUpperMiddleCheckBox );
30-
buttonGroup->addButton( mUpperRightCheckBox );
31-
buttonGroup->addButton( mMiddleLeftCheckBox );
32-
buttonGroup->addButton( mMiddleCheckBox );
33-
buttonGroup->addButton( mMiddleRightCheckBox );
34-
buttonGroup->addButton( mLowerLeftCheckBox );
35-
buttonGroup->addButton( mLowerMiddleCheckBox );
36-
buttonGroup->addButton( mLowerRightCheckBox );
28+
buttonGroup->addButton( mUpperLeftRadioButton );
29+
buttonGroup->addButton( mUpperMiddleRadioButton );
30+
buttonGroup->addButton( mUpperRightRadioButton );
31+
buttonGroup->addButton( mMiddleLeftRadioButton );
32+
buttonGroup->addButton( mMiddleRadioButton );
33+
buttonGroup->addButton( mMiddleRightRadioButton );
34+
buttonGroup->addButton( mLowerLeftRadioButton );
35+
buttonGroup->addButton( mLowerMiddleRadioButton );
36+
buttonGroup->addButton( mLowerRightRadioButton );
3737
buttonGroup->setExclusive( true );
3838

3939
QgsSettings settings;
@@ -77,39 +77,39 @@ QgsLayoutSize QgsLayoutItemPropertiesDialog::itemSize() const
7777

7878
QgsLayoutItem::ReferencePoint QgsLayoutItemPropertiesDialog::referencePoint() const
7979
{
80-
if ( mUpperLeftCheckBox->checkState() == Qt::Checked )
80+
if ( mUpperLeftRadioButton->isChecked() )
8181
{
8282
return QgsLayoutItem::UpperLeft;
8383
}
84-
else if ( mUpperMiddleCheckBox->checkState() == Qt::Checked )
84+
else if ( mUpperMiddleRadioButton->isChecked() )
8585
{
8686
return QgsLayoutItem::UpperMiddle;
8787
}
88-
else if ( mUpperRightCheckBox->checkState() == Qt::Checked )
88+
else if ( mUpperRightRadioButton->isChecked() )
8989
{
9090
return QgsLayoutItem::UpperRight;
9191
}
92-
else if ( mMiddleLeftCheckBox->checkState() == Qt::Checked )
92+
else if ( mMiddleLeftRadioButton->isChecked() )
9393
{
9494
return QgsLayoutItem::MiddleLeft;
9595
}
96-
else if ( mMiddleCheckBox->checkState() == Qt::Checked )
96+
else if ( mMiddleRadioButton->isChecked() )
9797
{
9898
return QgsLayoutItem::Middle;
9999
}
100-
else if ( mMiddleRightCheckBox->checkState() == Qt::Checked )
100+
else if ( mMiddleRightRadioButton->isChecked() )
101101
{
102102
return QgsLayoutItem::MiddleRight;
103103
}
104-
else if ( mLowerLeftCheckBox->checkState() == Qt::Checked )
104+
else if ( mLowerLeftRadioButton->isChecked() )
105105
{
106106
return QgsLayoutItem::LowerLeft;
107107
}
108-
else if ( mLowerMiddleCheckBox->checkState() == Qt::Checked )
108+
else if ( mLowerMiddleRadioButton->isChecked() )
109109
{
110110
return QgsLayoutItem::LowerMiddle;
111111
}
112-
else if ( mLowerRightCheckBox->checkState() == Qt::Checked )
112+
else if ( mLowerRightRadioButton->isChecked() )
113113
{
114114
return QgsLayoutItem::LowerRight;
115115
}
@@ -121,39 +121,39 @@ void QgsLayoutItemPropertiesDialog::setReferencePoint( QgsLayoutItem::ReferenceP
121121
switch ( point )
122122
{
123123
case QgsLayoutItem::UpperLeft:
124-
mUpperLeftCheckBox->setChecked( true );
124+
mUpperLeftRadioButton->setChecked( true );
125125
break;
126126

127127
case QgsLayoutItem::UpperMiddle:
128-
mUpperMiddleCheckBox->setChecked( true );
128+
mUpperMiddleRadioButton->setChecked( true );
129129
break;
130130

131131
case QgsLayoutItem::UpperRight:
132-
mUpperRightCheckBox->setChecked( true );
132+
mUpperRightRadioButton->setChecked( true );
133133
break;
134134

135135
case QgsLayoutItem::MiddleLeft:
136-
mMiddleLeftCheckBox->setChecked( true );
136+
mMiddleLeftRadioButton->setChecked( true );
137137
break;
138138

139139
case QgsLayoutItem::Middle:
140-
mMiddleCheckBox->setChecked( true );
140+
mMiddleRadioButton->setChecked( true );
141141
break;
142142

143143
case QgsLayoutItem::MiddleRight:
144-
mMiddleRightCheckBox->setChecked( true );
144+
mMiddleRightRadioButton->setChecked( true );
145145
break;
146146

147147
case QgsLayoutItem::LowerLeft:
148-
mLowerLeftCheckBox->setChecked( true );
148+
mLowerLeftRadioButton->setChecked( true );
149149
break;
150150

151151
case QgsLayoutItem::LowerMiddle:
152-
mLowerMiddleCheckBox->setChecked( true );
152+
mLowerMiddleRadioButton->setChecked( true );
153153
break;
154154

155155
case QgsLayoutItem::LowerRight:
156-
mLowerRightCheckBox->setChecked( true );
156+
mLowerRightRadioButton->setChecked( true );
157157
break;
158158
}
159159
}

0 commit comments

Comments
 (0)
Please sign in to comment.