]> git.sesse.net Git - kdenlive/blobdiff - src/customtrackview.cpp
Improve the export audio automatic setting:
[kdenlive] / src / customtrackview.cpp
index b38ea7d9da6ffb5db4492fd00a3631ba045d1ba5..0dbcbd82f6b0613c43099c39919ce7fbc818bb62 100644 (file)
@@ -914,7 +914,7 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event)
         bool selected = !m_dragItem->isSelected();
         if (dragGroup)
             dragGroup->setSelected(selected);
-        else 
+        else
             m_dragItem->setSelected(selected);
 
         groupSelectedItems();
@@ -3224,7 +3224,6 @@ void CustomTrackView::mouseReleaseEvent(QMouseEvent * event)
                         m_document->renderer()->mltAddTransition(tr->transitionTag(), newTrack, m_document->tracksCount() - info.track, info.startPos, info.endPos, tr->toXML());
                     }
                 }
-                rebuildGroup((AbstractGroupItem *)group);
                 new MoveGroupCommand(this, clipsToMove, transitionsToMove, timeOffset, trackOffset, false, moveGroup);
                 m_commandStack->push(moveGroup);
 
@@ -3236,6 +3235,8 @@ void CustomTrackView::mouseReleaseEvent(QMouseEvent * event)
                 if (m_selectionGroup) {
                     m_selectionGroupInfo.startPos = GenTime(m_selectionGroup->scenePos().x(), m_document->fps());
                     m_selectionGroupInfo.track = m_selectionGroup->track();
+                } else {
+                    rebuildGroup((AbstractGroupItem *)group);
                 }
                 setDocumentModified();
             }
@@ -3686,7 +3687,7 @@ void CustomTrackView::slotRazorGroup(QList <ItemInfo> clips1, QList <ItemInfo> 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 <ItemInfo>() << clips1 << clipsCut << clips2, QList <ItemInfo>() << transitions1 << transitionsCut << transitions2, true);
@@ -6195,3 +6196,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<QGraphicsItem *> 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 <ClipItem *>(item);
+            if (!clip->isVideoOnly() && (clip->clipType() == AUDIO || clip->clipType() == AV || clip->clipType() == PLAYLIST)) return true;
+        }
+    }
+    return false;
+}