]> git.sesse.net Git - kdenlive/blobdiff - src/transition.cpp
Fix rendering of documents that have a locale different than the system's locale
[kdenlive] / src / transition.cpp
index 811cc8ba1b8aed3062f81b17884dce93b04ba541..01b80412013bd0e5d643a95e29b63832fb8149e5 100644 (file)
@@ -40,19 +40,19 @@ Transition::Transition(const ItemInfo info, int transitiontrack, double fps, QDo
 {
     setZValue(3);
     m_info.cropDuration = info.endPos - info.startPos;
-    setPos(info.startPos.frames(fps), (qreal)(info.track * KdenliveSettings::trackheight() + KdenliveSettings::trackheight() / 3 * 2));
+    setPos(info.startPos.frames(fps), (qreal)(info.track * KdenliveSettings::trackheight() + itemOffset() + 1));
 
 #if QT_VERSION >= 0x040600
     m_startAnimation = new QPropertyAnimation(this, "rect");
     m_startAnimation->setDuration(200);
-    QRectF r(0, 0, m_info.cropDuration.frames(fps) - 0.02, (qreal)(KdenliveSettings::trackheight() / 3 + 5));
-    QRectF r2(0, 0, m_info.cropDuration.frames(fps) - 0.02, (qreal)(KdenliveSettings::trackheight() / 3 * 2 - 1));
+    QRectF r(0, 0, m_info.cropDuration.frames(fps) - 0.02, (qreal) itemHeight() / 2);
+    QRectF r2(0, 0, m_info.cropDuration.frames(fps) - 0.02, (qreal)itemHeight());
     m_startAnimation->setStartValue(r);
     m_startAnimation->setEndValue(r2);
     m_startAnimation->setEasingCurve(QEasingCurve::OutQuad);
     m_startAnimation->start();
 #else
-    setRect(0, 0, m_info.cropDuration.frames(fps) - 0.02, (qreal)(KdenliveSettings::trackheight() / 3 * 2 - 1));
+    setRect(0, 0, m_info.cropDuration.frames(fps) - 0.02, (qreal) itemHeight());
 #endif
 
     m_info.cropStart = GenTime();
@@ -70,7 +70,7 @@ Transition::Transition(const ItemInfo info, int transitiontrack, double fps, QDo
     if (m_automaticTransition) m_parameters.setAttribute("automatic", 1);
     else if (m_parameters.attribute("automatic") == "1") m_automaticTransition = true;
     if (m_parameters.attribute("force_track") == "1") m_forceTransitionTrack = true;
-    m_name = i18n(m_parameters.elementsByTagName("name").item(0).toElement().text().toUtf8().data());
+    m_name = i18n(m_parameters.firstChildElement("name").text().toUtf8().data());
     m_secondClip = 0;
 
     //m_referenceClip->addTransition(this);
@@ -127,7 +127,7 @@ void Transition::setTransitionParameters(const QDomElement params)
     m_parameters = params;
     if (m_parameters.attribute("force_track") == "1") setForcedTrack(true, m_parameters.attribute("transition_btrack").toInt());
     else if (m_parameters.attribute("force_track") == "0") setForcedTrack(false, m_parameters.attribute("transition_btrack").toInt());
-    m_name = i18n(m_parameters.elementsByTagName("name").item(0).toElement().text().toUtf8().data());
+    m_name = i18n(m_parameters.firstChildElement("name").text().toUtf8().data());
     update();
 }
 
@@ -303,6 +303,16 @@ OPERATIONTYPE Transition::operationMode(QPointF pos)
     return MOVE;
 }
 
+int Transition::itemHeight()
+{
+    return (int) (KdenliveSettings::trackheight() / 3 * 2 - 1);
+}
+
+int Transition::itemOffset()
+{
+    return (int) (KdenliveSettings::trackheight() / 3 * 2);
+}
+
 bool Transition::hasClip(const ClipItem * clip) const
 {
     if (clip == m_secondClip) return true;