Hi, D_Stranz.
Follow the requested code, sorry for the lack of attention.
I had already separated the code.
{
if(!m_rubberBand.isNull())
{
m_rubberBand.setBottomRight(event->scenePos() - pos());
this->updatePage();
}
}
QRectF PageObject
::boundingRect() const {
qreal scaleX = m_view->resolutionX() / 72.0;
qreal scaleY = m_view->resolutionY() / 72.0;
qreal width = m_size.width();
qreal height = m_size.height();
switch(m_view->rotation())
{
case DocumentView::RotateBy0:
case DocumentView::RotateBy180:
result
= QRectF(0.0,
0.0, qCeil
(scaleX
* width
), qCeil
(scaleY
* height
));
break;
case DocumentView::RotateBy90:
case DocumentView::RotateBy270:
result
= QRectF(0.0,
0.0, qCeil
(scaleX
* height
), qCeil
(scaleY
* width
));
break;
}
return result;
}
void PageObject::updatePage()
{
this->scene()->update(boundingRect().translated(pos()));
}
void PageObject::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if(!m_rubberBand.isNull())
{
m_rubberBand.setBottomRight(event->scenePos() - pos());
this->updatePage();
}
}
QRectF PageObject::boundingRect() const
{
QRectF result;
qreal scaleX = m_view->resolutionX() / 72.0;
qreal scaleY = m_view->resolutionY() / 72.0;
qreal width = m_size.width();
qreal height = m_size.height();
switch(m_view->rotation())
{
case DocumentView::RotateBy0:
case DocumentView::RotateBy180:
result = QRectF(0.0, 0.0, qCeil(scaleX * width), qCeil(scaleY * height));
break;
case DocumentView::RotateBy90:
case DocumentView::RotateBy270:
result = QRectF(0.0, 0.0, qCeil(scaleX * height), qCeil(scaleY * width));
break;
}
return result;
}
void PageObject::updatePage()
{
this->scene()->update(boundingRect().translated(pos()));
}
To copy to clipboard, switch view to plain text mode
Bookmarks