Skip to content

Commit 5c4966e

Browse files
committed
Merge pull request #999 from nyalldawson/composer_pos
[composer] Change to pos() for item position
2 parents 94c6657 + 1a88acb commit 5c4966e

18 files changed

+126
-145
lines changed

src/app/composer/qgscomposeritemwidget.cpp

+35-35
Original file line numberDiff line numberDiff line change
@@ -244,64 +244,64 @@ void QgsComposerItemWidget::setValuesForGuiPositionElements()
244244
if ( mItem->lastUsedPositionMode() == QgsComposerItem::UpperLeft )
245245
{
246246
mUpperLeftCheckBox->setChecked( true );
247-
mXLineEdit->setText( QString::number( mItem->transform().dx() ) );
248-
mYLineEdit->setText( QString::number( mItem->transform().dy() ) );
247+
mXLineEdit->setText( QString::number( mItem->pos().x() ) );
248+
mYLineEdit->setText( QString::number( mItem->pos().y() ) );
249249
}
250250

251251
if ( mItem->lastUsedPositionMode() == QgsComposerItem::UpperMiddle )
252252
{
253253
mUpperMiddleCheckBox->setChecked( true );
254-
mXLineEdit->setText( QString::number( mItem->transform().dx() + mItem->rect().width() / 2.0 ) );
255-
mYLineEdit->setText( QString::number( mItem->transform().dy() ) );
254+
mXLineEdit->setText( QString::number( mItem->pos().x() + mItem->rect().width() / 2.0 ) );
255+
mYLineEdit->setText( QString::number( mItem->pos().y() ) );
256256
}
257257

258258
if ( mItem->lastUsedPositionMode() == QgsComposerItem::UpperRight )
259259
{
260260
mUpperRightCheckBox->setChecked( true );
261-
mXLineEdit->setText( QString::number( mItem->transform().dx() + mItem->rect().width() ) );
262-
mYLineEdit->setText( QString::number( mItem->transform().dy() ) );
261+
mXLineEdit->setText( QString::number( mItem->pos().x() + mItem->rect().width() ) );
262+
mYLineEdit->setText( QString::number( mItem->pos().y() ) );
263263
}
264264

265265
if ( mItem->lastUsedPositionMode() == QgsComposerItem::MiddleLeft )
266266
{
267267
mMiddleLeftCheckBox->setChecked( true );
268-
mXLineEdit->setText( QString::number( mItem->transform().dx() ) );
269-
mYLineEdit->setText( QString::number( mItem->transform().dy() + mItem->rect().height() / 2.0 ) );
268+
mXLineEdit->setText( QString::number( mItem->pos().x() ) );
269+
mYLineEdit->setText( QString::number( mItem->pos().y() + mItem->rect().height() / 2.0 ) );
270270
}
271271

272272
if ( mItem->lastUsedPositionMode() == QgsComposerItem::Middle )
273273
{
274274
mMiddleCheckBox->setChecked( true );
275-
mXLineEdit->setText( QString::number( mItem->transform().dx() + mItem->rect().width() / 2.0 ) );
276-
mYLineEdit->setText( QString::number( mItem->transform().dy() + mItem->rect().height() / 2.0 ) );
275+
mXLineEdit->setText( QString::number( mItem->pos().x() + mItem->rect().width() / 2.0 ) );
276+
mYLineEdit->setText( QString::number( mItem->pos().y() + mItem->rect().height() / 2.0 ) );
277277
}
278278

279279
if ( mItem->lastUsedPositionMode() == QgsComposerItem::MiddleRight )
280280
{
281281
mMiddleRightCheckBox->setChecked( true );
282-
mXLineEdit->setText( QString::number( mItem->transform().dx() + mItem->rect().width() ) );
283-
mYLineEdit->setText( QString::number( mItem->transform().dy() + mItem->rect().height() / 2.0 ) );
282+
mXLineEdit->setText( QString::number( mItem->pos().x() + mItem->rect().width() ) );
283+
mYLineEdit->setText( QString::number( mItem->pos().y() + mItem->rect().height() / 2.0 ) );
284284
}
285285

286286
if ( mItem->lastUsedPositionMode() == QgsComposerItem::LowerLeft )
287287
{
288288
mLowerLeftCheckBox->setChecked( true );
289-
mXLineEdit->setText( QString::number( mItem->transform().dx() ) );
290-
mYLineEdit->setText( QString::number( mItem->transform().dy() + mItem->rect().height() ) );
289+
mXLineEdit->setText( QString::number( mItem->pos().x() ) );
290+
mYLineEdit->setText( QString::number( mItem->pos().y() + mItem->rect().height() ) );
291291
}
292292

293293
if ( mItem->lastUsedPositionMode() == QgsComposerItem::LowerMiddle )
294294
{
295295
mLowerMiddleCheckBox->setChecked( true );
296-
mXLineEdit->setText( QString::number( mItem->transform().dx() + mItem->rect().width() / 2.0 ) );
297-
mYLineEdit->setText( QString::number( mItem->transform().dy() + mItem->rect().height() ) );
296+
mXLineEdit->setText( QString::number( mItem->pos().x() + mItem->rect().width() / 2.0 ) );
297+
mYLineEdit->setText( QString::number( mItem->pos().y() + mItem->rect().height() ) );
298298
}
299299

300300
if ( mItem->lastUsedPositionMode() == QgsComposerItem::LowerRight )
301301
{
302302
mLowerRightCheckBox->setChecked( true );
303-
mXLineEdit->setText( QString::number( mItem->transform().dx() + mItem->rect().width() ) );
304-
mYLineEdit->setText( QString::number( mItem->transform().dy() + mItem->rect().height() ) );
303+
mXLineEdit->setText( QString::number( mItem->pos().x() + mItem->rect().width() ) );
304+
mYLineEdit->setText( QString::number( mItem->pos().y() + mItem->rect().height() ) );
305305
}
306306

307307
mWidthLineEdit->setText( QString::number( mItem->rect().width() ) );
@@ -395,7 +395,7 @@ void QgsComposerItemWidget::on_mUpperLeftCheckBox_stateChanged( int state )
395395
return;
396396
if ( mItem )
397397
{
398-
mItem->setItemPosition( mItem->transform().dx(), mItem->transform().dy(), QgsComposerItem::UpperLeft );
398+
mItem->setItemPosition( mItem->pos().x(), mItem->pos().y(), QgsComposerItem::UpperLeft );
399399
}
400400
setValuesForGuiPositionElements();
401401
}
@@ -406,8 +406,8 @@ void QgsComposerItemWidget::on_mUpperMiddleCheckBox_stateChanged( int state )
406406
return;
407407
if ( mItem )
408408
{
409-
mItem->setItemPosition( mItem->transform().dx() + mItem->rect().width() / 2.0,
410-
mItem->transform().dy(), QgsComposerItem::UpperMiddle );
409+
mItem->setItemPosition( mItem->pos().x() + mItem->rect().width() / 2.0,
410+
mItem->pos().y(), QgsComposerItem::UpperMiddle );
411411
}
412412
setValuesForGuiPositionElements();
413413
}
@@ -418,8 +418,8 @@ void QgsComposerItemWidget::on_mUpperRightCheckBox_stateChanged( int state )
418418
return;
419419
if ( mItem )
420420
{
421-
mItem->setItemPosition( mItem->transform().dx() + mItem->rect().width(),
422-
mItem->transform().dy(), QgsComposerItem::UpperRight );
421+
mItem->setItemPosition( mItem->pos().x() + mItem->rect().width(),
422+
mItem->pos().y(), QgsComposerItem::UpperRight );
423423
}
424424
setValuesForGuiPositionElements();
425425
}
@@ -430,8 +430,8 @@ void QgsComposerItemWidget::on_mMiddleLeftCheckBox_stateChanged( int state )
430430
return;
431431
if ( mItem )
432432
{
433-
mItem->setItemPosition( mItem->transform().dx(),
434-
mItem->transform().dy() + mItem->rect().height() / 2.0, QgsComposerItem::MiddleLeft );
433+
mItem->setItemPosition( mItem->pos().x(),
434+
mItem->pos().y() + mItem->rect().height() / 2.0, QgsComposerItem::MiddleLeft );
435435
}
436436
setValuesForGuiPositionElements();
437437
}
@@ -442,8 +442,8 @@ void QgsComposerItemWidget::on_mMiddleCheckBox_stateChanged( int state )
442442
return;
443443
if ( mItem )
444444
{
445-
mItem->setItemPosition( mItem->transform().dx() + mItem->rect().width() / 2.0,
446-
mItem->transform().dy() + mItem->rect().height() / 2.0, QgsComposerItem::Middle );
445+
mItem->setItemPosition( mItem->pos().x() + mItem->rect().width() / 2.0,
446+
mItem->pos().y() + mItem->rect().height() / 2.0, QgsComposerItem::Middle );
447447
}
448448
setValuesForGuiPositionElements();
449449
}
@@ -454,8 +454,8 @@ void QgsComposerItemWidget::on_mMiddleRightCheckBox_stateChanged( int state )
454454
return;
455455
if ( mItem )
456456
{
457-
mItem->setItemPosition( mItem->transform().dx() + mItem->rect().width(),
458-
mItem->transform().dy() + mItem->rect().height() / 2.0, QgsComposerItem::MiddleRight );
457+
mItem->setItemPosition( mItem->pos().x() + mItem->rect().width(),
458+
mItem->pos().y() + mItem->rect().height() / 2.0, QgsComposerItem::MiddleRight );
459459
}
460460
setValuesForGuiPositionElements();
461461
}
@@ -466,8 +466,8 @@ void QgsComposerItemWidget::on_mLowerLeftCheckBox_stateChanged( int state )
466466
return;
467467
if ( mItem )
468468
{
469-
mItem->setItemPosition( mItem->transform().dx(),
470-
mItem->transform().dy() + mItem->rect().height(), QgsComposerItem::LowerLeft );
469+
mItem->setItemPosition( mItem->pos().x(),
470+
mItem->pos().y() + mItem->rect().height(), QgsComposerItem::LowerLeft );
471471
}
472472
setValuesForGuiPositionElements();
473473
}
@@ -478,8 +478,8 @@ void QgsComposerItemWidget::on_mLowerMiddleCheckBox_stateChanged( int state )
478478
return;
479479
if ( mItem )
480480
{
481-
mItem->setItemPosition( mItem->transform().dx() + mItem->rect().width() / 2.0,
482-
mItem->transform().dy() + mItem->rect().height(), QgsComposerItem::LowerMiddle );
481+
mItem->setItemPosition( mItem->pos().x() + mItem->rect().width() / 2.0,
482+
mItem->pos().y() + mItem->rect().height(), QgsComposerItem::LowerMiddle );
483483
}
484484
setValuesForGuiPositionElements();
485485
}
@@ -490,8 +490,8 @@ void QgsComposerItemWidget::on_mLowerRightCheckBox_stateChanged( int state )
490490
return;
491491
if ( mItem )
492492
{
493-
mItem->setItemPosition( mItem->transform().dx() + mItem->rect().width(),
494-
mItem->transform().dy() + mItem->rect().height(), QgsComposerItem::LowerRight );
493+
mItem->setItemPosition( mItem->pos().x() + mItem->rect().width(),
494+
mItem->pos().y() + mItem->rect().height(), QgsComposerItem::LowerRight );
495495
}
496496
setValuesForGuiPositionElements();
497497
}

src/core/composer/qgscomposerarrow.cpp

+8-8
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ void QgsComposerArrow::paint( QPainter* painter, const QStyleOptionGraphicsItem
7676
arrowPen.setColor( mArrowColor );
7777
painter->setPen( arrowPen );
7878
painter->setBrush( QBrush( mArrowColor ) );
79-
painter->drawLine( QPointF( mStartPoint.x() - transform().dx(), mStartPoint.y() - transform().dy() ), QPointF( mStopPoint.x() - transform().dx(), mStopPoint.y() - transform().dy() ) );
79+
painter->drawLine( QPointF( mStartPoint.x() - pos().x(), mStartPoint.y() - pos().y() ), QPointF( mStopPoint.x() - pos().x(), mStopPoint.y() - pos().y() ) );
8080

8181
if ( mMarkerMode == DefaultMarker )
8282
{
@@ -98,10 +98,10 @@ void QgsComposerArrow::paint( QPainter* painter, const QStyleOptionGraphicsItem
9898
void QgsComposerArrow::setSceneRect( const QRectF& rectangle )
9999
{
100100
//maintain the relative position of start and stop point in the rectangle
101-
double startPointXPos = ( mStartPoint.x() - transform().dx() ) / rect().width();
102-
double startPointYPos = ( mStartPoint.y() - transform().dy() ) / rect().height();
103-
double stopPointXPos = ( mStopPoint.x() - transform().dx() ) / rect().width();
104-
double stopPointYPos = ( mStopPoint.y() - transform().dy() ) / rect().height();
101+
double startPointXPos = ( mStartPoint.x() - pos().x() ) / rect().width();
102+
double startPointYPos = ( mStartPoint.y() - pos().y() ) / rect().height();
103+
double stopPointXPos = ( mStopPoint.x() - pos().x() ) / rect().width();
104+
double stopPointYPos = ( mStopPoint.y() - pos().y() ) / rect().height();
105105

106106
mStartPoint.setX( rectangle.left() + startPointXPos * rectangle.width() );
107107
mStartPoint.setY( rectangle.top() + startPointYPos * rectangle.height() );
@@ -117,7 +117,7 @@ void QgsComposerArrow::drawHardcodedMarker( QPainter *p, MarkerType type )
117117
QBrush arrowBrush = p->brush();
118118
arrowBrush.setColor( mArrowColor );
119119
p->setBrush( arrowBrush );
120-
drawArrowHead( p, mStopPoint.x() - transform().dx(), mStopPoint.y() - transform().dy(), angle( mStartPoint, mStopPoint ), mArrowHeadWidth );
120+
drawArrowHead( p, mStopPoint.x() - pos().x(), mStopPoint.y() - pos().y(), angle( mStartPoint, mStopPoint ), mArrowHeadWidth );
121121
}
122122

123123
void QgsComposerArrow::drawSVGMarker( QPainter* p, MarkerType type, const QString &markerPath )
@@ -156,12 +156,12 @@ void QgsComposerArrow::drawSVGMarker( QPainter* p, MarkerType type, const QStrin
156156
QPointF canvasPoint;
157157
if ( type == StartMarker )
158158
{
159-
canvasPoint = QPointF( mStartPoint.x() - transform().dx(), mStartPoint.y() - transform().dy() );
159+
canvasPoint = QPointF( mStartPoint.x() - pos().x(), mStartPoint.y() - pos().y() );
160160
imageFixPoint.setY( mStartArrowHeadHeight );
161161
}
162162
else //end marker
163163
{
164-
canvasPoint = QPointF( mStopPoint.x() - transform().dx(), mStopPoint.y() - transform().dy() );
164+
canvasPoint = QPointF( mStopPoint.x() - pos().x(), mStopPoint.y() - pos().y() );
165165
imageFixPoint.setY( 0 );
166166
}
167167

src/core/composer/qgscomposeritem.cpp

+5-12
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,7 @@ QgsComposerItem::QgsComposerItem( qreal x, qreal y, qreal width, qreal height, Q
8686
, mUuid( QUuid::createUuid().toString() )
8787
{
8888
init( manageZValue );
89-
QTransform t;
90-
t.translate( x, y );
91-
setTransform( t );
89+
setPos( x, y );
9290
}
9391

9492
void QgsComposerItem::init( bool manageZValue )
@@ -165,8 +163,8 @@ bool QgsComposerItem::_writeXML( QDomElement& itemElem, QDomDocument& doc ) cons
165163
}
166164

167165
//scene rect
168-
composerItemElem.setAttribute( "x", QString::number( transform().dx() ) );
169-
composerItemElem.setAttribute( "y", QString::number( transform().dy() ) );
166+
composerItemElem.setAttribute( "x", QString::number( pos().x() ) );
167+
composerItemElem.setAttribute( "y", QString::number( pos().y() ) );
170168
composerItemElem.setAttribute( "width", QString::number( rect().width() ) );
171169
composerItemElem.setAttribute( "height", QString::number( rect().height() ) );
172170
composerItemElem.setAttribute( "positionMode", QString::number(( int ) mLastUsedPositionMode ) );
@@ -416,8 +414,7 @@ void QgsComposerItem::setPositionLock( bool lock )
416414

417415
void QgsComposerItem::move( double dx, double dy )
418416
{
419-
QTransform t = transform();
420-
QRectF newSceneRect( t.dx() + dx, t.dy() + dy, rect().width(), rect().height() );
417+
QRectF newSceneRect( pos().x() + dx, pos().y() + dy, rect().width(), rect().height() );
421418
setSceneRect( newSceneRect );
422419
}
423420

@@ -482,11 +479,7 @@ void QgsComposerItem::setSceneRect( const QRectF& rectangle )
482479

483480
QRectF newRect( 0, 0, newWidth, newHeight );
484481
QGraphicsRectItem::setRect( newRect );
485-
486-
//set up transformation matrix for item coordinates
487-
QTransform t;
488-
t.translate( xTranslation, yTranslation );
489-
setTransform( t );
482+
setPos( xTranslation, yTranslation );
490483

491484
emit sizeChanged();
492485
}

src/core/composer/qgscomposeritemgroup.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ void QgsComposerItemGroup::addItem( QgsComposerItem* item )
6060
item->setFlag( QGraphicsItem::ItemIsSelectable, false ); //item in groups cannot be selected
6161

6262
//update extent (which is in scene coordinates)
63-
double minXItem = item->transform().dx();
64-
double minYItem = item->transform().dy();
63+
double minXItem = item->pos().x();
64+
double minYItem = item->pos().y();
6565
double maxXItem = minXItem + item->rect().width();
6666
double maxYItem = minYItem + item->rect().height();
6767

@@ -126,9 +126,9 @@ void QgsComposerItemGroup::setSceneRect( const QRectF& rectangle )
126126
{
127127
//calculate values between 0 and 1 for boundaries of all contained items, depending on their positions in the item group rectangle.
128128
//then position the item boundaries in the new item group rect such that these values are the same
129-
double xLeftCurrent = transform().dx();
129+
double xLeftCurrent = pos().x();
130130
double xRightCurrent = xLeftCurrent + rect().width();
131-
double yTopCurrent = transform().dy();
131+
double yTopCurrent = pos().y();
132132
double yBottomCurrent = yTopCurrent + rect().height();
133133

134134
double xItemLeft, xItemRight, yItemTop, yItemBottom;
@@ -139,9 +139,9 @@ void QgsComposerItemGroup::setSceneRect( const QRectF& rectangle )
139139
QSet<QgsComposerItem*>::iterator item_it = mItems.begin();
140140
for ( ; item_it != mItems.end(); ++item_it )
141141
{
142-
xItemLeft = ( *item_it )->transform().dx();
142+
xItemLeft = ( *item_it )->pos().x();
143143
xItemRight = xItemLeft + ( *item_it )->rect().width();
144-
yItemTop = ( *item_it )->transform().dy();
144+
yItemTop = ( *item_it )->pos().y();
145145
yItemBottom = yItemTop + ( *item_it )->rect().height();
146146

147147
xParamLeft = ( xItemLeft - xLeftCurrent ) / ( xRightCurrent - xLeftCurrent );

src/core/composer/qgscomposerlabel.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ void QgsComposerLabel::adjustSizeToText()
237237
double yShift = 0;
238238
itemShiftAdjustSize( width, height, xShift, yShift );
239239

240-
QgsComposerItem::setSceneRect( QRectF( transform().dx() + xShift, transform().dy() + yShift, width, height ) );
240+
QgsComposerItem::setSceneRect( QRectF( pos().x() + xShift, pos().y() + yShift, width, height ) );
241241
}
242242

243243
QFont QgsComposerLabel::font() const
@@ -252,8 +252,8 @@ void QgsComposerLabel::setRotation( double r )
252252
QgsComposerItem::setRotation( r );
253253
sizeChangedByRotation( width, height );
254254

255-
double x = transform().dx() + rect().width() / 2.0 - width / 2.0;
256-
double y = transform().dy() + rect().height() / 2.0 - height / 2.0;
255+
double x = pos().x() + rect().width() / 2.0 - width / 2.0;
256+
double y = pos().y() + rect().height() / 2.0 - height / 2.0;
257257
QgsComposerItem::setSceneRect( QRectF( x, y, width, height ) );
258258
}
259259

src/core/composer/qgscomposerlegend.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,11 @@ QSizeF QgsComposerLegend::paintAndDetermineSize( QPainter* painter )
175175
//adjust box if width or height is to small
176176
if ( painter && size.height() > rect().height() )
177177
{
178-
setSceneRect( QRectF( transform().dx(), transform().dy(), rect().width(), size.height() ) );
178+
setSceneRect( QRectF( pos().x(), pos().y(), rect().width(), size.height() ) );
179179
}
180180
if ( painter && size.width() > rect().width() )
181181
{
182-
setSceneRect( QRectF( transform().dx(), transform().dy(), size.width(), rect().height() ) );
182+
setSceneRect( QRectF( pos().x(), pos().y(), size.width(), rect().height() ) );
183183
}
184184

185185
if ( painter )
@@ -294,7 +294,7 @@ void QgsComposerLegend::adjustBoxSize()
294294
QgsDebugMsg( QString( "width = %1 height = %2" ).arg( size.width() ).arg( size.height() ) );
295295
if ( size.isValid() )
296296
{
297-
setSceneRect( QRectF( transform().dx(), transform().dy(), size.width(), size.height() ) );
297+
setSceneRect( QRectF( pos().x(), pos().y(), size.width(), size.height() ) );
298298
}
299299
}
300300

src/core/composer/qgscomposermap.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ void QgsComposerMap::resize( double dx, double dy )
470470
{
471471
//setRect
472472
QRectF currentRect = rect();
473-
QRectF newSceneRect = QRectF( transform().dx(), transform().dy(), currentRect.width() + dx, currentRect.height() + dy );
473+
QRectF newSceneRect = QRectF( pos().x(), pos().y(), currentRect.width() + dx, currentRect.height() + dy );
474474
setSceneRect( newSceneRect );
475475
updateItem();
476476
}
@@ -591,7 +591,7 @@ void QgsComposerMap::setNewExtent( const QgsRectangle& extent )
591591

592592
double newHeight = currentRect.width() * extent.height() / extent.width();
593593

594-
setSceneRect( QRectF( transform().dx(), transform().dy(), currentRect.width(), newHeight ) );
594+
setSceneRect( QRectF( pos().x(), pos().y(), currentRect.width(), newHeight ) );
595595
updateItem();
596596
}
597597

src/core/composer/qgscomposermousehandles.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -1026,12 +1026,12 @@ void QgsComposerMouseHandles::collectAlignCoordinates( QMap< double, const QgsCo
10261026
{
10271027
continue;
10281028
}
1029-
alignCoordsX.insert( currentItem->transform().dx(), currentItem );
1030-
alignCoordsX.insert( currentItem->transform().dx() + currentItem->rect().width(), currentItem );
1031-
alignCoordsX.insert( currentItem->transform().dx() + currentItem->rect().center().x(), currentItem );
1032-
alignCoordsY.insert( currentItem->transform().dy() + currentItem->rect().top(), currentItem );
1033-
alignCoordsY.insert( currentItem->transform().dy() + currentItem->rect().center().y(), currentItem );
1034-
alignCoordsY.insert( currentItem->transform().dy() + currentItem->rect().bottom(), currentItem );
1029+
alignCoordsX.insert( currentItem->pos().x(), currentItem );
1030+
alignCoordsX.insert( currentItem->pos().x() + currentItem->rect().width(), currentItem );
1031+
alignCoordsX.insert( currentItem->pos().x() + currentItem->rect().center().x(), currentItem );
1032+
alignCoordsY.insert( currentItem->pos().y() + currentItem->rect().top(), currentItem );
1033+
alignCoordsY.insert( currentItem->pos().y() + currentItem->rect().center().y(), currentItem );
1034+
alignCoordsY.insert( currentItem->pos().y() + currentItem->rect().bottom(), currentItem );
10351035
}
10361036
}
10371037

0 commit comments

Comments
 (0)