Changeset View
Changeset View
Standalone View
Standalone View
src/wrtembed/KReportDesignerItemRectBase.cpp
Show All 29 Lines | |||||
30 | { | 30 | { | ||
31 | public: | 31 | public: | ||
32 | Private(); | 32 | Private(); | ||
33 | ~Private(); | 33 | ~Private(); | ||
34 | 34 | | |||
35 | int grabAction = 0; | 35 | int grabAction = 0; | ||
36 | int dpiX = KReportPrivate::dpiX(); | 36 | int dpiX = KReportPrivate::dpiX(); | ||
37 | int dpiY = KReportPrivate::dpiY(); | 37 | int dpiY = KReportPrivate::dpiY(); | ||
38 | bool insideSetSceneRect = false; | ||||
38 | }; | 39 | }; | ||
39 | 40 | | |||
40 | KReportDesignerItemRectBase::Private::Private() | 41 | KReportDesignerItemRectBase::Private::Private() | ||
41 | { | 42 | { | ||
42 | } | 43 | } | ||
43 | 44 | | |||
44 | KReportDesignerItemRectBase::Private::~Private() | 45 | KReportDesignerItemRectBase::Private::~Private() | ||
45 | { | 46 | { | ||
Show All 23 Lines | |||||
69 | 70 | | |||
70 | void KReportDesignerItemRectBase::setSceneRect(const QPointF& topLeft, const QSizeF& size, SceneRectFlag update) | 71 | void KReportDesignerItemRectBase::setSceneRect(const QPointF& topLeft, const QSizeF& size, SceneRectFlag update) | ||
71 | { | 72 | { | ||
72 | setSceneRect(QRectF(topLeft, size), update); | 73 | setSceneRect(QRectF(topLeft, size), update); | ||
73 | } | 74 | } | ||
74 | 75 | | |||
75 | void KReportDesignerItemRectBase::setSceneRect(const QRectF& rect, SceneRectFlag update) | 76 | void KReportDesignerItemRectBase::setSceneRect(const QRectF& rect, SceneRectFlag update) | ||
76 | { | 77 | { | ||
78 | if (d->insideSetSceneRect) { | ||||
79 | return; | ||||
80 | } | ||||
81 | d->insideSetSceneRect = true; | ||||
77 | QGraphicsRectItem::setPos(rect.x(), rect.y()); | 82 | QGraphicsRectItem::setPos(rect.x(), rect.y()); | ||
78 | setRect(0, 0, rect.width(), rect.height()); | 83 | setRect(0, 0, rect.width(), rect.height()); | ||
79 | if (update == SceneRectFlag::UpdateProperty) { | 84 | if (update == SceneRectFlag::UpdateProperty) { | ||
80 | item()->setPosition(KReportItemBase::positionFromScene(QPointF(rect.x(), rect.y()))); | 85 | item()->setPosition(KReportItemBase::positionFromScene(QPointF(rect.x(), rect.y()))); | ||
81 | item()->setSize(KReportItemBase::sizeFromScene(QSizeF(rect.width(), rect.height()))); | 86 | item()->setSize(KReportItemBase::sizeFromScene(QSizeF(rect.width(), rect.height()))); | ||
82 | } | 87 | } | ||
83 | this->update(); | 88 | this->update(); | ||
89 | d->insideSetSceneRect = false; | ||||
84 | } | 90 | } | ||
85 | 91 | | |||
86 | void KReportDesignerItemRectBase::mousePressEvent(QGraphicsSceneMouseEvent * event) | 92 | void KReportDesignerItemRectBase::mousePressEvent(QGraphicsSceneMouseEvent * event) | ||
87 | { | 93 | { | ||
88 | //Update and show properties | 94 | //Update and show properties | ||
89 | item()->setPosition(KReportItemBase::positionFromScene(QPointF(sceneRect().x(), sceneRect().y()))); | 95 | item()->setPosition(KReportItemBase::positionFromScene(QPointF(sceneRect().x(), sceneRect().y()))); | ||
90 | designer()->changeSet(item()->propertySet()); | 96 | designer()->changeSet(item()->propertySet()); | ||
91 | setSelected(true); | 97 | setSelected(true); | ||
▲ Show 20 Lines • Show All 191 Lines • ▼ Show 20 Line(s) | 280 | if (change == ItemPositionChange) { | |||
283 | if (newPos.y() < 0) | 289 | if (newPos.y() < 0) | ||
284 | newPos.setY(0); | 290 | newPos.setY(0); | ||
285 | else if (newPos.y() > (scene()->height() - rect().height())) | 291 | else if (newPos.y() > (scene()->height() - rect().height())) | ||
286 | newPos.setY(scene()->height() - rect().height()); | 292 | newPos.setY(scene()->height() - rect().height()); | ||
287 | 293 | | |||
288 | return newPos; | 294 | return newPos; | ||
289 | } else if (change == ItemPositionHasChanged) { | 295 | } else if (change == ItemPositionHasChanged) { | ||
290 | setSceneRect(value.toPointF(), | 296 | setSceneRect(value.toPointF(), | ||
291 | KReportItemBase::sceneSize(item()->size()), SceneRectFlag::DontUpdateProperty); | 297 | KReportItemBase::sceneSize(item()->size()), SceneRectFlag::UpdateProperty); | ||
292 | } else if (change == ItemSceneHasChanged && item()) { | 298 | } else if (change == ItemSceneHasChanged && item()) { | ||
293 | QPointF newPos = pos(); | 299 | QPointF newPos = pos(); | ||
294 | 300 | | |||
295 | newPos = section->gridPoint(newPos); | 301 | newPos = section->gridPoint(newPos); | ||
296 | if (newPos.x() < 0) | 302 | if (newPos.x() < 0) | ||
297 | newPos.setX(0); | 303 | newPos.setX(0); | ||
298 | else if (newPos.x() > (scene()->width() - rect().width())) | 304 | else if (newPos.x() > (scene()->width() - rect().width())) | ||
299 | newPos.setX(scene()->width() - rect().width()); | 305 | newPos.setX(scene()->width() - rect().width()); | ||
▲ Show 20 Lines • Show All 105 Lines • Show Last 20 Lines |