#include <QStylePainter>
#include <QGraphicsItem>
#include <QDomDocument>
-
+#include <QScrollBar>
#include <KDebug>
#include <KLocale>
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
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 );
signals:
void cursorMoved(int);
+ void zoomIn();
+ void zoomOut();
};
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();
}
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
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();