[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdenlive] src: Show Timeline guides in monitor overlay like clip markers
From:       Jean-Baptiste Mardelle <jb () kdenlive ! org>
Date:       2014-03-31 17:07:24
Message-ID: E1WUfgC-000122-M5 () scm ! kde ! org
[Download RAW message or body]

Git commit 91e1399a4bfad666ffec9245b47b2717e1ac71be by Jean-Baptiste Mardelle.
Committed on 31/03/2014 at 17:06.
Pushed by mardelle into branch 'master'.

Show Timeline guides in monitor overlay like clip markers

M  +10   -0    src/customtrackview.cpp
M  +3    -1    src/customtrackview.h
M  +1    -3    src/mainwindow.cpp
M  +6    -7    src/monitor.cpp
M  +13   -0    src/smallruler.cpp
M  +1    -0    src/smallruler.h

http://commits.kde.org/kdenlive/91e1399a4bfad666ffec9245b47b2717e1ac71be

diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp
index c4b950f..dcd2198 100644
--- a/src/customtrackview.cpp
+++ b/src/customtrackview.cpp
@@ -5717,6 +5717,16 @@ int CustomTrackView::hasGuide(int pos, int offset)
     return -1;
 }
 
+QList <CommentedTime> CustomTrackView::guides() const
+{
+    QList <CommentedTime> guidesList;
+    for (int i = 0; i < m_guides.count(); ++i) {
+        CommentedTime t(m_guides.at(i)->position(), m_guides.at(i)->label());
+        guidesList << t;
+    }
+    return guidesList;
+}
+
 void CustomTrackView::buildGuidesMenu(QMenu *goMenu) const
 {
     QAction *act;
diff --git a/src/customtrackview.h b/src/customtrackview.h
index e5156eb..f1d56cf 100644
--- a/src/customtrackview.h
+++ b/src/customtrackview.h
@@ -244,6 +244,7 @@ public slots:
     void slotAddClipMarker(const QString &id, QList <CommentedTime> newMarker, \
QUndoCommand *groupCommand = 0);  void slotLoadClipMarkers(const QString &id);
     void slotSaveClipMarkers(const QString &id);
+    QList <CommentedTime> guides() const;
     bool addGuide(const GenTime &pos, const QString &comment);
 
     /** @brief Shows a dialog for adding a guide.
@@ -300,11 +301,12 @@ public slots:
 
     /** @brief Get effect parameters ready for MLT*/
     static void adjustEffectParameters(EffectsParameterList &parameters, \
                QDomNodeList params, MltVideoProfile profile, const QString &prefix = \
                QString());
-	/** @brief Move playhead to mouse curser position if defined key is pressed */
+    /** @brief Move playhead to mouse curser position if defined key is pressed */
     void slotAlignPlayheadToMousePos();
     
     void slotInfoProcessingFinished();
 
+
 protected:
     virtual void drawBackground(QPainter * painter, const QRectF & rect);
     //virtual void drawForeground ( QPainter * painter, const QRectF & rect );
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index ad12ac7..d2b7759 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -2871,6 +2871,7 @@ void MainWindow::slotZoneMoved(int start, int end)
 
 void MainWindow::slotGuidesUpdated()
 {
+    if (m_projectMonitor) \
m_projectMonitor->setMarkers(m_activeTimeline->projectView()->guides());  if \
                (m_renderWidget)
         m_renderWidget->setGuides(m_activeDocument->guidesXml(), \
m_activeDocument->projectDuration());  }
@@ -3027,9 +3028,6 @@ void MainWindow::slotDeleteItem()
 
 void MainWindow::slotUpdateClipMarkers(DocClipBase *clip)
 {
-    if (m_clipMonitor->isActive()) {
-        m_clipMonitor->checkOverlay();
-    }
     m_clipMonitor->updateMarkers(clip);
 }
 
diff --git a/src/monitor.cpp b/src/monitor.cpp
index b1b0a80..14cd6b1 100644
--- a/src/monitor.cpp
+++ b/src/monitor.cpp
@@ -365,6 +365,7 @@ void Monitor::updateMarkers(DocClipBase *source)
             }
         }
 	m_ruler->setMarkers(markers);
+        checkOverlay();
         m_markerMenu->setEnabled(!m_markerMenu->isEmpty());
     }
 }
@@ -372,6 +373,7 @@ void Monitor::updateMarkers(DocClipBase *source)
 void Monitor::setMarkers(const QList<CommentedTime> &markers)
 {
     m_ruler->setMarkers(markers);
+    checkOverlay();
 }
 
 void Monitor::slotSeekToPreviousSnap()
@@ -623,8 +625,8 @@ void Monitor::slotCheckOverlay(Mlt::Frame *frame, GLuint tex)
             overlayText = i18n("In Point");
         else if (pos == zone.y())
             overlayText = i18n("Out Point");
-        else if (m_currentClip)
-            overlayText = m_currentClip->markerComment(GenTime(pos, \
m_monitorManager->timecode().fps())); +        else
+            overlayText = m_ruler->markerComment(GenTime(pos, \
m_monitorManager->timecode().fps()));  }
     m_glWidget->showImage(frame, tex, overlayText);
 }
@@ -639,11 +641,8 @@ void Monitor::checkOverlay()
         overlayText = i18n("In Point");
     else if (pos == zone.y())
         overlayText = i18n("Out Point");
-    else {
-        if (m_currentClip) {
-            overlayText = m_currentClip->markerComment(GenTime(pos, \
                m_monitorManager->timecode().fps()));
-        }
-    }
+    else
+        overlayText = m_ruler->markerComment(GenTime(pos, \
m_monitorManager->timecode().fps()));  m_glWidget->checkOverlay(overlayText);
 }
 
diff --git a/src/smallruler.cpp b/src/smallruler.cpp
index 693bf51..bd338f6 100644
--- a/src/smallruler.cpp
+++ b/src/smallruler.cpp
@@ -120,6 +120,19 @@ void SmallRuler::setMarkers(const QList<CommentedTime> &list)
     updatePixmap();
 }
 
+QString SmallRuler::markerComment(const GenTime &t) const
+{
+    QList < CommentedTime >::ConstIterator itt = m_markers.begin();
+    while (itt != m_markers.end()) {
+        if ((*itt).time() == t)
+            return (*itt).comment();
+        if ((*itt).time() > t)
+            return QString();
+        ++itt;
+    }
+    return QString();
+}
+
 QPoint SmallRuler::zone() const
 {
     return QPoint(m_zoneStart, m_zoneEnd);
diff --git a/src/smallruler.h b/src/smallruler.h
index 5c18ba9..e5e9447 100644
--- a/src/smallruler.h
+++ b/src/smallruler.h
@@ -41,6 +41,7 @@ public:
     void setMarkers(const QList < CommentedTime >& list);
     void updatePalette();
     void refreshRuler();
+    QString markerComment(const GenTime &t) const;
 
 protected:
     void paintEvent(QPaintEvent *e);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic