m_valueItems[paramName+"complex"] = pl;
connect(pl, SIGNAL(parameterChanged()), this, SLOT(collectAllParameters()));
} else if (type == "geometry") {
- Geometryval *geo = new Geometryval(m_profile, m_frameSize);
+ Geometryval *geo = new Geometryval(m_profile, m_frameSize, m_in);
geo->setupParam(pa, minFrame, maxFrame);
m_vbox->addWidget(geo);
m_valueItems[paramName+"geometry"] = geo;
void EffectStackEdit::slotSeekToPos(int pos)
{
- emit seekTimeline(pos - m_in);
+ emit seekTimeline(pos);
}
wipeInfo EffectStackEdit::getWipeInfo(QString value)
#include <QInputDialog>
-Geometryval::Geometryval(const MltVideoProfile profile, QPoint frame_size, QWidget* parent) :
+Geometryval::Geometryval(const MltVideoProfile profile, QPoint frame_size, int startPoint, QWidget* parent) :
QWidget(parent),
m_profile(profile),
m_paramRect(NULL),
m_geom(NULL),
m_path(NULL),
m_fixedMode(false),
- m_frameSize(frame_size)
+ m_frameSize(frame_size),
+ m_startPoint(startPoint)
{
setupUi(this);
QVBoxLayout* vbox = new QVBoxLayout(widget);
void Geometryval::slotPositionChanged(int pos, bool seek)
{
- if (seek && KdenliveSettings::transitionfollowcursor()) emit seekToPos(pos);
+ if (seek && KdenliveSettings::transitionfollowcursor()) emit seekToPos(pos + m_startPoint);
spinPos->setValue(pos);
m_helper->setValue(pos);
Mlt::GeometryItem item;
{
Q_OBJECT
public:
- explicit Geometryval(const MltVideoProfile profile, QPoint frame_size, QWidget* parent = 0);
+ explicit Geometryval(const MltVideoProfile profile, QPoint frame_size, int startPoint = 0, QWidget* parent = 0);
virtual ~Geometryval();
QDomElement getParamDesc();
QString getValue() const;
Ui::GeometryPosition_UI m_view;
void updateTransitionPath();
double m_dar;
+ int m_startPoint;
QGraphicsView *m_sceneview;
public slots:
sl->setValue(keyframe_list->item(item->row(), col)->text().toInt());
sl->blockSignals(false);
}
- if (KdenliveSettings::keyframeseek() && seek) emit seekToPos(keyframe_pos->value());
+ if (KdenliveSettings::keyframeseek() && seek) emit seekToPos(keyframe_pos->value() - m_min);
}
void KeyframeEdit::slotAdjustKeyframePos(int value)
else val = m_timecode.getTimecodeFromFrames(value);
keyframe_list->verticalHeaderItem(item->row())->setText(val);
slotGenerateParams(item->row(), -1);
- if (KdenliveSettings::keyframeseek()) emit seekToPos(value);
+ if (KdenliveSettings::keyframeseek()) emit seekToPos(value - m_min);
}
void KeyframeEdit::slotAdjustKeyframeValue(int /*value*/)