]> git.sesse.net Git - kdenlive/commitdiff
Mouse wheel on timeline
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 22 Jan 2008 23:41:21 +0000 (23:41 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 22 Jan 2008 23:41:21 +0000 (23:41 +0000)
svn path=/branches/KDE4/; revision=1816

src/customtrackview.cpp
src/customtrackview.h
src/trackview.cpp
src/trackview.h

index 2020467e668c9c49365c2fad715ef522bc147531..142334764f4f4b5a2767677845faa4676a67cf73 100644 (file)
@@ -21,7 +21,7 @@
 #include <QStylePainter>
 #include <QGraphicsItem>
 #include <QDomDocument>
-
+#include <QScrollBar>
 
 #include <KDebug>
 #include <KLocale>
@@ -58,15 +58,29 @@ void CustomTrackView::resizeEvent ( QResizeEvent * event )
   if (m_cursorLine) m_cursorLine->setLine(m_cursorLine->line().x1(), 0, m_cursorLine->line().x1(), height());
 }
 
+// virtual
+void CustomTrackView::wheelEvent ( QWheelEvent * e ) 
+{
+  if (e->modifiers() == Qt::ControlModifier) {
+    if (e->delta() > 0) emit zoomIn();
+    else emit zoomOut();
+  }
+  else {
+    if (e->delta() > 0) horizontalScrollBar()->setValue (horizontalScrollBar()->value() + horizontalScrollBar()->singleStep ());
+    else  horizontalScrollBar()->setValue (horizontalScrollBar()->value() - horizontalScrollBar()->singleStep ());
+  }
+}
+
+
 // virtual 
 void CustomTrackView::mouseMoveEvent ( QMouseEvent * event )
 {
   int pos = event->x();
-  if (event->modifiers() == Qt::ControlModifier)
+  /*if (event->modifiers() == Qt::ControlModifier)
     setDragMode(QGraphicsView::ScrollHandDrag);
   else if (event->modifiers() == Qt::ShiftModifier) 
     setDragMode(QGraphicsView::RubberBandDrag);
-  else {
+  else*/ {
 
       if (event->button() == Qt::LeftButton) {
        // a button was pressed, delete visual tips
index 1fe8d629f811f4cd87e9b2ee625dd6d210c09591..22e71dc84d342709436a6ee601c691efb97cac28 100644 (file)
@@ -55,6 +55,7 @@ class CustomTrackView : public QGraphicsView
     virtual void dragMoveEvent(QDragMoveEvent * event);
     virtual void dragLeaveEvent ( QDragLeaveEvent * event );
     virtual void dropEvent ( QDropEvent * event );
+    virtual void wheelEvent ( QWheelEvent * e );
     virtual QStringList mimeTypes() const;
     virtual Qt::DropActions supportedDropActions () const;
     virtual void resizeEvent ( QResizeEvent * event );
@@ -77,6 +78,8 @@ class CustomTrackView : public QGraphicsView
 
   signals:
     void cursorMoved(int);
+    void zoomIn();
+    void zoomOut();
 
 };
 
index 8544cb8eca8135787756e322a5630a2f408d4791..dbf9123eede79df75a9f48adb7145ed26af40edc 100644 (file)
@@ -69,7 +69,8 @@ TrackView::TrackView(KdenliveDoc *doc, QWidget *parent)
   connect(view->horizontalSlider, SIGNAL(valueChanged ( int )), this, SLOT(slotChangeZoom( int )));
   connect(m_ruler, SIGNAL(cursorMoved ( int )), this, SLOT(slotCursorMoved( int )));
   connect(m_trackview, SIGNAL(cursorMoved ( int )), this, SLOT(slotCursorMoved( int )));
-
+  connect(m_trackview, SIGNAL(zoomIn ()), this, SLOT(slotZoomIn()));
+  connect(m_trackview, SIGNAL(zoomOut ()), this, SLOT(slotZoomOut()));
   m_trackview->initView();
 }
 
@@ -118,22 +119,10 @@ void TrackView::slotCursorMoved(int pos)
 void TrackView::slotChangeZoom(int factor)
 {
   m_ruler->setPixelPerMark(factor);
-  //m_scale = m_ruler->pixelPerMark();
   m_scale = (double) m_ruler->comboScale[m_currentZoom] / m_ruler->comboScale[factor];
-  //else m_scale = (double) m_ruler->comboScale[m_currentZoom] / m_ruler->comboScale[factor];
   m_currentZoom = factor;
-  kDebug()<<"///// ZOOMING: "<<m_scale;
   m_trackview->scale(m_scale, 1);
   m_trackview->centerOn(QPointF(m_trackview->cursorPos(), 50));
-  /*
-  for (int i = 0; i < documentTracks.count(); i++) {
-    kDebug()<<"------REPAINTING OBJECT";
-    documentTracks.at(i)->update();
-    //documentTracks.at(i)->setFixedWidth(300 * zoomFactor());
-  }
-  m_scrollBox->setFixedWidth(( m_projectDuration + 300) * zoomFactor());*/
-  /*m_scrollArea->horizontalScrollBar()->setMaximum(300 * zoomFactor());
-  m_scrollArea->horizontalScrollBar()->setPageStep(FRAME_SIZE * zoomFactor());*/
 }
 
 const double TrackView::zoomFactor() const
@@ -141,6 +130,16 @@ const double TrackView::zoomFactor() const
   return m_scale * FRAME_SIZE;
 }
 
+void TrackView::slotZoomIn()
+{
+  view->horizontalSlider->setValue(view->horizontalSlider->value() - 1);
+}
+
+void TrackView::slotZoomOut()
+{
+  view->horizontalSlider->setValue(view->horizontalSlider->value() + 1);
+}
+
 const int TrackView::mapLocalToValue(int x) const
 {
   return (int) x * zoomFactor();
index 5a816f50423f07441fff0617e50b296defe36337..d27775284ddf3f8fb54118f015539d24ffad4d4d 100644 (file)
@@ -93,6 +93,8 @@ class TrackView : public QWidget
   private slots:
     void slotChangeZoom(int factor);
     void slotCursorMoved(int pos);
+    void slotZoomIn();
+    void slotZoomOut();
 };
 
 #endif