X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fcustomtrackview.cpp;h=fd6d7084f35dbf459208f2017e3c79b01c1dd2bb;hb=d43bad100aefbcb4e40a5fb1062c7fdf1c6d03f6;hp=f5e7d91acae8ea22e4b6f0a266b5950375a58ba6;hpb=6c74a57534cb16a553be26517d12cd633de35ca6;p=kdenlive diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index f5e7d91a..fd6d7084 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -602,7 +602,7 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event) // razor tool over a clip, display current frame in monitor if (false && !m_blockRefresh && item->type() == AVWIDGET) { //TODO: solve crash when showing frame when moving razor over clip - emit showClipFrame(((ClipItem *) item)->baseClip(), QPoint(), mappedXPos - (clip->startPos() - clip->cropStart()).frames(m_document->fps())); + emit showClipFrame(((ClipItem *) item)->baseClip(), QPoint(), false, mappedXPos - (clip->startPos() - clip->cropStart()).frames(m_document->fps())); } event->accept(); return; @@ -1641,8 +1641,7 @@ void CustomTrackView::addEffect(int track, GenTime pos, QDomElement effect) if (pos < GenTime()) { // Add track effect if (effect.attribute("id") == "speed") { - // TODO: uncomment after 0.8.2 release - // emit displayMessage(i18n("Cannot add speed effect to track")); + emit displayMessage(i18n("Cannot add speed effect to track"), ErrorMessage); return; } clearSelection(); @@ -1897,7 +1896,7 @@ void CustomTrackView::updateEffect(int track, GenTime pos, QDomElement insertedE return; } QDomElement effect = insertedEffect.cloneNode().toElement(); - //kDebug() << "// update effect ix: " << effect.attribute("kdenlive_ix")<<", TRACK: "<timecode().getTimecodeFromFrames(info.startPos.frames(m_document->fps())), info.track), ErrorMessage); kDebug()<<"CANNOT REMOVE: "<fps())<<", TK: "<renderer()->saveSceneList(QString("/tmp/error%1.mlt").arg(m_ct), QDomElement()); - exit(1); return; } m_waitingThumbs.removeAll(item); + item->stopThumbs(); if (item->isSelected()) emit clipItemSelected(NULL); item->baseClip()->removeReference(); m_document->updateClip(item->baseClip()->getId()); @@ -3884,34 +3884,6 @@ void CustomTrackView::deleteSelectedClips() m_commandStack->push(deleteSelected); } -void CustomTrackView::changeClipSpeed() -{ - // TODO: remove after string freeze - QList itemList = scene()->selectedItems(); - if (itemList.count() == 0) { - emit displayMessage(i18n("Select clip to change speed"), ErrorMessage); - return; - } - QUndoCommand *changeSelected = new QUndoCommand(); - changeSelected->setText("Edit clip speed"); - int count = 0; - int percent = -1; - bool ok; - for (int i = 0; i < itemList.count(); i++) { - if (itemList.at(i)->type() == AVWIDGET) { - ClipItem *item = static_cast (itemList.at(i)); - if (percent == -1) percent = QInputDialog::getInteger(this, i18n("Edit Clip Speed"), i18n("New speed (percents)"), item->speed() * 100, 1, 10000, 1, &ok); - if (!ok) break; - double speed = (double) percent / 100.0; - if (item->speed() != speed && (item->clipType() == VIDEO || item->clipType() == AV)) { - count++; - //new ChangeSpeedCommand(this, info, item->speed(), speed, item->clipProducer(), changeSelected); - } - } - } - if (count > 0) m_commandStack->push(changeSelected); - else delete changeSelected; -} void CustomTrackView::doChangeClipSpeed(ItemInfo info, ItemInfo speedIndependantInfo, const double speed, const double oldspeed, int strobe, const QString &id) { @@ -4133,9 +4105,10 @@ void CustomTrackView::addClip(QDomElement xml, const QString &clipId, ItemInfo i emit displayMessage(i18n("Waiting for clip..."), InformationMessage); emit forceClipProcessing(clipId); qApp->processEvents(); - for (int i = 0; i < 3; i++) { + for (int i = 0; i < 10; i++) { if (baseclip->getProducer() == NULL) { - m_producerNotReady.wait(&m_mutex, 500 + 500 * i); + qApp->processEvents(); + m_producerNotReady.wait(&m_mutex, 200); } else break; } if (baseclip->getProducer() == NULL) { @@ -4258,7 +4231,7 @@ ClipItem *CustomTrackView::getClipItemAt(GenTime pos, int track) Transition *CustomTrackView::getTransitionItemAt(int pos, int track) { - const QPointF p(pos, (track + 1) * m_tracksHeight); + const QPointF p(pos, track * m_tracksHeight + Transition::itemOffset() + 1); QList list = scene()->items(p); Transition *clip = NULL; for (int i = 0; i < list.size(); i++) { @@ -4279,7 +4252,7 @@ Transition *CustomTrackView::getTransitionItemAt(GenTime pos, int track) Transition *CustomTrackView::getTransitionItemAtEnd(GenTime pos, int track) { int framepos = (int)(pos.frames(m_document->fps())); - const QPointF p(framepos - 1, (track + 1) * m_tracksHeight); + const QPointF p(framepos - 1, track * m_tracksHeight + Transition::itemOffset() + 1); QList list = scene()->items(p); Transition *clip = NULL; for (int i = 0; i < list.size(); i++) { @@ -4295,7 +4268,7 @@ Transition *CustomTrackView::getTransitionItemAtEnd(GenTime pos, int track) Transition *CustomTrackView::getTransitionItemAtStart(GenTime pos, int track) { - const QPointF p(pos.frames(m_document->fps()), (track + 1) * m_tracksHeight); + const QPointF p(pos.frames(m_document->fps()), track * m_tracksHeight + Transition::itemOffset() + 1); QList list = scene()->items(p); Transition *clip = NULL; for (int i = 0; i < list.size(); ++i) { @@ -6776,3 +6749,28 @@ void CustomTrackView::adjustEffects(ClipItem* item, ItemInfo oldInfo, QUndoComma } +void CustomTrackView::slotGotFilterJobResults(const QString &id, int startPos, int track, const QString &filter, stringMap filterParams) +{ + ClipItem *clip = getClipItemAt(GenTime(startPos, m_document->fps()), track); + if (clip == NULL) { + emit displayMessage(i18n("Cannot find clip for effect update %1.", filter), ErrorMessage); + return; + } + QDomElement newEffect; + QDomElement effect = clip->getEffectAt(clip->selectedEffectIndex()); + if (effect.attribute("id") == filter) { + newEffect = effect.cloneNode().toElement(); + QMap::const_iterator i = filterParams.constBegin(); + while (i != filterParams.constEnd()) { + EffectsList::setParameter(newEffect, i.key(), i.value()); + kDebug()<<"// RESULT FILTER: "<tracksCount() - clip->track(), clip->startPos(), effect, newEffect, clip->selectedEffectIndex(), true); + m_commandStack->push(command); + emit clipItemSelected(clip, clip->selectedEffectIndex()); + } + +} + +