From: <j-...@us...> - 2008-10-18 21:20:31
|
Revision: 2483 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2483&view=rev Author: j-b-m Date: 2008-10-18 21:20:28 +0000 (Sat, 18 Oct 2008) Log Message: ----------- Be more clever when adding transition (guess duration from clip underneath) Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-10-18 21:01:51 UTC (rev 2482) +++ branches/KDE4/src/customtrackview.cpp 2008-10-18 21:20:28 UTC (rev 2483) @@ -989,17 +989,40 @@ void CustomTrackView::slotAddTransitionToSelectedClips(QDomElement transition) { QList<QGraphicsItem *> itemList = scene()->selectedItems(); - for (int i = 0; i < itemList.count(); i++) { - if (itemList.at(i)->type() == AVWIDGET) { - ClipItem *item = (ClipItem *) itemList.at(i); + if (itemList.count() == 1) { + if (itemList.at(0)->type() == AVWIDGET) { + ClipItem *item = (ClipItem *) itemList.at(0); ItemInfo info; - info.startPos = item->startPos(); - info.endPos = info.startPos + GenTime(2.5); info.track = item->track(); - int transitiontrack = getPreviousVideoTrack(info.track); + ClipItem *transitionClip = NULL; + const int transitiontrack = getPreviousVideoTrack(info.track); + GenTime pos = GenTime((int)(mapToScene(m_menuPosition).x()), m_document->fps()); + if (pos < item->startPos() + item->duration() / 2) { + info.startPos = item->startPos(); + if (transitiontrack != 0) transitionClip = getClipItemAt((int) info.startPos.frames(m_document->fps()), m_scene->m_tracksList.count() - transitiontrack); + if (transitionClip && transitionClip->endPos() < item->endPos()) { + info.endPos = transitionClip->endPos(); + } else info.endPos = info.startPos + GenTime(2.5); + } else { + info.endPos = item->endPos(); + if (transitiontrack != 0) transitionClip = getClipItemAt((int) info.endPos.frames(m_document->fps()), m_scene->m_tracksList.count() - transitiontrack); + if (transitionClip && transitionClip->startPos() > item->startPos()) { + info.startPos = transitionClip->startPos(); + } else info.startPos = info.endPos - GenTime(2.5); + } slotAddTransition(item, info, transitiontrack, transition); } - } + } else for (int i = 0; i < itemList.count(); i++) { + if (itemList.at(i)->type() == AVWIDGET) { + ClipItem *item = (ClipItem *) itemList.at(i); + ItemInfo info; + info.startPos = item->startPos(); + info.endPos = info.startPos + GenTime(2.5); + info.track = item->track(); + int transitiontrack = getPreviousVideoTrack(info.track); + slotAddTransition(item, info, transitiontrack, transition); + } + } } void CustomTrackView::slotAddTransition(ClipItem* clip, ItemInfo transitionInfo, int endTrack, QDomElement transition) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-11-04 01:05:46
|
Revision: 2621 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2621&view=rev Author: j-b-m Date: 2008-11-04 01:05:37 +0000 (Tue, 04 Nov 2008) Log Message: ----------- Fix bug in fade resizing Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-11-03 23:59:46 UTC (rev 2620) +++ branches/KDE4/src/customtrackview.cpp 2008-11-04 01:05:37 UTC (rev 2621) @@ -906,11 +906,11 @@ if (effect.attribute("tag") == "volume") { // A fade effect was modified, update the clip if (effect.attribute("id") == "fadein") { - int pos = effectParams.value("out").toInt(); + int pos = effectParams.value("out").toInt() - effectParams.value("in").toInt(); clip->setFadeIn(pos); } if (effect.attribute("id") == "fadeout") { - int pos = clip->cropDuration().frames(m_document->fps()) - effectParams.value("in").toInt(); + int pos = effectParams.value("out").toInt() - effectParams.value("in").toInt(); clip->setFadeOut(pos); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-11-05 19:54:46
|
Revision: 2624 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2624&view=rev Author: j-b-m Date: 2008-11-05 19:54:37 +0000 (Wed, 05 Nov 2008) Log Message: ----------- Small fix when setting "in" or "out" point of a selected clip in timeline Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-11-05 19:15:19 UTC (rev 2623) +++ branches/KDE4/src/customtrackview.cpp 2008-11-05 19:54:37 UTC (rev 2624) @@ -2393,6 +2393,12 @@ return getClipUnderCursor(); } else { ClipItem *item; + // remove all items in the list that are not clips + for (int i = 0; i < clips.count();) { + if (clips.at(i)->type() != AVWIDGET) clips.removeAt(i); + else i++; + } + if (clips.count() == 1) return static_cast < ClipItem *>(clips.at(0)); for (int i = 0; i < clips.count(); ++i) { if (clips.at(i)->type() == AVWIDGET) item = static_cast < ClipItem *>(clips.at(i)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-11-12 09:20:46
|
Revision: 2688 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2688&view=rev Author: j-b-m Date: 2008-11-12 09:20:40 +0000 (Wed, 12 Nov 2008) Log Message: ----------- Focus timeline after clip drop so that pressing delete removes timeline clip not project clip Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-11-11 23:16:25 UTC (rev 2687) +++ branches/KDE4/src/customtrackview.cpp 2008-11-12 09:20:40 UTC (rev 2688) @@ -1194,6 +1194,7 @@ } m_document->setModified(true); } else QGraphicsView::dropEvent(event); + setFocus(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-11-19 11:13:35
|
Revision: 2716 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2716&view=rev Author: j-b-m Date: 2008-11-19 11:13:31 +0000 (Wed, 19 Nov 2008) Log Message: ----------- Fix end transition 1 frame too short: http://www.kdenlive.org/mantis/view.php?id=364 Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-11-19 11:07:48 UTC (rev 2715) +++ branches/KDE4/src/customtrackview.cpp 2008-11-19 11:13:31 UTC (rev 2716) @@ -659,7 +659,7 @@ slotAddTransition((ClipItem *) m_dragItem, info, transitiontrack); } else if (m_operationMode == TRANSITIONEND) { ItemInfo info; - info.endPos = GenTime(m_dragItem->endPos().frames(m_document->fps()) - 1, m_document->fps()); + info.endPos = GenTime(m_dragItem->endPos().frames(m_document->fps()), m_document->fps()); info.track = m_dragItem->track(); int transitiontrack = getPreviousVideoTrack(info.track); ClipItem *transitionClip = NULL; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-11-22 10:48:38
|
Revision: 2720 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2720&view=rev Author: j-b-m Date: 2008-11-22 10:48:29 +0000 (Sat, 22 Nov 2008) Log Message: ----------- Slightly faster timeline scrolling on clip drag Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-11-22 10:42:52 UTC (rev 2719) +++ branches/KDE4/src/customtrackview.cpp 2008-11-22 10:48:29 UTC (rev 2720) @@ -96,7 +96,7 @@ verticalScrollBar()->setTracking(true); connect(verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(slotRefreshGuides())); connect(&m_scrollTimer, SIGNAL(timeout()), this, SLOT(slotCheckMouseScrolling())); - m_scrollTimer.setInterval(150); + m_scrollTimer.setInterval(100); m_scrollTimer.setSingleShot(true); } @@ -227,10 +227,10 @@ if ((event->pos() - m_clickEvent).manhattanLength() >= QApplication::startDragDistance()) QGraphicsView::mouseMoveEvent(event); // If mouse is at a border of the view, scroll if (pos < 5) { - m_scrollOffset = -20; + m_scrollOffset = -30; m_scrollTimer.start(); } else if (viewport()->width() - pos < 10) { - m_scrollOffset = 20; + m_scrollOffset = 30; m_scrollTimer.start(); } else if (m_scrollTimer.isActive()) m_scrollTimer.stop(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-11-23 19:34:42
|
Revision: 2722 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2722&view=rev Author: j-b-m Date: 2008-11-23 19:34:31 +0000 (Sun, 23 Nov 2008) Log Message: ----------- Small improvement in movement of objects (only move to next or previous frame when mouse is half way between the 2 frames) Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-11-23 19:13:51 UTC (rev 2721) +++ branches/KDE4/src/customtrackview.cpp 2008-11-23 19:34:31 UTC (rev 2722) @@ -218,7 +218,7 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event) { int pos = event->x(); - int mappedXPos = (int)(mapToScene(event->pos()).x()); + int mappedXPos = (int)(mapToScene(event->pos()).x() + 0.5); emit mousePosition(mappedXPos); if (event->buttons() & Qt::MidButton) return; if (event->buttons() != Qt::NoButton) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-11-24 05:46:16
|
Revision: 2725 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2725&view=rev Author: j-b-m Date: 2008-11-24 05:46:07 +0000 (Mon, 24 Nov 2008) Log Message: ----------- Don't initiate a move (keyframes, fades, ...) if mouse movement is very small Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-11-23 23:32:50 UTC (rev 2724) +++ branches/KDE4/src/customtrackview.cpp 2008-11-24 05:46:07 UTC (rev 2725) @@ -223,8 +223,10 @@ if (event->buttons() & Qt::MidButton) return; if (event->buttons() != Qt::NoButton) { if (m_dragItem && m_tool == SELECTTOOL) { - if (m_operationMode == MOVE) { - if ((event->pos() - m_clickEvent).manhattanLength() >= QApplication::startDragDistance()) QGraphicsView::mouseMoveEvent(event); + bool move = (event->pos() - m_clickEvent).manhattanLength() >= QApplication::startDragDistance(); + if (m_operationMode == MOVE && move) { + //if ((event->pos() - m_clickEvent).manhattanLength() >= QApplication::startDragDistance()) + QGraphicsView::mouseMoveEvent(event); // If mouse is at a border of the view, scroll if (pos < 5) { m_scrollOffset = -30; @@ -234,17 +236,17 @@ m_scrollTimer.start(); } else if (m_scrollTimer.isActive()) m_scrollTimer.stop(); - } else if (m_operationMode == RESIZESTART) { + } else if (m_operationMode == RESIZESTART && move) { double snappedPos = getSnapPointForPos(mappedXPos); m_dragItem->resizeStart((int)(snappedPos)); - } else if (m_operationMode == RESIZEEND) { + } else if (m_operationMode == RESIZEEND && move) { double snappedPos = getSnapPointForPos(mappedXPos); m_dragItem->resizeEnd((int)(snappedPos)); - } else if (m_operationMode == FADEIN) { + } else if (m_operationMode == FADEIN && move) { ((ClipItem*) m_dragItem)->setFadeIn((int)(mappedXPos - m_dragItem->startPos().frames(m_document->fps()))); - } else if (m_operationMode == FADEOUT) { + } else if (m_operationMode == FADEOUT && move) { ((ClipItem*) m_dragItem)->setFadeOut((int)(m_dragItem->endPos().frames(m_document->fps()) - mappedXPos)); - } else if (m_operationMode == KEYFRAME) { + } else if (m_operationMode == KEYFRAME && move) { GenTime keyFramePos = GenTime(mappedXPos, m_document->fps()) - m_dragItem->startPos() + m_dragItem->cropStart(); double pos = mapToScene(event->pos()).toPoint().y(); QRectF br = m_dragItem->sceneBoundingRect(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-11-24 06:09:20
|
Revision: 2726 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2726&view=rev Author: j-b-m Date: 2008-11-24 06:09:16 +0000 (Mon, 24 Nov 2008) Log Message: ----------- Fix keyframe editing: http://www.kdenlive.org/mantis/view.php?id=390 Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-11-24 05:46:07 UTC (rev 2725) +++ branches/KDE4/src/customtrackview.cpp 2008-11-24 06:09:16 UTC (rev 2726) @@ -225,7 +225,6 @@ if (m_dragItem && m_tool == SELECTTOOL) { bool move = (event->pos() - m_clickEvent).manhattanLength() >= QApplication::startDragDistance(); if (m_operationMode == MOVE && move) { - //if ((event->pos() - m_clickEvent).manhattanLength() >= QApplication::startDragDistance()) QGraphicsView::mouseMoveEvent(event); // If mouse is at a border of the view, scroll if (pos < 5) { @@ -697,6 +696,7 @@ } void CustomTrackView::mouseDoubleClickEvent(QMouseEvent *event) { + kDebug() << "++++++++++++ DBL CLK"; if (m_dragItem && m_dragItem->hasKeyFrames()) { if (m_moveOpMode == KEYFRAME) { // user double clicked on a keyframe, open edit dialog @@ -1343,7 +1343,7 @@ } void CustomTrackView::mouseReleaseEvent(QMouseEvent * event) { - m_moveOpMode = NONE; + if (m_moveOpMode == SEEK) m_moveOpMode = NONE; QGraphicsView::mouseReleaseEvent(event); if (m_scrollTimer.isActive()) m_scrollTimer.stop(); if (event->button() == Qt::MidButton) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-11-25 13:53:29
|
Revision: 2734 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2734&view=rev Author: j-b-m Date: 2008-11-25 13:53:23 +0000 (Tue, 25 Nov 2008) Log Message: ----------- Fix group move: http://www.kdenlive.org/mantis/view.php?id=367 Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-11-25 13:19:18 UTC (rev 2733) +++ branches/KDE4/src/customtrackview.cpp 2008-11-25 13:53:23 UTC (rev 2734) @@ -1514,7 +1514,7 @@ GenTime timeOffset = GenTime(m_selectionGroup->scenePos().x(), m_document->fps()) - m_selectionGroupInfo.startPos; const int trackOffset = m_selectionGroup->track() - m_selectionGroupInfo.track; - //kDebug() << "&DROPPED GRPOUP:" << timeOffset.frames(25) << "x" << trackOffset; + kDebug() << "&DROPPED GRPOUP:" << timeOffset.frames(25) << "TRK OFF: " << trackOffset; if (timeOffset != GenTime() || trackOffset != 0) { QUndoCommand *moveClips = new QUndoCommand(); moveClips->setText("Move clips"); @@ -1522,17 +1522,13 @@ for (int i = 0; i < items.count(); i++) { AbstractClipItem *item = static_cast <AbstractClipItem *>(items.at(i)); ItemInfo info = item->info(); - /*info.startPos = info.startPos - timeOffset; - info.endPos = info.endPos - timeOffset; - info.track = info.track - trackOffset;*/ - //kDebug() << "REM CLP:" << i << ", START:" << info.startPos.frames(25); if (item->type() == AVWIDGET) { ClipItem *clip = static_cast <ClipItem*>(item); new AddTimelineClipCommand(this, clip->xml(), clip->clipProducer(), info, clip->effectList(), false, true, moveClips); m_document->renderer()->mltRemoveClip(m_scene->m_tracksList.count() - info.track, info.startPos); } else { Transition *tr = static_cast <Transition*>(item); - new AddTransitionCommand(this, info, tr->transitionEndTrack(), tr->toXML(), false, true, moveClips); + new AddTransitionCommand(this, info, tr->transitionEndTrack(), tr->toXML(), true, false, moveClips); m_document->renderer()->mltDeleteTransition(tr->transitionTag(), tr->transitionEndTrack(), m_scene->m_tracksList.count() - info.track, info.startPos, info.endPos, tr->toXML()); } } @@ -1551,9 +1547,14 @@ m_document->renderer()->mltInsertClip(info, clip->xml(), clip->baseClip()->producer(info.track)); } else { Transition *tr = static_cast <Transition*>(item); - ItemInfo transitionInfo = tr->info(); - new AddTransitionCommand(this, info, tr->transitionEndTrack(), tr->toXML(), false, false, moveClips); - m_document->renderer()->mltAddTransition(tr->transitionTag(), tr->transitionEndTrack() + trackOffset, m_scene->m_tracksList.count() - transitionInfo.track, transitionInfo.startPos, transitionInfo.endPos, tr->toXML()); + int newTrack = tr->transitionEndTrack(); + if (!tr->forcedTrack()) { + newTrack += trackOffset; + if (newTrack < 0 || newTrack > m_scene->m_tracksList.count()) newTrack = getPreviousVideoTrack(info.track); + } + new AddTransitionCommand(this, info, newTrack, tr->toXML(), false, false, moveClips); + + m_document->renderer()->mltAddTransition(tr->transitionTag(), newTrack, m_scene->m_tracksList.count() - info.track, info.startPos, info.endPos, tr->toXML()); } } m_commandStack->push(moveClips); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-11-27 13:08:50
|
Revision: 2739 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2739&view=rev Author: j-b-m Date: 2008-11-27 13:08:45 +0000 (Thu, 27 Nov 2008) Log Message: ----------- Forgotten file from previous commit Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-11-27 12:54:50 UTC (rev 2738) +++ branches/KDE4/src/customtrackview.cpp 2008-11-27 13:08:45 UTC (rev 2739) @@ -1326,6 +1326,32 @@ m_document->renderer()->mltChangeTrackState(tracknumber, m_scene->m_tracksList.at(tracknumber - 1).isMute, m_scene->m_tracksList.at(tracknumber - 1).isBlind); } +void CustomTrackView::slotRemoveSpace() { + GenTime pos; + int track = 0; + if (m_menuPosition.isNull()) { + pos = GenTime(cursorPos(), m_document->fps()); + bool ok; + track = QInputDialog::getInteger(this, i18n("Remove Space"), i18n("Track"), 0, 0, m_scene->m_tracksList.count() - 1, 1, &ok); + if (!ok) return; + } else { + pos = GenTime((int)(mapToScene(m_menuPosition).x()), m_document->fps()); + track = (int)(mapToScene(m_menuPosition).y() / m_tracksHeight); + } + ClipItem *item = getClipItemAt(pos, track); + if (item) { + emit displayMessage(i18n("You must be in an empty space to remove space."), ErrorMessage); + return; + } + int length = m_document->renderer()->mltGetSpaceLength(pos, m_scene->m_tracksList.count() - track); + if (length <= 0) { + emit displayMessage(i18n("You must be in an empty space to remove space."), ErrorMessage); + return; + } + InsertSpaceCommand *command = new InsertSpaceCommand(this, pos, track, GenTime(-length, m_document->fps()), true); + m_commandStack->push(command); +} + void CustomTrackView::slotInsertSpace() { GenTime pos; int track = 0; @@ -1350,7 +1376,7 @@ int diff = duration.frames(m_document->fps()); if (!add) diff = -diff; QList<QGraphicsItem *> itemList; - if (track == -1) itemList = items(); + if (track == -1) itemList = scene()->items(pos.frames(m_document->fps()) , 1, sceneRect().width() - pos.frames(m_document->fps()), sceneRect().height()); else itemList = scene()->items(pos.frames(m_document->fps()) , track * m_tracksHeight + 1, sceneRect().width() - pos.frames(m_document->fps()), m_tracksHeight - 2); if (m_selectionGroup) { scene()->destroyItemGroup(m_selectionGroup); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-12-16 17:20:04
|
Revision: 2792 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2792&view=rev Author: j-b-m Date: 2008-12-16 17:19:55 +0000 (Tue, 16 Dec 2008) Log Message: ----------- Fix some refresh issues when adding/removing track Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-12-16 14:11:34 UTC (rev 2791) +++ branches/KDE4/src/customtrackview.cpp 2008-12-16 17:19:55 UTC (rev 2792) @@ -162,7 +162,7 @@ } setSceneRect(0, 0, sceneRect().width(), m_tracksHeight * m_document->tracksCount()); - verticalScrollBar()->setMaximum(m_tracksHeight * m_document->tracksCount()); +// verticalScrollBar()->setMaximum(m_tracksHeight * m_document->tracksCount()); update(); } @@ -1379,11 +1379,16 @@ resetSelectionGroup(false); } - m_cursorLine->setLine(m_cursorLine->line().x1(), 0, m_cursorLine->line().x1(), m_tracksHeight * m_document->tracksCount()); - setSceneRect(0, 0, sceneRect().width(), m_tracksHeight * m_document->tracksCount()); - verticalScrollBar()->setMaximum(m_tracksHeight * m_document->tracksCount()); + int maxHeight = m_tracksHeight * m_document->tracksCount(); + for (int i = 0; i < m_guides.count(); i++) { + QLineF l = m_guides.at(i)->line(); + l.setP2(QPointF(l.x2(), maxHeight)); + m_guides.at(i)->setLine(l); + } + m_cursorLine->setLine(m_cursorLine->line().x1(), 0, m_cursorLine->line().x1(), maxHeight); + setSceneRect(0, 0, sceneRect().width(), maxHeight); QTimer::singleShot(300, this, SIGNAL(trackHeightChanged())); - + viewport()->update(); //setFixedHeight(50 * m_tracksCount); } @@ -1433,9 +1438,14 @@ } resetSelectionGroup(false); - m_cursorLine->setLine(m_cursorLine->line().x1(), 0, m_cursorLine->line().x1(), m_tracksHeight * m_document->tracksCount()); - setSceneRect(0, 0, sceneRect().width(), m_tracksHeight * m_document->tracksCount()); - verticalScrollBar()->setMaximum(m_tracksHeight * m_document->tracksCount()); + int maxHeight = m_tracksHeight * m_document->tracksCount(); + for (int i = 0; i < m_guides.count(); i++) { + QLineF l = m_guides.at(i)->line(); + l.setP2(QPointF(l.x2(), maxHeight)); + m_guides.at(i)->setLine(l); + } + m_cursorLine->setLine(m_cursorLine->line().x1(), 0, m_cursorLine->line().x1(), maxHeight); + setSceneRect(0, 0, sceneRect().width(), maxHeight); QTimer::singleShot(300, this, SIGNAL(trackHeightChanged())); viewport()->update(); } @@ -2454,7 +2464,7 @@ void CustomTrackView::clipEnd() { ClipItem *item = getMainActiveClip(); if (item != NULL) { - setCursorPos((int) item->endPos().frames(m_document->fps())); + setCursorPos((int) item->endPos().frames(m_document->fps()) - 1); checkScrolling(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-12-16 19:21:16
|
Revision: 2794 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2794&view=rev Author: j-b-m Date: 2008-12-16 19:21:10 +0000 (Tue, 16 Dec 2008) Log Message: ----------- Fix insertion point of new track Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-12-16 19:05:57 UTC (rev 2793) +++ branches/KDE4/src/customtrackview.cpp 2008-12-16 19:21:10 UTC (rev 2794) @@ -3035,6 +3035,7 @@ d.setWindowTitle(i18n("Insert Track")); if (d.exec() == QDialog::Accepted) { + ix = view.track_nb->value(); if (view.before_select->currentIndex() == 1) { ix++; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-12-21 18:33:03
|
Revision: 2812 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2812&view=rev Author: j-b-m Date: 2008-12-21 18:32:56 +0000 (Sun, 21 Dec 2008) Log Message: ----------- Check for invalid resize: http://www.kdenlive.org:80/mantis/view.php?id=501 Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-12-21 10:15:52 UTC (rev 2811) +++ branches/KDE4/src/customtrackview.cpp 2008-12-21 18:32:56 UTC (rev 2812) @@ -2934,6 +2934,17 @@ ItemInfo startInfo = clip->info(); ItemInfo endInfo = clip->info(); endInfo.startPos = GenTime(m_cursorPos, m_document->fps()); + if (endInfo.startPos >= startInfo.endPos) { + // Check for invalid resize + emit displayMessage(i18n("Invalid action"), ErrorMessage); + return; + } else if (endInfo.startPos < startInfo.startPos) { + int length = m_document->renderer()->mltGetSpaceLength(endInfo.startPos, m_document->tracksCount() - startInfo.track); + if (length < (startInfo.startPos - endInfo.startPos).frames(m_document->fps())) { + emit displayMessage(i18n("Invalid action"), ErrorMessage); + return; + } + } ResizeClipCommand *command = new ResizeClipCommand(this, startInfo, endInfo, true); m_commandStack->push(command); } @@ -2947,6 +2958,20 @@ ItemInfo startInfo = clip->info(); ItemInfo endInfo = clip->info(); endInfo.endPos = GenTime(m_cursorPos, m_document->fps()); + if (endInfo.endPos <= startInfo.startPos) { + // Check for invalid resize + emit displayMessage(i18n("Invalid action"), ErrorMessage); + return; + } else if (endInfo.endPos > startInfo.endPos) { + int length = m_document->renderer()->mltGetSpaceLength(endInfo.endPos, m_document->tracksCount() - startInfo.track); + if (length < (endInfo.endPos - startInfo.endPos).frames(m_document->fps())) { + emit displayMessage(i18n("Invalid action"), ErrorMessage); + return; + } + } + + + ResizeClipCommand *command = new ResizeClipCommand(this, startInfo, endInfo, true); m_commandStack->push(command); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2008-12-28 18:19:47
|
Revision: 2841 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2841&view=rev Author: j-b-m Date: 2008-12-28 18:19:43 +0000 (Sun, 28 Dec 2008) Log Message: ----------- Fix problem in transition move Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2008-12-28 18:09:27 UTC (rev 2840) +++ branches/KDE4/src/customtrackview.cpp 2008-12-28 18:19:43 UTC (rev 2841) @@ -1793,7 +1793,7 @@ } new MoveTransitionCommand(this, trInfo, newTrInfo, true, moveCommand); } - if (tr == NULL || tr->endPos() < item->endPos()) { + if (tr == NULL || tr->endPos() < m_dragItemInfo.endPos) { // Check if there is a transition at clip end tr = getTransitionItemAtEnd(m_dragItemInfo.endPos, m_dragItemInfo.track); if (tr && tr->isAutomatic()) { @@ -1821,7 +1821,7 @@ } new MoveTransitionCommand(this, trInfo, newTrInfo, true, moveCommand); } - if (m_dragItemInfo.track == info.track && (tr == NULL || tr->endPos() < item->endPos())) { + if (m_dragItemInfo.track == info.track && (tr == NULL || tr->endPos() < m_dragItemInfo.endPos)) { // Check if there is a transition at clip end tr = getTransitionItemAtEnd(m_dragItemInfo.endPos, m_dragItemInfo.track - 1); if (tr && tr->isAutomatic() && (m_document->tracksCount() - tr->transitionEndTrack()) == m_dragItemInfo.track) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2009-01-04 08:45:13
|
Revision: 2868 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2868&view=rev Author: j-b-m Date: 2009-01-04 08:45:08 +0000 (Sun, 04 Jan 2009) Log Message: ----------- Fix crash on clip paste: http://www.kdenlive.org:80/mantis/view.php?id=539 Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2009-01-04 06:29:16 UTC (rev 2867) +++ branches/KDE4/src/customtrackview.cpp 2009-01-04 08:45:08 UTC (rev 2868) @@ -2947,8 +2947,13 @@ return; } QPoint position; - if (m_menuPosition.isNull()) position = mapFromGlobal(QCursor::pos()); - else position = m_menuPosition; + if (m_menuPosition.isNull()) { + position = mapFromGlobal(QCursor::pos()); + if (!underMouse() || position.y() > m_tracksHeight * m_document->tracksCount()) { + emit displayMessage(i18n("Cannot paste selected clips"), ErrorMessage); + return; + } + } else position = m_menuPosition; GenTime pos = GenTime((int)(mapToScene(position).x()), m_document->fps()); int track = (int)(position.y() / m_tracksHeight); ItemInfo first = m_copiedItems.at(0)->info(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2009-01-04 09:02:01
|
Revision: 2869 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2869&view=rev Author: j-b-m Date: 2009-01-04 09:01:57 +0000 (Sun, 04 Jan 2009) Log Message: ----------- Fix corruption of automatic transitions: http://www.kdenlive.org:80/mantis/view.php?id=542 Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2009-01-04 08:45:08 UTC (rev 2868) +++ branches/KDE4/src/customtrackview.cpp 2009-01-04 09:01:57 UTC (rev 2869) @@ -1793,7 +1793,7 @@ // transition end should be adjusted to clip newTrInfo.endPos = newTrInfo.endPos + (newTrInfo.startPos - trInfo.startPos); } - new MoveTransitionCommand(this, trInfo, newTrInfo, true, moveCommand); + if (newTrInfo.startPos < newTrInfo.endPos) new MoveTransitionCommand(this, trInfo, newTrInfo, true, moveCommand); } if (tr == NULL || tr->endPos() < m_dragItemInfo.endPos) { // Check if there is a transition at clip end @@ -1809,7 +1809,8 @@ // transition start should be moved newTrInfo.startPos = newTrInfo.startPos + (newTrInfo.endPos - trInfo.endPos); } - new MoveTransitionCommand(this, trInfo, newTrInfo, true, moveCommand); + if (newTrInfo.startPos < newTrInfo.endPos) + new MoveTransitionCommand(this, trInfo, newTrInfo, true, moveCommand); } } // Also move automatic transitions (on upper track) @@ -1824,7 +1825,7 @@ // transition end should be adjusted to clip on upper track newTrInfo.endPos = newTrInfo.endPos + (newTrInfo.startPos - trInfo.startPos); } - new MoveTransitionCommand(this, trInfo, newTrInfo, true, moveCommand); + if (newTrInfo.startPos < newTrInfo.endPos) new MoveTransitionCommand(this, trInfo, newTrInfo, true, moveCommand); } } if (m_dragItemInfo.track == info.track && (tr == NULL || tr->endPos() < m_dragItemInfo.endPos)) { @@ -1840,7 +1841,7 @@ // transition start should be moved newTrInfo.startPos = newTrInfo.startPos + (newTrInfo.endPos - trInfo.endPos); } - new MoveTransitionCommand(this, trInfo, newTrInfo, true, moveCommand); + if (newTrInfo.startPos < newTrInfo.endPos) new MoveTransitionCommand(this, trInfo, newTrInfo, true, moveCommand); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2009-01-12 02:39:19
|
Revision: 2896 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2896&view=rev Author: j-b-m Date: 2009-01-12 02:39:13 +0000 (Mon, 12 Jan 2009) Log Message: ----------- slightly improved canceling of wrong transition action Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2009-01-11 21:32:11 UTC (rev 2895) +++ branches/KDE4/src/customtrackview.cpp 2009-01-12 02:39:13 UTC (rev 2896) @@ -1867,8 +1867,9 @@ if (m_dragItem->type() == TRANSITIONWIDGET && (m_dragItemInfo.startPos != info.startPos || m_dragItemInfo.track != info.track)) { Transition *transition = static_cast <Transition *>(m_dragItem); if (!m_document->renderer()->mltMoveTransition(transition->transitionTag(), (int)(m_document->tracksCount() - m_dragItemInfo.track), (int)(m_document->tracksCount() - m_dragItem->track()), transition->transitionEndTrack(), m_dragItemInfo.startPos, m_dragItemInfo.endPos, info.startPos, info.endPos)) { - MoveTransitionCommand *command = new MoveTransitionCommand(this, info, m_dragItemInfo, true); - m_commandStack->push(command); + // Moving transition failed, revert to previous position + emit displayMessage(i18n("Cannot move transition"), ErrorMessage); + transition->setPos((int) m_dragItemInfo.startPos.frames(m_document->fps()), (m_dragItemInfo.track) * m_tracksHeight + 1); } else { MoveTransitionCommand *command = new MoveTransitionCommand(this, m_dragItemInfo, info, false); m_commandStack->push(command); @@ -1980,9 +1981,9 @@ } else if (m_dragItem->type() == TRANSITIONWIDGET) { Transition *transition = static_cast <Transition *>(m_dragItem); if (!m_document->renderer()->mltMoveTransition(transition->transitionTag(), (int)(m_document->tracksCount() - m_dragItemInfo.track), (int)(m_document->tracksCount() - m_dragItemInfo.track), transition->transitionEndTrack(), m_dragItemInfo.startPos, m_dragItemInfo.endPos, info.startPos, info.endPos)) { - emit displayMessage(i18n("Cannot move transition"), ErrorMessage); - MoveTransitionCommand *command = new MoveTransitionCommand(this, info, m_dragItemInfo, true); - m_commandStack->push(command); + // Cannot resize transition + transition->resizeStart((int) m_dragItemInfo.startPos.frames(m_document->fps())); + emit displayMessage(i18n("Cannot resize transition"), ErrorMessage); } else { MoveTransitionCommand *command = new MoveTransitionCommand(this, m_dragItemInfo, info, false); m_commandStack->push(command); @@ -2032,9 +2033,9 @@ } else if (m_dragItem->type() == TRANSITIONWIDGET) { Transition *transition = static_cast <Transition *>(m_dragItem); if (!m_document->renderer()->mltMoveTransition(transition->transitionTag(), (int)(m_document->tracksCount() - m_dragItemInfo.track), (int)(m_document->tracksCount() - m_dragItemInfo.track), 0, m_dragItemInfo.startPos, m_dragItemInfo.endPos, info.startPos, info.endPos)) { - emit displayMessage(i18n("Cannot move transition"), ErrorMessage); - MoveTransitionCommand *command = new MoveTransitionCommand(this, info, m_dragItemInfo, true); - m_commandStack->push(command); + // Cannot resize transition + transition->resizeEnd((int) m_dragItemInfo.endPos.frames(m_document->fps())); + emit displayMessage(i18n("Cannot resize transition"), ErrorMessage); } else { MoveTransitionCommand *command = new MoveTransitionCommand(this, m_dragItemInfo, info, false); m_commandStack->push(command); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2009-01-22 23:22:20
|
Revision: 2945 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2945&view=rev Author: j-b-m Date: 2009-01-22 22:03:12 +0000 (Thu, 22 Jan 2009) Log Message: ----------- Fix insertion of fadeout effect Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2009-01-22 21:28:32 UTC (rev 2944) +++ branches/KDE4/src/customtrackview.cpp 2009-01-22 22:03:12 UTC (rev 2945) @@ -2081,12 +2081,14 @@ QDomElement effect = oldeffect.cloneNode().toElement(); EffectsList::setParameter(oldeffect, "in", QString::number(start)); EffectsList::setParameter(oldeffect, "out", QString::number(end)); + kDebug()<<"EDIT FADE OUT : "<<start<<"x"<<end; slotUpdateClipEffect(item, effect, oldeffect, ix); emit clipItemSelected(item, ix); } } else if (item->fadeOut() != 0) { QDomElement effect = MainWindow::audioEffects.getEffectByTag("volume", "fadeout").cloneNode().toElement(); - EffectsList::setParameter(effect, "out", QString::number(item->fadeOut())); + EffectsList::setParameter(effect, "in", QString::number(item->fadeOut())); + EffectsList::setParameter(effect, "out", QString::number(0)); slotAddEffect(effect, m_dragItem->startPos(), m_dragItem->track()); } } else if (m_operationMode == KEYFRAME) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2009-01-25 14:51:53
|
Revision: 2954 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2954&view=rev Author: j-b-m Date: 2009-01-25 14:51:45 +0000 (Sun, 25 Jan 2009) Log Message: ----------- Don't loose effects when group moving, part of : http://www.kdenlive.org:80/mantis/view.php?id=523 Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2009-01-25 14:42:20 UTC (rev 2953) +++ branches/KDE4/src/customtrackview.cpp 2009-01-25 14:51:45 UTC (rev 2954) @@ -1918,6 +1918,9 @@ ClipItem *clip = static_cast <ClipItem*>(item); info.track = m_document->tracksCount() - info.track; m_document->renderer()->mltInsertClip(info, clip->xml(), clip->baseClip()->producer(info.track)); + for (int i = 0; i < clip->effectsCount(); i++) { + m_document->renderer()->mltAddEffect(info.track, info.startPos, clip->getEffectArgs(clip->effectAt(i)), false); + } } else { Transition *tr = static_cast <Transition*>(item); int newTrack = tr->transitionEndTrack(); @@ -2081,7 +2084,7 @@ QDomElement effect = oldeffect.cloneNode().toElement(); EffectsList::setParameter(oldeffect, "in", QString::number(start)); EffectsList::setParameter(oldeffect, "out", QString::number(end)); - kDebug()<<"EDIT FADE OUT : "<<start<<"x"<<end; + // kDebug()<<"EDIT FADE OUT : "<<start<<"x"<<end; slotUpdateClipEffect(item, effect, oldeffect, ix); emit clipItemSelected(item, ix); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2009-01-25 14:56:44
|
Revision: 2955 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2955&view=rev Author: j-b-m Date: 2009-01-25 14:56:39 +0000 (Sun, 25 Jan 2009) Log Message: ----------- Fix transition in group move : http://www.kdenlive.org:80/mantis/view.php?id=523 Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2009-01-25 14:51:45 UTC (rev 2954) +++ branches/KDE4/src/customtrackview.cpp 2009-01-25 14:56:39 UTC (rev 2955) @@ -1925,8 +1925,7 @@ Transition *tr = static_cast <Transition*>(item); int newTrack = tr->transitionEndTrack(); if (!tr->forcedTrack()) { - newTrack += trackOffset; - if (newTrack < 0 || newTrack > m_document->tracksCount()) newTrack = getPreviousVideoTrack(info.track); + newTrack = getPreviousVideoTrack(info.track); } tr->updateTransitionEndTrack(newTrack); m_document->renderer()->mltAddTransition(tr->transitionTag(), newTrack, m_document->tracksCount() - info.track, info.startPos, info.endPos, tr->toXML()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gr...@us...> - 2009-01-26 18:44:13
|
Revision: 2973 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2973&view=rev Author: granjow Date: 2009-01-26 18:44:09 +0000 (Mon, 26 Jan 2009) Log Message: ----------- Some debug lines for examing bug in spacer tool, will remove them again later. Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2009-01-26 18:38:35 UTC (rev 2972) +++ branches/KDE4/src/customtrackview.cpp 2009-01-26 18:44:09 UTC (rev 2973) @@ -611,6 +611,10 @@ // Ctrl + click, select all items on track after click position int track = (int)(mapToScene(m_clickEvent).y() / m_tracksHeight); selection = items(m_clickEvent.x(), track * m_tracksHeight + 1, sceneRect().width() - m_clickEvent.x(), m_tracksHeight - 2); + // for (int count = 0; count < selection.size(); count++) { + // selection.at(count); + // } + kDebug() << "SPACER TOOL + CTRL, SELECTING ALL CLIPS ON TRACK " << track << " WITH SELECTION RECT " << m_clickEvent.x() << "/" << track * m_tracksHeight + 1 << "; " << sceneRect().width() - m_clickEvent.x() << "/" << m_tracksHeight - 2; } else { // Select all items on all tracks after click position selection = items(event->pos().x(), 1, sceneRect().width() - event->pos().x(), sceneRect().height()); @@ -624,9 +628,11 @@ selection.at(i)->setFlags(QGraphicsItem::ItemIsSelectable); } } + kDebug() << "SPACER TOOL: SELECTION GROUP IS " << m_selectionGroup->boundingRect().top() << "/" << m_selectionGroup->boundingRect().left() << "; " << m_selectionGroup->boundingRect().bottom() << "/" << m_selectionGroup->boundingRect().right(); QPointF top = m_selectionGroup->boundingRect().topLeft(); m_selectionGroup->setPos(top); m_selectionGroup->translate(-top.x(), -top.y() + 1); + kDebug() << "SPACER TOOL: SELECTION GROUP TRANSLATED TO " << m_selectionGroup->pos().x() << "/" << m_selectionGroup->pos().y(); m_operationMode = SPACER; } else setCursorPos((int)(mapToScene(event->x(), 0).x())); return; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gr...@us...> - 2009-01-26 21:04:32
|
Revision: 2980 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2980&view=rev Author: granjow Date: 2009-01-26 21:04:29 +0000 (Mon, 26 Jan 2009) Log Message: ----------- (debug) Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2009-01-26 20:38:13 UTC (rev 2979) +++ branches/KDE4/src/customtrackview.cpp 2009-01-26 21:04:29 UTC (rev 2980) @@ -618,6 +618,7 @@ } else { // Select all items on all tracks after click position selection = items(event->pos().x(), 1, sceneRect().width() - event->pos().x(), sceneRect().height()); + kDebug() << "SELELCTING ELEMENTS WITHIN =" << event->pos().x() << "/" << 1 << ", " << sceneRect().width() - event->pos().x() << "/" << sceneRect().height(); } m_selectionGroup = new AbstractGroupItem(m_document->fps()); scene()->addItem(m_selectionGroup); @@ -627,9 +628,11 @@ m_selectionGroup->addToGroup(selection.at(i)); selection.at(i)->setFlags(QGraphicsItem::ItemIsSelectable); } - } - kDebug() << "SPACER TOOL: SELECTION GROUP IS " << m_selectionGroup->boundingRect().top() << "/" << m_selectionGroup->boundingRect().left() << "; " << m_selectionGroup->boundingRect().bottom() << "/" << m_selectionGroup->boundingRect().right(); + } + kDebug() << "SPACER TOOL: SELECTION GROUP POSITION " << m_selectionGroup->pos().x() << "/" << m_selectionGroup->pos().y(); + kDebug() << "SPACER TOOL: SELECTION GROUP RECT IS " << m_selectionGroup->boundingRect().top() << "/" << m_selectionGroup->boundingRect().left() << "; " << m_selectionGroup->boundingRect().bottom() << "/" << m_selectionGroup->boundingRect().right(); QPointF top = m_selectionGroup->boundingRect().topLeft(); + // Something goes wrong there m_selectionGroup->setPos(top); m_selectionGroup->translate(-top.x(), -top.y() + 1); kDebug() << "SPACER TOOL: SELECTION GROUP TRANSLATED TO " << m_selectionGroup->pos().x() << "/" << m_selectionGroup->pos().y(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gr...@us...> - 2009-01-27 18:42:09
|
Revision: 2990 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2990&view=rev Author: granjow Date: 2009-01-27 18:41:59 +0000 (Tue, 27 Jan 2009) Log Message: ----------- Track of clips won't be changed anymore when using the spacer tool; this occurs in some strange cases. See comment in the code. http://www.kdenlive.org/mantis/view.php?id=604 Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2009-01-27 16:52:24 UTC (rev 2989) +++ branches/KDE4/src/customtrackview.cpp 2009-01-27 18:41:59 UTC (rev 2990) @@ -510,6 +510,7 @@ // virtual void CustomTrackView::mousePressEvent(QMouseEvent * event) { + kDebug() << "mousePressEvent STARTED"; m_menuPosition = QPoint(); m_blockRefresh = true; bool collision = false; @@ -629,15 +630,34 @@ selection.at(i)->setFlags(QGraphicsItem::ItemIsSelectable); } } - kDebug() << "SPACER TOOL: SELECTION GROUP POSITION " << m_selectionGroup->pos().x() << "/" << m_selectionGroup->pos().y(); - kDebug() << "SPACER TOOL: SELECTION GROUP RECT IS " << m_selectionGroup->boundingRect().top() << "/" << m_selectionGroup->boundingRect().left() << "; " << m_selectionGroup->boundingRect().bottom() << "/" << m_selectionGroup->boundingRect().right(); - QPointF top = m_selectionGroup->boundingRect().topLeft(); +// kDebug() << "SPACER TOOL: SELECTION GROUP POSITION " << m_selectionGroup->pos().x() << "/" << m_selectionGroup->pos().y(); +// kDebug() << "SPACER TOOL: SELECTION GROUP RECT IS " << m_selectionGroup->boundingRect().top() << "/" << m_selectionGroup->boundingRect().left() << "; " << m_selectionGroup->boundingRect().bottom() << "/" << m_selectionGroup->boundingRect().right(); + QPointF top = m_selectionGroup->boundingRect().topLeft(); + kDebug() << "SPACER TOOL: SELECTION RECT TOP LEFT IS " << m_selectionGroup->pos().x() << "/"<<m_selectionGroup->pos().y();// << " TO " << top.x() << "/" << top.y(); // Something goes wrong there - m_selectionGroup->setPos(top); - m_selectionGroup->translate(-top.x(), -top.y() + 1); - kDebug() << "SPACER TOOL: SELECTION GROUP TRANSLATED TO " << m_selectionGroup->pos().x() << "/" << m_selectionGroup->pos().y(); + kDebug() << "SPACER TOOL: WILL SET TO " << top.x() << "/" << top.y(); + m_selectionGroup->setPos(top); + kDebug() << "SPACER TOOL: POS SET; POSITION IS NOW " << m_selectionGroup->pos().x() << "/" << m_selectionGroup->pos().y(); + if (m_selectionGroup->pos().x() == 0 && m_selectionGroup->pos().y() == 0) { + /* + This is _really_ strange. Sometimes the position cannot be set and remains (0|0). In this case, translating would cause + all videos to be moved around, a very nasty effect as even the track will be changed. + It is somehow scale dependant (only when zoomed in far enough), at least in my project. ---Simon + BUG ID: 0000604, http://www.kdenlive.org/mantis/view.php?id=604 + */ + kDebug() << "////////// SPACER TOOL: NOT TRANSLATING BY " << -top.x() << "/" << 1-top.y() << " BECAUSE CHANGING POSITION FAILED!"; + //m_selectionGroup->translate(-top.x(), -top.y() + 1); + kDebug() << "SPACER TOOL: NOT TRANSLATED; POSITION IS STILL " << m_selectionGroup->pos().x() << "/" << m_selectionGroup->pos().y(); + } else { + kDebug() << "SPACER TOOL: TRANSLATING BY " << -top.x() << "/" << 1-top.y(); + m_selectionGroup->translate(-top.x(), -top.y() + 1); + kDebug() << "SPACER TOOL: TRANSLATED; POSITION IS NOW " << m_selectionGroup->pos().x() << "/" << m_selectionGroup->pos().y(); + } + // End Wrong + kDebug() << "SPACER TOOL: SELECTION GROUP POSITION IS NOW " << m_selectionGroup->pos().x() << "/" << -m_selectionGroup->pos().y(); m_operationMode = SPACER; } else setCursorPos((int)(mapToScene(event->x(), 0).x())); + kDebug() << "END mousePress EVENT "; return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <j-...@us...> - 2009-01-31 22:15:13
|
Revision: 3016 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=3016&view=rev Author: j-b-m Date: 2009-01-31 21:34:15 +0000 (Sat, 31 Jan 2009) Log Message: ----------- Another fix to the spacer tool Modified Paths: -------------- branches/KDE4/src/customtrackview.cpp Modified: branches/KDE4/src/customtrackview.cpp =================================================================== --- branches/KDE4/src/customtrackview.cpp 2009-01-31 20:10:58 UTC (rev 3015) +++ branches/KDE4/src/customtrackview.cpp 2009-01-31 21:34:15 UTC (rev 3016) @@ -631,31 +631,6 @@ } } groupSelectedItems(true); - - /*QPointF top = m_selectionGroup->boundingRect().topLeft(); - //kDebug() << "SPACER TOOL: SELECTION RECT TOP LEFT IS " << m_selectionGroup->pos().x() << "/" << m_selectionGroup->pos().y();// << " TO " << top.x() << "/" << top.y(); - - // Something goes wrong there - //kDebug() << "SPACER TOOL: WILL SET TO " << top.x() << "/" << top.y(); - m_selectionGroup->setPos(top); - //kDebug() << "SPACER TOOL: POS SET; POSITION IS NOW " << m_selectionGroup->pos().x() << "/" << m_selectionGroup->pos().y(); - if (m_selectionGroup->pos().x() == 0 && m_selectionGroup->pos().y() == 0) {*/ - /* - This is _really_ strange. Sometimes the position cannot be set and remains (0|0). In this case, translating would cause - all videos to be moved around, a very nasty effect as even the track will be changed. - It is somehow scale dependant (only when zoomed in far enough), at least in my project. ---Simon - BUG ID: 0000604, http://www.kdenlive.org/mantis/view.php?id=604 - */ - /*kDebug() << "////////// SPACER TOOL: NOT TRANSLATING BY " << -top.x() << "/" << 1 - top.y() << " BECAUSE CHANGING POSITION FAILED!"; - //m_selectionGroup->translate(-top.x(), -top.y() + 1); - kDebug() << "SPACER TOOL: NOT TRANSLATED; POSITION IS STILL " << m_selectionGroup->pos().x() << "/" << m_selectionGroup->pos().y(); - } else { - kDebug() << "SPACER TOOL: TRANSLATING BY " << -top.x() << "/" << 1 - top.y(); - m_selectionGroup->translate(-top.x(), -top.y() + 1); - kDebug() << "SPACER TOOL: TRANSLATED; POSITION IS NOW " << m_selectionGroup->pos().x() << "/" << m_selectionGroup->pos().y(); - }*/ - // End Wrong - //kDebug() << "SPACER TOOL: SELECTION GROUP POSITION IS NOW " << m_selectionGroup->pos().x() << "/" << -m_selectionGroup->pos().y(); m_operationMode = SPACER; } else setCursorPos((int)(mapToScene(event->x(), 0).x())); kDebug() << "END mousePress EVENT "; @@ -1832,11 +1807,8 @@ // We are moving all tracks track = -1; } - - int startPos = (int) m_selectionGroup->boundingRect().topLeft().x(); - int diff = ((int) m_selectionGroup->pos().x()) - startPos; - //kDebug()<<"//////// SPACER DIFF: "<<diff<<<<m_selectionGroup->boundingRect().topLeft(); - if (diff != 0) { + GenTime timeOffset = GenTime(m_selectionGroup->scenePos().x(), m_document->fps()) - m_selectionGroupInfo.startPos; + if (timeOffset != GenTime()) { QList<QGraphicsItem *> items = m_selectionGroup->childItems(); QList<ItemInfo> clipsToMove = QList<ItemInfo> (); @@ -1865,10 +1837,10 @@ } } - InsertSpaceCommand *command = new InsertSpaceCommand(this, clipsToMove, transitionsToMove, track, GenTime(diff, m_document->fps()), false); + InsertSpaceCommand *command = new InsertSpaceCommand(this, clipsToMove, transitionsToMove, track, timeOffset, false); m_commandStack->push(command); if (track != -1) track = m_document->tracksCount() - track; - m_document->renderer()->mltInsertSpace(trackClipStartList, trackTransitionStartList, track, GenTime(diff, m_document->fps()), GenTime()); + m_document->renderer()->mltInsertSpace(trackClipStartList, trackTransitionStartList, track, timeOffset, GenTime()); } resetSelectionGroup(false); m_operationMode = NONE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |