QDomElement xml = transition->toXML();
m_document->renderer()->mltUpdateTransition(xml.attribute("tag"), xml.attribute("tag"), xml.attribute("transition_btrack").toInt(), m_document->tracksCount() - xml.attribute("transition_atrack").toInt(), transition->startPos(), transition->endPos(), xml);
new EditTransitionCommand(this, transition->track(), transition->startPos(), old, xml, false, command);
- ItemInfo info = transition->info();
- QPoint p;
- ClipItem *transitionClip = getClipItemAt(info.startPos, info.track);
- if (transitionClip && transitionClip->baseClip()) {
- QString size = transitionClip->baseClip()->getProperty("frame_size");
- double factor = transitionClip->baseClip()->getProperty("aspect_ratio").toDouble();
- if (factor == 0) factor = 1.0;
- p.setX((int)(size.section('x', 0, 0).toInt() * factor + 0.5));
- p.setY(size.section('x', 1, 1).toInt());
- }
- emit transitionItemSelected(transition, getPreviousVideoTrack(info.track), p, true);
}
+ ItemInfo info = transition->info();
+ QPoint p;
+ ClipItem *transitionClip = getClipItemAt(info.startPos, info.track);
+ if (transitionClip && transitionClip->baseClip()) {
+ QString size = transitionClip->baseClip()->getProperty("frame_size");
+ double factor = transitionClip->baseClip()->getProperty("aspect_ratio").toDouble();
+ if (factor == 0) factor = 1.0;
+ p.setX((int)(size.section('x', 0, 0).toInt() * factor + 0.5));
+ p.setY(size.section('x', 1, 1).toInt());
+ }
+ emit transitionItemSelected(transition, getPreviousVideoTrack(info.track), p, true);
new MoveTransitionCommand(this, oldInfo, info, false, command);
}
}
while (!m_extraMovingItems.isEmpty()) {
Mlt::GeometryItem *gitem = m_extraMovingItems.takeFirst();
- delete gitem;
+ if (gitem) delete gitem;
}
for (int i = 0; i < m_extraGeometries.count(); i++) {
- Mlt::GeometryItem *item2 = new Mlt::GeometryItem();
if (m_extraGeometries.at(i)->next_key(item, mousePos) == 0) {
+ Mlt::GeometryItem *item2 = new Mlt::GeometryItem();
item2->x(item.x());
item2->frame(item.frame());
m_extraMovingItems.append(item2);
} else {
- delete(item2);
+ m_extraMovingItems.append(NULL);
}
}
if (KdenliveSettings::snaptopoints() && qAbs(pos - m_position) < 5) pos = m_position;
m_movingItem.frame(pos);
for (int i = 0; i < m_extraMovingItems.count(); i++) {
- m_extraMovingItems[i]->frame(pos);
+ if (m_extraMovingItems.at(i)) m_extraMovingItems[i]->frame(pos);
}
update();
return;
m_movingKeyframe = false;
for (int i = 0; i < m_extraGeometries.count(); i++) {
- m_extraGeometries[i]->insert(m_extraMovingItems.at(i));
+ if (m_extraMovingItems.at(i)) m_extraGeometries[i]->insert(m_extraMovingItems.at(i));
}
emit keyframeMoved(m_position);
m_effectEdit->setFrameSize(p);
m_autoTrackTransition = nextTrack;
disconnect(m_effectEdit->monitor(), SIGNAL(renderPosition(int)), this, SLOT(slotRenderPos(int)));
- if (t == m_usedTransition) {
+ if (t == m_usedTransition) {
if (t == NULL) return;
if (update) {
transitionTrack->blockSignals(true);
{
if (!isEnabled()) return;
if (m_effectEdit->needsMonitorEffectScene()) {
- if (renderPos >= m_usedTransition->startPos().frames(KdenliveSettings::project_fps()) && renderPos <= m_usedTransition->endPos().frames(KdenliveSettings::project_fps())) {
+ if (renderPos >= m_usedTransition->startPos().frames(KdenliveSettings::project_fps()) && renderPos < m_usedTransition->endPos().frames(KdenliveSettings::project_fps())) {
if (!m_effectEdit->monitor()->effectSceneDisplayed()) {
m_effectEdit->monitor()->slotShowEffectScene(true);
}