X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fcustomtrackview.cpp;h=7913e0d27616c2722d34abb77cb97a9f84cd2a1b;hb=f77746744a2b7c21dadfcc4fc364d41a9ee10d81;hp=789126badd5840ab6626e65e3c78f2b74d8d188c;hpb=a1b3653802fdeb8df79c594d0129608576d88fa2;p=kdenlive diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index 789126ba..7913e0d2 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -173,6 +173,10 @@ CustomTrackView::CustomTrackView(KdenliveDoc *doc, CustomTrackScene* projectscen connect(&m_thumbsTimer, SIGNAL(timeout()), this, SLOT(slotFetchNextThumbs())); m_thumbsTimer.setInterval(500); m_thumbsTimer.setSingleShot(true); + + connect(&m_audioMonitorTimer, SIGNAL(timeout()), this, SIGNAL(documentModified())); + m_audioMonitorTimer.setInterval(2000); + m_audioMonitorTimer.setSingleShot(true); } CustomTrackView::~CustomTrackView() @@ -197,6 +201,7 @@ void CustomTrackView::keyPressEvent(QKeyEvent * event) void CustomTrackView::setDocumentModified() { m_document->setModified(true); + m_audioMonitorTimer.start(); } void CustomTrackView::setContextMenu(QMenu *timeline, QMenu *clip, QMenu *transition, QActionGroup *clipTypeGroup, QMenu *markermenu) @@ -914,7 +919,7 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event) bool selected = !m_dragItem->isSelected(); if (dragGroup) dragGroup->setSelected(selected); - else + else m_dragItem->setSelected(selected); groupSelectedItems(); @@ -3687,7 +3692,7 @@ void CustomTrackView::slotRazorGroup(QList clips1, QList t break; } } - for(int i = 0; i < clipsCut.count(); ++i) + for (int i = 0; i < clipsCut.count(); ++i) cutClip(clipsCut.at(i), cutPos, false); // TODO: uncut transitonsCut doGroupClips(QList () << clips1 << clipsCut << clips2, QList () << transitions1 << transitionsCut << transitions2, true); @@ -6196,3 +6201,19 @@ void CustomTrackView::setTipAnimation(AbstractClipItem *clip, OPERATIONTYPE mode m_animationTimer->start(); } } + +bool CustomTrackView::hasAudio(int track) const +{ + QRectF rect(0, (double)(track * m_tracksHeight + 1), (double) sceneRect().width(), (double)(m_tracksHeight - 1)); + QList collisions = scene()->items(rect, Qt::IntersectsItemBoundingRect); + QGraphicsItem *item; + for (int i = 0; i < collisions.count(); i++) { + item = collisions.at(i); + if (!item->isEnabled()) continue; + if (item->type() == AVWIDGET) { + ClipItem *clip = static_cast (item); + if (!clip->isVideoOnly() && (clip->clipType() == AUDIO || clip->clipType() == AV || clip->clipType() == PLAYLIST)) return true; + } + } + return false; +}