info.endPos = m_dragItem->endPos();
info.track = m_dragItem->track();
- if (m_operationMode == MOVE && m_dragItemInfo.startPos != info.startPos) {
+ if (m_operationMode == MOVE) {
setCursor(Qt::OpenHandCursor);
// move clip
- if (m_dragItem->type() == AVWIDGET) {
+ if (m_dragItem->type() == AVWIDGET && m_dragItemInfo.startPos != info.startPos) {
MoveClipCommand *command = new MoveClipCommand(this, m_dragItemInfo, info, false);
m_commandStack->push(command);
m_document->renderer()->mltMoveClip((int)(m_tracksList.count() - m_dragItemInfo.track), (int)(m_tracksList.count() - m_dragItem->track()), (int) m_dragItemInfo.startPos.frames(m_document->fps()), (int)(m_dragItem->startPos().frames(m_document->fps())));
}
- if (m_dragItem->type() == TRANSITIONWIDGET) {
+ if (m_dragItem->type() == TRANSITIONWIDGET && ( m_dragItemInfo.startPos != info.startPos || m_dragItemInfo.track != info.track )) {
MoveTransitionCommand *command = new MoveTransitionCommand(this, m_dragItemInfo, info, false);
m_commandStack->push(command);
//kDebug()<<"/// MOVING TRS FROM: "<<(int)(m_tracksList.count() - m_startPos.y())<<", OFFSET: "<<(int) (m_dragItem->track() - m_startPos.y());
Transition *transition = (Transition *) m_dragItem;
- m_document->renderer()->mltMoveTransition(transition->transitionTag(), (int)(m_tracksList.count() - m_dragItemInfo.track), (int)(m_tracksList.count() - m_dragItem->track()), getPreviousVideoTrack(m_dragItem->track()), m_dragItemInfo.startPos, m_dragItemInfo.endPos, info.startPos, info.endPos);
+ transition->updateTransitionEndTrack(getPreviousVideoTrack(m_dragItem->track()));
+ m_document->renderer()->mltMoveTransition(transition->transitionTag(), (int)(m_tracksList.count() - m_dragItemInfo.track), (int)(m_tracksList.count() - m_dragItem->track()), transition->transitionEndTrack(), m_dragItemInfo.startPos, m_dragItemInfo.endPos, info.startPos, info.endPos);
}
} else if (m_operationMode == RESIZESTART) {
item->resizeEnd((int) end.endPos.frames(m_document->fps()), m_scale);
}
//item->moveTransition(GenTime((int) (endPos.x() - startPos.x()), m_document->fps()));
- m_document->renderer()->mltMoveTransition(item->transitionTag(), m_tracksList.count() - start.track, m_tracksList.count() - end.track, getPreviousVideoTrack(end.track), start.startPos, start.endPos, end.startPos, end.endPos);
+ item->updateTransitionEndTrack(getPreviousVideoTrack(end.track));
+ m_document->renderer()->mltMoveTransition(item->transitionTag(), m_tracksList.count() - start.track, m_tracksList.count() - end.track, item->transitionEndTrack(), start.startPos, start.endPos, end.startPos, end.endPos);
}
void CustomTrackView::resizeClip(const ItemInfo start, const ItemInfo end) {
pa.setAttribute("min", "-200;-20;0;0;0");
pa.setAttribute("max", "200;200;100;100;100");
}
- if (type == "complex") {
+ else if (type == "complex") {
//pa.setAttribute("namedesc",pa.attribute("name"));
}
+
+
//TODO constant, list, bool, complex , color, geometry, position
if (type == "double" || type == "constant") {
createSliderItem(paramName, value.toInt(), pa.attribute("min").toInt(), pa.attribute("max").toInt());
return m_transitionTrack;
}
+void Transition::updateTransitionEndTrack(int newtrack) {
+ m_transitionTrack = newtrack;
+}
+
void Transition::paint(QPainter *painter,
const QStyleOptionGraphicsItem *option,
QWidget *widget) {
QPixmap transitionPixmap() const;
//Transition *reparent(ClipItem * clip);
bool isValid() const;
+ /** Transition should be linked to another track */
+ void updateTransitionEndTrack(int newtrack);
const ClipItem *referencedClip() const;
m_usedTransition->update();
}
emit transitionUpdated(e, m_usedTransition->toXML());*/
+ /*QDomDocument doc;
+ doc.appendChild(doc.importNode(e, true));
+ kDebug()<<"/////////// TRANSITION CHANGED: "<<doc.toString();
+ kDebug()<<"/////////// TRANSITION CHANGED END...";*/
+
if (m_usedTransition && m_usedTransition->transitionName() == ui.listWidget->currentItem()->text() && !e.attribute("tag").isNull()) {
slotUpdateEffectParams(e, e);
} else
slotUpdateEffectParams(e, MainWindow::transitions.getEffectByName(ui.listWidget->currentItem()->text()));
- emit transferParamDesc(m_usedTransition->toXML(), 0, 0);
+ emit transferParamDesc(e, 0, 0);
}
void TransitionSettings::slotTransitionItemSelected(Transition* t) {
setEnabled(t != NULL);
+ if (t == m_usedTransition) return;
m_usedTransition = t;
if (m_usedTransition) {
QList<QListWidgetItem*> list = ui.listWidget->findItems(m_usedTransition->transitionName(), Qt::MatchExactly);
if (list.size() > 0) {
- disconnect(ui.listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(slotTransitionChanged()));
+ ui.listWidget->blockSignals(true);
ui.listWidget->setCurrentItem(list[0]);
slotTransitionChanged();
- connect(ui.listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(slotTransitionChanged()));
+ ui.listWidget->blockSignals(false);
}
}
QTextStream str(&test);
oldparam.save(str, 2);
m_usedTransition->toXML().save(str, 2);
- kDebug() << test;
+ //kDebug() << test;
//oldparam must be also first given to Transition and then return the toXML()
emit transitionUpdated(m_usedTransition, oldparam);
}