From 2b2005ab05cb19f7838a2ee7a13e51a970f0e2ed Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Thu, 24 Sep 2009 13:02:10 +0000 Subject: [PATCH] Correctly update markers in monitor: http://www.kdenlive.org/mantis/view.php?id=1160 svn path=/trunk/kdenlive/; revision=3926 --- src/customtrackview.cpp | 7 ++++--- src/customtrackview.h | 1 + src/mainwindow.cpp | 17 ++++++++--------- src/mainwindow.h | 1 + src/monitor.cpp | 2 +- src/recmonitor.cpp | 2 +- 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index 50d6dbac..1b07f8b8 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -2532,7 +2532,6 @@ void CustomTrackView::mouseReleaseEvent(QMouseEvent * event) int tracknumber = m_document->tracksCount() - item->track() - 1; bool isLocked = m_document->trackInfoAt(tracknumber).isLocked; if (isLocked) item->setItemLocked(true); - QUndoCommand *moveCommand = new QUndoCommand(); moveCommand->setText(i18n("Move clip")); new MoveClipCommand(this, m_dragItemInfo, info, false, moveCommand); @@ -2591,6 +2590,8 @@ void CustomTrackView::mouseReleaseEvent(QMouseEvent * event) ItemInfo trInfo = tr->info(); ItemInfo newTrInfo = trInfo; newTrInfo.endPos = m_dragItem->endPos(); + kDebug() << "CLIP ENDS AT: " << newTrInfo.endPos.frames(25); + kDebug() << "CLIP STARTS AT: " << newTrInfo.startPos.frames(25); ClipItem * upperClip = getClipItemAt(m_dragItemInfo.startPos, m_dragItemInfo.track - 1); if (!upperClip || !upperClip->baseClip()->isTransparent()) { if (!getClipItemAtStart(trInfo.startPos, tr->track())) { @@ -3576,6 +3577,7 @@ void CustomTrackView::moveTransition(const ItemInfo start, const ItemInfo end, b item->resizeStart((int) end.startPos.frames(m_document->fps())); } else if (end.startPos == start.startPos) { // Transition end resize; + kDebug() << "// resize END: " << end.endPos.frames(m_document->fps()); item->resizeEnd((int) end.endPos.frames(m_document->fps())); } else { // Move & resize @@ -3880,6 +3882,7 @@ void CustomTrackView::addMarker(const QString &id, const GenTime &pos, const QSt DocClipBase *base = m_document->clipManager()->getClipById(id); if (!comment.isEmpty()) base->addSnapMarker(pos, comment); else base->deleteSnapMarker(pos); + emit updateClipMarkers(base); setDocumentModified(); viewport()->update(); } @@ -5046,5 +5049,3 @@ void CustomTrackView::updateProjectFps() } viewport()->update(); } - -#include "customtrackview.moc" \ No newline at end of file diff --git a/src/customtrackview.h b/src/customtrackview.h index f024351d..db54f1d3 100644 --- a/src/customtrackview.h +++ b/src/customtrackview.h @@ -273,6 +273,7 @@ signals: void displayMessage(const QString, MessageType); void showClipFrame(DocClipBase *, const int); void doTrackLock(int, bool); + void updateClipMarkers(DocClipBase *); }; #endif diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index e362cf6c..4955b99b 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1820,6 +1820,8 @@ void MainWindow::connectDocument(TrackView *trackView, KdenliveDoc *doc) //cha connect(trackView->projectView(), SIGNAL(clipItemSelected(ClipItem*, int)), m_effectStack, SLOT(slotClipItemSelected(ClipItem*, int))); + connect(trackView->projectView(), SIGNAL(updateClipMarkers(DocClipBase *)), this, SLOT(slotUpdateClipMarkers(DocClipBase*))); + connect(trackView->projectView(), SIGNAL(clipItemSelected(ClipItem*, int)), this, SLOT(slotActivateEffectStackView())); connect(trackView->projectView(), SIGNAL(transitionItemSelected(Transition*, int, QPoint, bool)), m_transitionConfig, SLOT(slotTransitionItemSelected(Transition*, int, QPoint, bool))); connect(trackView->projectView(), SIGNAL(transitionItemSelected(Transition*, int, QPoint, bool)), this, SLOT(slotActivateTransitionView(Transition *))); @@ -1986,6 +1988,12 @@ void MainWindow::slotDeleteTimelineClip() } } +void MainWindow::slotUpdateClipMarkers(DocClipBase *clip) +{ + if (m_clipMonitor->isActive()) m_clipMonitor->checkOverlay(); + m_clipMonitor->updateMarkers(clip); +} + void MainWindow::slotAddClipMarker() { DocClipBase *clip = NULL; @@ -2011,8 +2019,6 @@ void MainWindow::slotAddClipMarker() MarkerDialog d(clip, marker, m_activeDocument->timecode(), i18n("Add Marker"), this); if (d.exec() == QDialog::Accepted) { m_activeTimeline->projectView()->slotAddClipMarker(id, d.newMarker().time(), d.newMarker().comment()); - if (m_clipMonitor->isActive()) m_clipMonitor->checkOverlay(); - m_clipMonitor->updateMarkers(clip); } } @@ -2044,9 +2050,6 @@ void MainWindow::slotDeleteClipMarker() return; } m_activeTimeline->projectView()->slotDeleteClipMarker(comment, id, pos); - if (m_clipMonitor->isActive()) m_clipMonitor->checkOverlay(); - m_clipMonitor->updateMarkers(clip); - } void MainWindow::slotDeleteAllClipMarkers() @@ -2067,8 +2070,6 @@ void MainWindow::slotDeleteAllClipMarkers() return; } m_activeTimeline->projectView()->slotDeleteAllClipMarkers(clip->getId()); - if (m_clipMonitor->isActive()) m_clipMonitor->checkOverlay(); - m_clipMonitor->updateMarkers(clip); } void MainWindow::slotEditClipMarker() @@ -2106,9 +2107,7 @@ void MainWindow::slotEditClipMarker() if (d.newMarker().time() != pos) { // remove old marker m_activeTimeline->projectView()->slotAddClipMarker(id, pos, QString()); - m_clipMonitor->updateMarkers(clip); } - if (m_clipMonitor->isActive()) m_clipMonitor->checkOverlay(); } } diff --git a/src/mainwindow.h b/src/mainwindow.h index 3a46fad6..dad8b34e 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -314,6 +314,7 @@ private slots: void slotRemoveFocus(); void slotCleanProject(); void slotSetZoom(int value); + void slotUpdateClipMarkers(DocClipBase *clip); signals: Q_SCRIPTABLE void abortRenderJob(const QString &url); diff --git a/src/monitor.cpp b/src/monitor.cpp index a6b75dd5..2142f76e 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -285,7 +285,7 @@ DocClipBase *Monitor::activeClip() void Monitor::updateMarkers(DocClipBase *source) { - if (source == m_currentClip) { + if (source == m_currentClip && source != NULL) { m_markerMenu->clear(); QList markers = m_currentClip->commentedSnapMarkers(); if (!markers.isEmpty()) { diff --git a/src/recmonitor.cpp b/src/recmonitor.cpp index e21aed9d..c0d1a4ce 100644 --- a/src/recmonitor.cpp +++ b/src/recmonitor.cpp @@ -95,7 +95,7 @@ RecMonitor::RecMonitor(QString name, QWidget *parent) : m_freeSpace = new KCapacityBar(KCapacityBar::DrawTextInline, this); m_freeSpace->setMaximumWidth(150); QFontMetricsF fontMetrics(font()); - m_freeSpace->setMaximumHeight(fontMetrics.height() * 1.5); + m_freeSpace->setMaximumHeight(fontMetrics.height() * 1.2); updatedFreeSpace(); layout->addWidget(m_freeSpace); #endif -- 2.39.2