[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 ¶meters, \
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