From: <j-...@us...> - 2008-03-26 22:45:36
|
Revision: 2126 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2126&view=rev Author: j-b-m Date: 2008-03-26 15:45:42 -0700 (Wed, 26 Mar 2008) Log Message: ----------- Transition resize Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-03-26 21:16:32 UTC (rev 2125) +++ branches/KDE4/src/customtrackview.cpp 2008-03-26 22:45:42 UTC (rev 2126) @@ -753,17 +753,40 @@ } else if (m_operationMode == RESIZESTART) { // resize start - ResizeClipCommand *command = new ResizeClipCommand(this, m_startPos, QPointF(m_dragItem->startPos().frames(m_document->fps()), m_dragItem->track()), true, false); + if (m_dragItem->type() == AVWIDGET) { + m_document->renderer()->mltResizeClipStart(m_tracksList.count() - m_dragItem->track(), m_dragItem->endPos(), m_dragItem->startPos(), GenTime((int)m_startPos.x(), m_document->fps()), m_dragItem->cropStart(), m_dragItem->cropStart() + m_dragItem->endPos() - m_dragItem->startPos()); + ResizeClipCommand *command = new ResizeClipCommand(this, m_startPos, QPointF(m_dragItem->startPos().frames(m_document->fps()), m_dragItem->track()), true, false); + m_commandStack->push(command); + } else if (m_dragItem->type() == TRANSITIONWIDGET) { + Transition* transition = (Transition*)m_dragItem; + GenTime oldin = transition->transitionStartTime(); + GenTime oldout = transition->transitionEndTime(); + GenTime newin = m_dragItem->startPos(); + GenTime newout = m_dragItem->endPos(); + transition->resizeTransitionStart(newin); + MoveTransitionCommand *command = new MoveTransitionCommand(this, QPointF(oldin.frames(m_document->fps()), oldout.frames(m_document->fps())), QPointF(newin.frames(m_document->fps()), newout.frames(m_document->fps())), (int) m_startPos.y(), (int)(m_dragItem->track()), false); + m_commandStack->push(command); + m_document->renderer()->mltMoveTransition(transition->transitionName(), (int)(m_tracksList.count() - m_startPos.y()), 0, oldin, oldout, newin, newout); + } - if (m_dragItem->type() == AVWIDGET) m_document->renderer()->mltResizeClipStart(m_tracksList.count() - m_dragItem->track(), m_dragItem->endPos(), m_dragItem->startPos(), GenTime((int)m_startPos.x(), m_document->fps()), m_dragItem->cropStart(), m_dragItem->cropStart() + m_dragItem->endPos() - m_dragItem->startPos()); - m_commandStack->push(command); m_document->renderer()->doRefresh(); } else if (m_operationMode == RESIZEEND) { // resize end - ResizeClipCommand *command = new ResizeClipCommand(this, m_startPos, QPointF(m_dragItem->endPos().frames(m_document->fps()), m_dragItem->track()), false, false); - - if (m_dragItem->type() == AVWIDGET) m_document->renderer()->mltResizeClipEnd(m_tracksList.count() - m_dragItem->track(), m_dragItem->startPos(), m_dragItem->cropStart(), m_dragItem->cropStart() + m_dragItem->endPos() - m_dragItem->startPos()); - m_commandStack->push(command); + if (m_dragItem->type() == AVWIDGET) { + ResizeClipCommand *command = new ResizeClipCommand(this, m_startPos, QPointF(m_dragItem->endPos().frames(m_document->fps()), m_dragItem->track()), false, false); + m_document->renderer()->mltResizeClipEnd(m_tracksList.count() - m_dragItem->track(), m_dragItem->startPos(), m_dragItem->cropStart(), m_dragItem->cropStart() + m_dragItem->endPos() - m_dragItem->startPos()); + m_commandStack->push(command); + } else if (m_dragItem->type() == TRANSITIONWIDGET) { + Transition* transition = (Transition*)m_dragItem; + GenTime oldin = transition->transitionStartTime(); + GenTime oldout = transition->transitionEndTime(); + GenTime newin = m_dragItem->startPos(); + GenTime newout = m_dragItem->endPos(); + transition->resizeTransitionEnd(newout); + MoveTransitionCommand *command = new MoveTransitionCommand(this, QPointF(oldin.frames(m_document->fps()), oldout.frames(m_document->fps())), QPointF(newin.frames(m_document->fps()), newout.frames(m_document->fps())), (int) m_startPos.y(), (int)(m_dragItem->track()), false); + m_commandStack->push(command); + m_document->renderer()->mltMoveTransition(transition->transitionName(), (int)(m_tracksList.count() - m_startPos.y()), 0, oldin, oldout, newin, newout); + } m_document->renderer()->doRefresh(); } m_document->setModified(true); @@ -857,8 +880,22 @@ kDebug() << "---------------- ERROR, CANNOT find transition to move at: " << startPos.x() * m_scale * FRAME_SIZE + 1 << ", " << startPos.y() * m_tracksHeight + m_tracksHeight / 2; return; } - kDebug() << "---------------- Move TRANSITION FROM: " << startPos.x() << ", END:" << endPos.x() << ",TRACKS: " << oldtrack << " TO " << newtrack; - item->moveTo((int)endPos.x(), m_scale, (newtrack - oldtrack) * m_tracksHeight, newtrack); + //kDebug() << "---------------- Move TRANSITION FROM: " << startPos.x() << ", END:" << endPos.x() << ",TRACKS: " << oldtrack << " TO " << newtrack; + + //kDebug()<<"/// RESIZE TRANS START: ("<< startPos.x()<<"x"<< startPos.y()<<") / ("<<endPos.x()<<"x"<< endPos.y()<<")"; + if (endPos.y() - endPos.x() == startPos.y() - startPos.x()) { + // Transition was moved + item->moveTo((int)endPos.x(), m_scale, (newtrack - oldtrack) * m_tracksHeight, newtrack); + item->moveTransition(GenTime((int)(endPos.x() - startPos.x()), m_document->fps())); + } else if (endPos.y() == startPos.y()) { + // Transition start resize + item->resizeStart((int)endPos.x(), m_scale); + item->resizeTransitionStart(GenTime((int) endPos.x(), m_document->fps())); + } else { + // Transition end resize; + item->resizeEnd((int)endPos.y(), m_scale); + item->resizeTransitionEnd(GenTime((int) endPos.y(), m_document->fps())); + } //item->moveTransition(GenTime((int) (endPos.x() - startPos.x()), m_document->fps())); m_document->renderer()->mltMoveTransition(item->transitionName(), m_tracksList.count() - oldtrack, oldtrack - newtrack, GenTime((int) startPos.x(), m_document->fps()), GenTime((int) startPos.y(), m_document->fps()), GenTime((int) endPos.x(), m_document->fps()), GenTime((int) endPos.y(), m_document->fps())); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |