From f4cafd2d72054346d3ad900f3d67335d30787b09 Mon Sep 17 00:00:00 2001 From: Till Theato Date: Tue, 22 Mar 2011 19:43:19 +0000 Subject: [PATCH] rotoscoping: fix keyframe sorting issues svn path=/trunk/kdenlive/; revision=5519 --- src/rotoscoping/rotowidget.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/rotoscoping/rotowidget.cpp b/src/rotoscoping/rotowidget.cpp index abfef3dd..cf8544f0 100644 --- a/src/rotoscoping/rotowidget.cpp +++ b/src/rotoscoping/rotowidget.cpp @@ -74,7 +74,7 @@ RotoWidget::RotoWidget(QString data, Monitor *monitor, int in, int out, Timecode // key might already be justified if (map.contains(QString::number(keyframes.at(j) + m_in))) { QVariant value = map.take(QString::number(keyframes.at(j) + m_in)); - map[QString::number(keyframes.at(j) + m_in).rightJustified(qRound(log10((double)m_out)), '0')] = value; + map[QString::number(keyframes.at(j) + m_in).rightJustified(log10((double)m_out) + 1, '0')] = value; } } m_data = QVariant(map); @@ -157,7 +157,7 @@ void RotoWidget::slotUpdateData(int pos, bool editing) QMap map = m_data.toMap(); // replace or insert at position // we have to fill with 0s to maintain the correct order - map[QString::number((pos < 0 ? m_keyframeWidget->getPosition() : pos) + m_in).rightJustified(qRound(log10((double)m_out)), '0')] = QVariant(vlist); + map[QString::number((pos < 0 ? m_keyframeWidget->getPosition() : pos) + m_in).rightJustified(log10((double)m_out) + 1, '0')] = QVariant(vlist); m_data = QVariant(map); } else { m_data = QVariant(vlist); @@ -253,7 +253,7 @@ QList RotoWidget::getPoints(int keyframe) QList points; QList data; if (keyframe >= 0) - data = m_data.toMap()[QString::number(keyframe).rightJustified(qRound(log10((double)m_out)), '0')].toList(); + data = m_data.toMap()[QString::number(keyframe).rightJustified(log10((double)m_out) + 1, '0')].toList(); else data = m_data.toList(); foreach (const QVariant &bpoint, data) { @@ -272,7 +272,7 @@ void RotoWidget::slotAddKeyframe(int pos) if (!m_data.canConvert(QVariant::Map)) { QVariant data = m_data; QMap map; - map[QString::number(m_in).rightJustified(qRound(log10((double)m_out)), '0')] = data; + map[QString::number(m_in).rightJustified(log10((double)m_out) + 1, '0')] = data; m_data = QVariant(map); } @@ -293,7 +293,7 @@ void RotoWidget::slotRemoveKeyframe(int pos) return; QMap map = m_data.toMap(); - map.remove(QString::number(pos + m_in).rightJustified(qRound(log10((double)m_out)), '0')); + map.remove(QString::number(pos + m_in).rightJustified(log10((double)m_out) + 1, '0')); m_data = QVariant(map); if (m_data.toMap().count() == 1) { @@ -309,7 +309,7 @@ void RotoWidget::slotMoveKeyframe(int oldPos, int newPos) { if (m_data.canConvert(QVariant::Map)) { QMap map = m_data.toMap(); - map[QString::number(newPos + m_in).rightJustified(qRound(log10((double)m_out)), '0')] = map.take(QString::number(oldPos + m_in).rightJustified(qRound(log10((double)m_out)), '0')); + map[QString::number(newPos + m_in).rightJustified(log10((double)m_out) + 1, '0')] = map.take(QString::number(oldPos + m_in).rightJustified(log10((double)m_out) + 1, '0')); m_data = QVariant(map); } -- 2.39.2