]> git.sesse.net Git - kdenlive/blobdiff - src/customtrackview.cpp
* Allow editing keyframable effects in groups:
[kdenlive] / src / customtrackview.cpp
index f73e49c3e581ff8cdc352347d6dffdf832f0fb31..180b000bff4790486cec50ced8c83a47e259d7dd 100644 (file)
@@ -1262,6 +1262,14 @@ void CustomTrackView::slotAddGroupEffect(QDomElement effect, AbstractGroupItem *
     for (int i = 0; i < itemList.count(); i++) {
         if (itemList.at(i)->type() == AVWIDGET) {
             ClipItem *item = static_cast <ClipItem *>(itemList.at(i));
+            if (effect.attribute("type") == "audio") {
+                // Don't add audio effects on video clips
+                if (item->isVideoOnly() || (item->clipType() != AUDIO && item->clipType() != AV && item->clipType() != PLAYLIST)) continue;
+            } else if (effect.hasAttribute("type") == false) {
+                // Don't add video effect on audio clips
+                if (item->isAudioOnly() || item->clipType() == AUDIO) continue;
+            }
+
             if (item->hasEffect(effect.attribute("tag"), effect.attribute("id")) != -1 && effect.attribute("unique", "0") != "0") {
                 emit displayMessage(i18n("Effect already present in clip"), ErrorMessage);
                 continue;
@@ -1305,6 +1313,13 @@ void CustomTrackView::slotAddEffect(QDomElement effect, GenTime pos, int track)
     for (int i = 0; i < itemList.count(); i++) {
         if (itemList.at(i)->type() == AVWIDGET) {
             ClipItem *item = (ClipItem *)itemList.at(i);
+            if (effect.attribute("type") == "audio") {
+                // Don't add audio effects on video clips
+                if (item->isVideoOnly() || (item->clipType() != AUDIO && item->clipType() != AV && item->clipType() != PLAYLIST)) continue;
+            } else if (effect.hasAttribute("type") == false) {
+                // Don't add video effect on audio clips
+                if (item->isAudioOnly() || item->clipType() == AUDIO) continue;
+            }
             if (item->hasEffect(effect.attribute("tag"), effect.attribute("id")) != -1 && effect.attribute("unique", "0") != "0") {
                 emit displayMessage(i18n("Effect already present in clip"), ErrorMessage);
                 continue;