]> git.sesse.net Git - kdenlive/blobdiff - src/monitorscene.cpp
Const'ref
[kdenlive] / src / monitorscene.cpp
index 089e5e96f1be0c15f9eef27cdfd63122d749767e..e6be3de10188933da55b54a6b60c13e3dd682076 100644 (file)
@@ -27,6 +27,7 @@
 #include <QGraphicsView>
 #include <QGraphicsPixmapItem>
 #include <QGraphicsSceneMouseEvent>
+#include <QScrollBar>
 
 
 MonitorScene::MonitorScene(Render *renderer, QObject* parent) :
@@ -64,9 +65,20 @@ MonitorScene::MonitorScene(Render *renderer, QObject* parent) :
     connect(m_renderer, SIGNAL(frameUpdated(QImage)), this, SLOT(slotSetBackgroundImage(QImage)));
 }
 
+void MonitorScene::centerView()
+{
+    if (m_view) m_view->centerOn(m_frameBorder);
+}
+
+void MonitorScene::cleanup()
+{
+    // Reset scene rect
+    setSceneRect(m_frameBorder->boundingRect());
+}
+
 void MonitorScene::setUp()
 {
-    if (views().count() > 0) {
+    if (!views().isEmpty()) {
         m_view = views().at(0);
         m_view->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
     } else {
@@ -250,7 +262,15 @@ void MonitorScene::wheelEvent(QGraphicsSceneWheelEvent* event)
             slotZoomOut(5);
         }
     } else {
-        QGraphicsScene::wheelEvent(event);
+        QAbstractSlider::SliderAction action;
+        if (event->delta() > 0)
+            action = QAbstractSlider::SliderSingleStepSub;
+        else
+            action = QAbstractSlider::SliderSingleStepAdd;
+        if (event->orientation() == Qt::Horizontal)
+            m_view->horizontalScrollBar()->triggerAction(action);
+        else
+            m_view->verticalScrollBar()->triggerAction(action);
     }
 
     event->accept();