]> git.sesse.net Git - kdenlive/commitdiff
zoom into scene
authorMarco Gittler <marco@gitma.de>
Thu, 28 Feb 2008 12:05:14 +0000 (12:05 +0000)
committerMarco Gittler <marco@gitma.de>
Thu, 28 Feb 2008 12:05:14 +0000 (12:05 +0000)
svn path=/branches/KDE4/; revision=1962

src/graphicsscenerectmove.cpp
src/graphicsscenerectmove.h

index dccdbb9660ace7e47b10b7251514634c21be0548..aa554e7e67fe75e5bed66a405b55cde20ae104f2 100644 (file)
@@ -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<QGraphicsView*> 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){
index d67369e73061dbcc090b856f422c5a78213c76ec..3f92250ccb227ed781ce0231435a961d276ccccb 100644 (file)
@@ -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