From: Jean-Baptiste Mardelle Date: Tue, 22 Jan 2008 23:41:21 +0000 (+0000) Subject: Mouse wheel on timeline X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=cea121194722f5ca6896e9cdde2889f5d930bad1;p=kdenlive Mouse wheel on timeline svn path=/branches/KDE4/; revision=1816 --- diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index 2020467e..14233476 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -21,7 +21,7 @@ #include #include #include - +#include #include #include @@ -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 diff --git a/src/customtrackview.h b/src/customtrackview.h index 1fe8d629..22e71dc8 100644 --- a/src/customtrackview.h +++ b/src/customtrackview.h @@ -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(); }; diff --git a/src/trackview.cpp b/src/trackview.cpp index 8544cb8e..dbf9123e 100644 --- a/src/trackview.cpp +++ b/src/trackview.cpp @@ -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: "<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(); diff --git a/src/trackview.h b/src/trackview.h index 5a816f50..d2777528 100644 --- a/src/trackview.h +++ b/src/trackview.h @@ -93,6 +93,8 @@ class TrackView : public QWidget private slots: void slotChangeZoom(int factor); void slotCursorMoved(int pos); + void slotZoomIn(); + void slotZoomOut(); }; #endif