From 51207926d52e50229027f7d92318b835240e1b2a Mon Sep 17 00:00:00 2001 From: Marco Gittler Date: Thu, 28 Feb 2008 12:05:14 +0000 Subject: [PATCH] zoom into scene svn path=/branches/KDE4/; revision=1962 --- src/graphicsscenerectmove.cpp | 28 +++++++++++++++++----------- src/graphicsscenerectmove.h | 4 ++-- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/graphicsscenerectmove.cpp b/src/graphicsscenerectmove.cpp index dccdbb96..aa554e7e 100644 --- a/src/graphicsscenerectmove.cpp +++ b/src/graphicsscenerectmove.cpp @@ -11,11 +11,12 @@ int resizeMode=-1; enum resizeMode {NoResize,TopLeft,BottomLeft,TopRight,BottomRight,Left,Right,Up,Down}; GraphicsSceneRectMove::GraphicsSceneRectMove(QObject *parent):QGraphicsScene(parent){ //grabMouse(); + zoom=1.0; } void GraphicsSceneRectMove::mouseMoveEvent(QGraphicsSceneMouseEvent* e){ - - if (selected && selected->type()==3 && button==1){ + + if (selected && selected->type()==3 && e->buttons() & Qt::LeftButton){ QGraphicsRectItem *gi=(QGraphicsRectItem*)selected; QRectF newrect=gi->rect(); @@ -111,15 +112,20 @@ void GraphicsSceneRectMove::mouseMoveEvent(QGraphicsSceneMouseEvent* e){ } -void GraphicsSceneRectMove::mousePressEvent(QGraphicsSceneMouseEvent* e){ - button=e->button(); - if (!selected || selected->type()!=3) - QGraphicsScene::mousePressEvent(e); -} -void GraphicsSceneRectMove::mouseReleaseEvent(QGraphicsSceneMouseEvent* e){ - button=0; - if (!selected || selected->type()!=3) - QGraphicsScene::mouseReleaseEvent(e); +void GraphicsSceneRectMove::wheelEvent ( QGraphicsSceneWheelEvent * wheelEvent ){ + QList viewlist=views(); + kDebug() << wheelEvent->delta() << " " << zoom; + if (viewlist.size()>0){ + if (wheelEvent->delta()<0 && zoom<20.0){ + zoom*=1.1; + + }else if (wheelEvent->delta()>0 && zoom>.05){ + zoom/=1.1; + } + + viewlist[0]->resetTransform(); + viewlist[0]->scale(zoom,zoom); + } } void GraphicsSceneRectMove::setCursor(QCursor c){ diff --git a/src/graphicsscenerectmove.h b/src/graphicsscenerectmove.h index d67369e7..3f92250c 100644 --- a/src/graphicsscenerectmove.h +++ b/src/graphicsscenerectmove.h @@ -7,10 +7,10 @@ class GraphicsSceneRectMove: public QGraphicsScene { public: GraphicsSceneRectMove(QObject* parent=0); void mouseMoveEvent(QGraphicsSceneMouseEvent*); - void mousePressEvent(QGraphicsSceneMouseEvent*); - void mouseReleaseEvent(QGraphicsSceneMouseEvent*); + void wheelEvent ( QGraphicsSceneWheelEvent * wheelEvent ); private: void setCursor(QCursor); + double zoom; }; #endif -- 2.39.2