Hi ,
Still it is not working.
void
DiagramView
:: contentsMouseMoveEvent(QMouseEvent* a_e
){
if(cursor().shape() == Qt::CrossCursor) {
//QPoint myPoint = viewportToContents(a_e->pos());
m_zoomEndPoint = (inverseWorldMatrix()).map(mapFromParent(a_e->pos()));
int width = m_zoomEndPoint.x()-m_zoomStartPoint.x();
int height = m_zoomEndPoint.y()-m_zoomStartPoint.y();
if((width>0)&&(height>0)) {
if(!m_zoomRegionRect) {
//! canvas item do not exist
m_zoomRegionRect = new Q3CanvasRectangle(m_zoomStartPoint.x(),
m_zoomStartPoint.y(),
width, height, canvas());
m_zoomRegionRect->setBrush(Qt::DiagCrossPattern);
m_zoomRegionRect
->setPen
(QPen(Qt
::darkGreen,
2, Qt::DashDotDotLine));
m_zoomRegionRect->setZ(100);
m_zoomRegionRect->show();
} else {
m_zoomRegionRect->setSize(width, height);
canvas()->setChanged(m_zoomRegionRect->boundingRect());
}
canvas()->update();
}
return;
}
}
void
DiagramView
:: contentsMousePressEvent(QMouseEvent* a_e
){
m_zoomStartPoint = (inverseWorldMatrix()).map(mapFromParent(a_e->pos()));
}
void
DiagramView
:: contentsMouseReleaseEvent(QMouseEvent* ){
if(cursor().shape() == Qt::CrossCursor) {
if(m_zoomRegionRect) {
m_zoomRegionRect->hide();
canvas()->update();
delete m_zoomRegionRect;
m_zoomRegionRect = 0;
m_zoomStartFlag = true;
emit ZoomToRegion(m_zoomStartPoint, m_zoomEndPoint);
canvas()->update();
}
return;
}
}
void
DiagramView :: contentsMouseMoveEvent(QMouseEvent* a_e)
{
if(cursor().shape() == Qt::CrossCursor) {
//QPoint myPoint = viewportToContents(a_e->pos());
m_zoomEndPoint = (inverseWorldMatrix()).map(mapFromParent(a_e->pos()));
int width = m_zoomEndPoint.x()-m_zoomStartPoint.x();
int height = m_zoomEndPoint.y()-m_zoomStartPoint.y();
if((width>0)&&(height>0)) {
if(!m_zoomRegionRect) {
//! canvas item do not exist
m_zoomRegionRect = new Q3CanvasRectangle(m_zoomStartPoint.x(),
m_zoomStartPoint.y(),
width, height, canvas());
m_zoomRegionRect->setBrush(Qt::DiagCrossPattern);
m_zoomRegionRect->setPen(QPen(Qt::darkGreen,
2, Qt::DashDotDotLine));
m_zoomRegionRect->setZ(100);
m_zoomRegionRect->show();
} else {
m_zoomRegionRect->setSize(width, height);
canvas()->setChanged(m_zoomRegionRect->boundingRect());
}
canvas()->update();
}
return;
}
}
void
DiagramView :: contentsMousePressEvent(QMouseEvent* a_e)
{
m_zoomStartPoint = (inverseWorldMatrix()).map(mapFromParent(a_e->pos()));
}
void
DiagramView :: contentsMouseReleaseEvent(QMouseEvent* )
{
if(cursor().shape() == Qt::CrossCursor) {
if(m_zoomRegionRect) {
m_zoomRegionRect->hide();
canvas()->update();
delete m_zoomRegionRect;
m_zoomRegionRect = 0;
m_zoomStartFlag = true;
emit ZoomToRegion(m_zoomStartPoint, m_zoomEndPoint);
canvas()->update();
}
return;
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks