X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fcustomtrackview.cpp;h=541dddd375596fe3d542300bab752ee094cd9ee8;hb=a2fe18cc330efc6f4f586ec88e6e5a7bd6e21eb0;hp=cd49a86b41ad2b8d14deed6476af7d650c41c1a6;hpb=e6ae11e2af242011070078413fb0dbbe892566ef;p=kdenlive diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index cd49a86b..541dddd3 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -143,7 +143,7 @@ CustomTrackView::CustomTrackView(KdenliveDoc *doc, CustomTrackScene* projectscen QPen pen1 = QPen(); pen1.setWidth(1); - pen1.setColor(Qt::black); + pen1.setColor(palette().text().color()); m_cursorLine->setPen(pen1); m_cursorLine->setFlag(QGraphicsItem::ItemIgnoresTransformations, true); @@ -1484,7 +1484,7 @@ void CustomTrackView::slotAddGroupEffect(QDomElement effect, AbstractGroupItem * if (item->isAudioOnly() || item->clipType() == AUDIO) continue; } - if (item->hasEffect(effect.attribute("tag"), effect.attribute("id")) != -1 && effect.attribute("unique", "0") != "0") { + if (effect.attribute("unique", "0") != "0" && item->hasEffect(effect.attribute("tag"), effect.attribute("id")) != -1) { emit displayMessage(i18n("Effect already present in clip"), ErrorMessage); continue; } @@ -3853,7 +3853,7 @@ void CustomTrackView::updatePositionEffects(ClipItem * item, ItemInfo info) // Freeze effect needs to be adjusted with clip resize int diff = (info.startPos - item->startPos()).frames(m_document->fps()); QDomElement eff = item->getEffectAt(effectPos); - if (!eff.isNull()) { + if (!eff.isNull() && diff != 0) { int freeze_pos = EffectsList::parameter(eff, "frame").toInt() + diff; EffectsList::setParameter(eff, "frame", QString::number(freeze_pos)); if (item->isSelected() && item->selectedEffect().attribute("id") == "freeze") { @@ -4444,11 +4444,20 @@ void CustomTrackView::pasteClipEffects() if (clips.at(i)->type() == AVWIDGET) { ClipItem *item = static_cast < ClipItem *>(clips.at(i)); for (int j = 0; j < clip->effectsCount(); j++) { - new AddEffectCommand(this, m_document->tracksCount() - item->track(), item->startPos(), clip->effectAt(j), true, paste); + QDomElement eff = clip->effectAt(j); + if (eff.attribute("unique", "0") == "0" || item->hasEffect(eff.attribute("tag"), eff.attribute("id")) == -1) { + new AddEffectCommand(this, m_document->tracksCount() - item->track(), item->startPos(), eff, true, paste); + } } } } m_commandStack->push(paste); + + // adjust effects (fades, ...) + for (int i = 0; i < clips.count(); ++i) { + ClipItem *item = static_cast < ClipItem *>(clips.at(i)); + updatePositionEffects(item, item->info()); + } }