}
}
+void CustomTrackView::slotAlignPlayheadToMousePos()
+{
+ /* get curser point ref in screen coord */
+ QPoint ps = QCursor::pos();
+ /* get xPos in scene coord */
+ int mappedXPos = qMax((int)(mapToScene(mapFromGlobal(ps)).x() + 0.5), 0);
+ /* move playhead to new xPos*/
+ seekCursorPos(mappedXPos);
+}
// virtual
void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
groupSelectedItems(true);
} else if (items.count() == 1) {
m_dragItem = static_cast <AbstractClipItem *>(items.at(0));
- emit clipItemSelected((ClipItem*)m_dragItem, false);
+ emit clipItemSelected((ClipItem*) m_dragItem, false);
}
event->setDropAction(Qt::MoveAction);
event->accept();
parameters.addParam(QString("filter%1.tag").arg(subeffectix), subeffect.attribute("tag"));
parameters.addParam(QString("filter%1.kdenlive_info").arg(subeffectix), subeffect.attribute("kdenlive_info"));
QDomNodeList subparams = subeffect.elementsByTagName("parameter");
- adjustEffectParameters(parameters, subparams, QString("filter%1.").arg(subeffectix));
+ adjustEffectParameters(parameters, subparams, m_document->mltProfile(), QString("filter%1.").arg(subeffectix));
}
}
QDomNodeList params = effect.elementsByTagName("parameter");
- adjustEffectParameters(parameters, params);
+ adjustEffectParameters(parameters, params, m_document->mltProfile());
return parameters;
}
-void CustomTrackView::adjustEffectParameters(EffectsParameterList ¶meters, QDomNodeList params, const QString &prefix)
+void CustomTrackView::adjustEffectParameters(EffectsParameterList ¶meters, QDomNodeList params, MltVideoProfile profile, const QString &prefix)
{
QLocale locale;
for (int i = 0; i < params.count(); i++) {
if (e.attribute("factor", "1") != "1" || e.attribute("offset", "0") != "0") {
double fact;
if (e.attribute("factor").contains('%')) {
- fact = ProfilesDialog::getStringEval(m_document->mltProfile(), e.attribute("factor"));
+ fact = ProfilesDialog::getStringEval(profile, e.attribute("factor"));
} else {
fact = e.attribute("factor", "1").toDouble();
}
}
-void CustomTrackView::slotGotFilterJobResults(const QString &/*id*/, int startPos, int track, const QString &filter, stringMap filterParams, QStringList extra)
+void CustomTrackView::slotGotFilterJobResults(const QString &/*id*/, int startPos, int track, stringMap filterParams, stringMap extra)
{
ClipItem *clip = getClipItemAt(GenTime(startPos, m_document->fps()), track);
if (clip == NULL) {
- emit displayMessage(i18n("Cannot find clip for effect update %1.", filter), ErrorMessage);
+ emit displayMessage(i18n("Cannot find clip for effect update %1.", extra.value("finalfilter")), ErrorMessage);
return;
}
QDomElement newEffect;
QDomElement effect = clip->getEffectAtIndex(clip->selectedEffectIndex());
- if (effect.attribute("id") == filter) {
+ if (effect.attribute("id") == extra.value("finalfilter")) {
newEffect = effect.cloneNode().toElement();
QMap<QString, QString>::const_iterator i = filterParams.constBegin();
while (i != filterParams.constEnd()) {
}
// Make sure there is no collision
QList<QGraphicsItem *> children = m_selectionGroup->childItems();
- ClipItem *item;
+ ClipItem *item = NULL;
for (int i = 0; i < children.count(); i++) {
if (children.at(i)->type() == AVWIDGET) {
item = (ClipItem*) children.at(i);
break;
}
}
+ if (!item) {
+ emit displayMessage(i18n("No clip found"), ErrorMessage);
+ return;
+ }
QMap <QString, QString> data = item->baseClip()->analysisData();
if (data.isEmpty()) {
emit displayMessage(i18n("No keyframe data found in clip"), ErrorMessage);