X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fgeometryval.cpp;h=7fa246e65c99893f9003940ea58f35efe66ccfea;hb=c3302003093710ee247ad84c0fe2ef3c579d417f;hp=45f0f206735e040d91718c815ec27d7ad56ec051;hpb=1fe63eec4edb46e0766d6e4b267dc0404ec33b49;p=kdenlive diff --git a/src/geometryval.cpp b/src/geometryval.cpp index 45f0f206..7fa246e6 100644 --- a/src/geometryval.cpp +++ b/src/geometryval.cpp @@ -29,7 +29,7 @@ #include -Geometryval::Geometryval(const MltVideoProfile profile, Timecode t, QPoint frame_size, int startPoint, QWidget* parent) : +Geometryval::Geometryval(const MltVideoProfile &profile, const Timecode &t, const QPoint &frame_size, int startPoint, QWidget* parent) : QWidget(parent), m_profile(profile), m_paramRect(NULL), @@ -65,7 +65,7 @@ Geometryval::Geometryval(const MltVideoProfile profile, Timecode t, QPoint frame m_sceneview->setScene(m_scene); m_dar = (m_profile.height * m_profile.display_aspect_num / (double) m_profile.display_aspect_den) / (double) m_profile.width; - m_realWidth = (int)(profile.height * profile.display_aspect_num / (double) profile.display_aspect_den); + m_realWidth = (int)(profile.height * profile.display_aspect_num / (double) profile.display_aspect_den + 0.5); QGraphicsRectItem *frameBorder = new QGraphicsRectItem(QRectF(0, 0, m_realWidth, profile.height)); frameBorder->setZValue(-1100); frameBorder->setBrush(QColor(255, 255, 0, 30)); @@ -384,10 +384,10 @@ void Geometryval::setupParam(const QDomElement par, int minFrame, int maxFrame) label_opacity->setHidden(true); spinTransp->setHidden(true); } - char *tmp = (char *) qstrdup(val.toUtf8().data()); - if (m_geom) m_geom->parse(tmp, maxFrame - minFrame, m_profile.width, m_profile.height); - else m_geom = new Mlt::Geometry(tmp, maxFrame - minFrame, m_profile.width, m_profile.height); - delete[] tmp; + if (m_geom) + m_geom->parse(val.toUtf8().data(), maxFrame - minFrame, m_profile.width, m_profile.height); + else + m_geom = new Mlt::Geometry(val.toUtf8().data(), maxFrame - minFrame, m_profile.width, m_profile.height); //kDebug() << " / / UPDATING TRANSITION VALUE: " << m_geom->serialise(); //read param her and set rect @@ -419,7 +419,7 @@ void Geometryval::setupParam(const QDomElement par, int minFrame, int maxFrame) slotUpdateGeometry(); if (!m_fixedMode) { m_timePos.setRange(0, maxFrame - minFrame - 1); - connect(&m_timePos, SIGNAL(editingFinished()), this , SLOT(slotPositionChanged())); + connect(&m_timePos, SIGNAL(timeCodeEditingFinished()), this , SLOT(slotPositionChanged())); } connect(spinTransp, SIGNAL(valueChanged(int)), this , SLOT(slotTransparencyChanged(int))); } @@ -489,7 +489,7 @@ void Geometryval::slotResetPosition() } } -void Geometryval::setFrameSize(QPoint p) +void Geometryval::setFrameSize(const QPoint &p) { m_frameSize = p; } @@ -578,4 +578,11 @@ bool Geometryval::keyframeSelected() } +void Geometryval::slotUpdateRange(int inPoint, int outPoint) +{ + m_helper->setKeyGeometry(m_geom, outPoint - inPoint - 1); + m_helper->update(); + m_timePos.setRange(0, outPoint - inPoint - 1); +} +#include "geometryval.moc"