- }
- } else {
- int start = item->fadeOut();
- if (start != 0) {
- // there is a fade in effect
- int effectPos = item->hasEffect("volume", "fadeout");
- if (effectPos != -1) {
- QDomElement oldeffect = item->effectAt(effectPos);
- int end = (item->duration() - item->cropStart()).frames(m_document->fps());
- int max = item->cropDuration().frames(m_document->fps());
- if (end > max) {
- item->setFadeOut(max);
- start = item->fadeOut();
- }
- start = end - start;
- EffectsList::setParameter(oldeffect, "in", QString::number(start));
- EffectsList::setParameter(oldeffect, "out", QString::number(end));
- if (!m_document->renderer()->mltEditEffect(m_document->tracksCount() - item->track(), item->startPos(), item->getEffectArgs(oldeffect)))
- emit displayMessage(i18n("Problem editing effect"), ErrorMessage);
- // if fade effect is displayed, update the effect edit widget with new clip duration
- if (item->isSelected() && effectPos == item->selectedEffectIndex()) emit clipItemSelected(item, effectPos);
+ end += start;
+ EffectsList::setParameter(oldeffect, "in", QString::number(start));
+ EffectsList::setParameter(oldeffect, "out", QString::number(end));
+ if (!m_document->renderer()->mltEditEffect(m_document->tracksCount() - item->track(), item->startPos(), item->getEffectArgs(oldeffect)))
+ emit displayMessage(i18n("Problem editing effect"), ErrorMessage);
+ // if fade effect is displayed, update the effect edit widget with new clip duration
+ if (item->isSelected() && effectPos == item->selectedEffectIndex()) emit clipItemSelected(item, effectPos);
+ }
+ }
+ int start = item->fadeOut();
+ if (start != 0) {
+ // there is a fade out effect
+ int effectPos = item->hasEffect("volume", "fadeout");
+ if (effectPos != -1) {
+ QDomElement oldeffect = item->effectAt(effectPos);
+ int max = item->cropDuration().frames(m_document->fps());
+ int end = max + item->cropStart().frames(m_document->fps());
+ if (start > max) {
+ // Make sure the fade effect is not longer than the clip
+ item->setFadeOut(max);
+ start = item->fadeOut();