]> git.sesse.net Git - kdenlive/commitdiff
Correctly update markers in monitor:
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 24 Sep 2009 13:02:10 +0000 (13:02 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 24 Sep 2009 13:02:10 +0000 (13:02 +0000)
http://www.kdenlive.org/mantis/view.php?id=1160

svn path=/trunk/kdenlive/; revision=3926

src/customtrackview.cpp
src/customtrackview.h
src/mainwindow.cpp
src/mainwindow.h
src/monitor.cpp
src/recmonitor.cpp

index 50d6dbacb1ce2c7f20c0f04c45084683d428efb0..1b07f8b8806df1edb737d45ca0827382b865ea51 100644 (file)
@@ -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
index f024351d02d2337b08c491a1148af6b4134603e7..db54f1d3c485cd306e6a1d80849d8336ee7c8b36 100644 (file)
@@ -273,6 +273,7 @@ signals:
     void displayMessage(const QString, MessageType);
     void showClipFrame(DocClipBase *, const int);
     void doTrackLock(int, bool);
+    void updateClipMarkers(DocClipBase *);
 };
 
 #endif
index e362cf6c4626d7f793fb5fbbd3f7f784763e08df..4955b99bb593b4847d155f62dd2283574f41441b 100644 (file)
@@ -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();
     }
 }
 
index 3a46fad6acc8f60cdebc1cd308a2fb8c458e72ba..dad8b34e6f8623e502c406b8608944d7fdb589c7 100644 (file)
@@ -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);
index a6b75dd5ee80c49dd7e8199b96e3125fa1941411..2142f76e312ad551392273bc2659f0aeee1b1b1e 100644 (file)
@@ -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 <CommentedTime> markers = m_currentClip->commentedSnapMarkers();
         if (!markers.isEmpty()) {
index e21aed9d9fa3812e6f56e064e7d39a84ab18bb15..c0d1a4cee27d9bdd195b3ade67c5ec1f9864e83e 100644 (file)
@@ -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