]> git.sesse.net Git - kdenlive/blobdiff - src/monitor.cpp
First steps to implement 3 points editing (Using v to insert-overwrite)
[kdenlive] / src / monitor.cpp
index aecfe116b02263972246574d53667ed7ffefd74d..c5490a7f29c98560ddafe8425e1e7f7ba7147f70 100644 (file)
@@ -47,7 +47,7 @@ Monitor::Monitor(QString name, MonitorManager *manager, QString profile, QWidget
         m_name(name),
         m_monitorManager(manager),
         m_currentClip(NULL),
-        m_ruler(new SmallRuler()),
+        m_ruler(new SmallRuler(m_monitorManager)),
         m_overlay(NULL),
         m_isActive(false),
         m_scale(1),
@@ -420,7 +420,6 @@ void Monitor::mouseMoveEvent(QMouseEvent *event)
         mimeData->setData("kdenlive/clip", data);
         drag->setMimeData(mimeData);
         QPixmap pix = m_currentClip->thumbnail();
-        kDebug() << "/ / / /CLIP DRAGGED PIXMAP: " << pix.width() << "x" << pix.height();
         drag->setPixmap(pix);
         drag->setHotSpot(QPoint(0, 50));
         drag->start(Qt::MoveAction);
@@ -742,11 +741,11 @@ void Monitor::slotLoopZone()
     m_playAction->setIcon(m_pauseIcon);
 }
 
-void Monitor::slotSetXml(DocClipBase *clip, const int position)
+void Monitor::slotSetXml(DocClipBase *clip, QPoint zone, const int position)
 {
     if (render == NULL) return;
     activateMonitor();
-    if (!clip && m_currentClip != NULL) {
+    if (clip == NULL && m_currentClip != NULL) {
         m_currentClip = NULL;
         render->setProducer(NULL, -1);
         return;
@@ -759,6 +758,10 @@ void Monitor::slotSetXml(DocClipBase *clip, const int position)
             emit blockMonitors();
         }
     } else if (position != -1) render->seek(GenTime(position, m_monitorManager->timecode().fps()));
+    if (!zone.isNull()) {
+        m_ruler->setZone(zone.x(), zone.y());
+        render->seek(GenTime(zone.x(), m_monitorManager->timecode().fps()));
+    }
 }
 
 void Monitor::slotOpenFile(const QString &file)
@@ -848,6 +851,16 @@ void Monitor::updateTimecodeFormat()
     }
 }
 
+QStringList Monitor::getZoneInfo() const
+{
+    QStringList result;
+    if (m_currentClip == NULL) return result;
+    result << m_currentClip->getId();
+    QPoint zone = m_ruler->zone();
+    result << QString::number(zone.x()) << QString::number(zone.y());
+    return result;
+}
+
 
 MonitorRefresh::MonitorRefresh(QWidget* parent) : \
         QWidget(parent),