]> git.sesse.net Git - kdenlive/blobdiff - src/clipitem.cpp
[PATCH by Ray Lehtiniemi] Fix up &&/& confusion
[kdenlive] / src / clipitem.cpp
index 5d10de57a48cd7929969ca71b18a0d5ddeb68b8e..7b8c02e16e80f2b0ef816c052c8e768885028500 100644 (file)
  ***************************************************************************/
 
 
-
-#include <QPainter>
-#include <QTimer>
-#include <QStyleOptionGraphicsItem>
-#include <QGraphicsScene>
-#include <QGraphicsView>
-#include <QScrollBar>
-#include <QMimeData>
-#include <QApplication>
-
-#include <KDebug>
-
 #include "clipitem.h"
 #include "customtrackview.h"
 #include "customtrackscene.h"
 #include "kdenlivesettings.h"
 #include "kthumb.h"
 
+#include <KDebug>
+
+#include <QPainter>
+#include <QTimer>
+#include <QStyleOptionGraphicsItem>
+#include <QGraphicsScene>
+#include <QMimeData>
+
 
 ClipItem::ClipItem(DocClipBase *clip, ItemInfo info, double fps, double speed, bool generateThumbs)
         : AbstractClipItem(info, QRectF(), fps), m_clip(clip), m_resizeMode(NONE), m_grabPoint(0), m_maxTrack(0), m_hasThumbs(false), startThumbTimer(NULL), endThumbTimer(NULL), audioThumbWasDrawn(false), m_opacity(1.0), m_timeLine(0), m_startThumbRequested(false), m_endThumbRequested(false), m_startFade(0), m_endFade(0), m_hover(false), m_selectedEffect(-1), m_speed(speed), framePixelWidth(0), m_startPix(QPixmap()), m_endPix(QPixmap()) {
@@ -48,7 +44,7 @@ ClipItem::ClipItem(DocClipBase *clip, ItemInfo info, double fps, double speed, b
 
     if (m_speed == 1.0) m_clipName = clip->name();
     else {
-        m_clipName = clip->name() + " - " + QString::number(m_speed * 100, 'f', 0) + "%";
+        m_clipName = clip->name() + " - " + QString::number(m_speed * 100, 'f', 0) + '%';
         m_cropDuration = m_cropDuration * m_speed;
     }
     m_producer = clip->getId();
@@ -148,7 +144,7 @@ void ClipItem::initEffect(QDomElement effect) {
             QString def = e.attribute("default");
             // Effect has a keyframe type parameter, we need to set the values
             if (e.attribute("keyframes").isEmpty()) {
-                e.setAttribute("keyframes", QString::number(m_cropStart.frames(m_fps)) + ":" + def + ";" + QString::number((m_cropStart + m_cropDuration).frames(m_fps)) + ":" + def);
+                e.setAttribute("keyframes", QString::number(m_cropStart.frames(m_fps)) + ':' + def + ';' + QString::number((m_cropStart + m_cropDuration).frames(m_fps)) + ':' + def);
                 //kDebug() << "///// EFFECT KEYFRAMES INITED: " << e.attribute("keyframes");
                 break;
             }
@@ -160,17 +156,17 @@ void ClipItem::initEffect(QDomElement effect) {
             int end = (duration() + cropStart()).frames(m_fps);
             int start = end;
             if (effect.attribute("id") == "fadeout") {
-                if (m_effectList.hasEffect("", "fade_to_black") == -1) {
+                if (m_effectList.hasEffect(QString(), "fade_to_black") == -1) {
                     start -= EffectsList::parameter(effect, "in").toInt();
                 } else {
-                    QDomElement fadeout = m_effectList.getEffectByTag("", "fade_to_black");
+                    QDomElement fadeout = m_effectList.getEffectByTag(QString(), "fade_to_black");
                     start -= EffectsList::parameter(fadeout, "out").toInt() - EffectsList::parameter(fadeout, "in").toInt();
                 }
             } else if (effect.attribute("id") == "fade_to_black") {
-                if (m_effectList.hasEffect("", "fadeout") == -1) {
+                if (m_effectList.hasEffect(QString(), "fadeout") == -1) {
                     start -= EffectsList::parameter(effect, "in").toInt();
                 } else {
-                    QDomElement fadeout = m_effectList.getEffectByTag("", "fadeout");
+                    QDomElement fadeout = m_effectList.getEffectByTag(QString(), "fadeout");
                     start -= EffectsList::parameter(fadeout, "out").toInt() - EffectsList::parameter(fadeout, "in").toInt();
                 }
             }
@@ -180,15 +176,15 @@ void ClipItem::initEffect(QDomElement effect) {
             int start = cropStart().frames(m_fps);
             int end = start;
             if (effect.attribute("id") == "fadein") {
-                if (m_effectList.hasEffect("", "fade_from_black") == -1)
+                if (m_effectList.hasEffect(QString(), "fade_from_black") == -1)
                     end += EffectsList::parameter(effect, "out").toInt();
                 else
-                    end += EffectsList::parameter(m_effectList.getEffectByTag("", "fade_from_black"), "out").toInt();
+                    end += EffectsList::parameter(m_effectList.getEffectByTag(QString(), "fade_from_black"), "out").toInt();
             } else if (effect.attribute("id") == "fade_from_black") {
-                if (m_effectList.hasEffect("", "fadein") == -1)
+                if (m_effectList.hasEffect(QString(), "fadein") == -1)
                     end += EffectsList::parameter(effect, "out").toInt();
                 else
-                    end += EffectsList::parameter(m_effectList.getEffectByTag("", "fadein"), "out").toInt();
+                    end += EffectsList::parameter(m_effectList.getEffectByTag(QString(), "fadein"), "out").toInt();
             }
             EffectsList::setParameter(effect, "in", QString::number(start));
             EffectsList::setParameter(effect, "out", QString::number(end));
@@ -201,7 +197,7 @@ bool ClipItem::checkKeyFrames() {
     for (int ix = 0; ix < m_effectList.count(); ix ++) {
         QString kfr = keyframes(ix);
         if (!kfr.isEmpty()) {
-            const QStringList keyframes = kfr.split(";", QString::SkipEmptyParts);
+            const QStringList keyframes = kfr.split(';', QString::SkipEmptyParts);
             QStringList newKeyFrames;
             bool cutKeyFrame = false;
             bool modified = false;
@@ -209,9 +205,9 @@ bool ClipItem::checkKeyFrames() {
             double lastValue = -1;
             int start = m_cropStart.frames(m_fps);
             int end = (m_cropStart + m_cropDuration).frames(m_fps);
-            foreach(const QString str, keyframes) {
-                int pos = str.section(":", 0, 0).toInt();
-                double val = str.section(":", 1, 1).toDouble();
+            foreach(const QString &str, keyframes) {
+                int pos = str.section(':', 0, 0).toInt();
+                double val = str.section(':', 1, 1).toDouble();
                 if (pos - start < 0) {
                     // a keyframe is defined before the start of the clip
                     cutKeyFrame = true;
@@ -221,7 +217,7 @@ bool ClipItem::checkKeyFrames() {
                         int diff = pos - lastPos;
                         double ratio = (double)(start - lastPos) / diff;
                         double newValue = lastValue + (val - lastValue) * ratio;
-                        newKeyFrames.append(QString::number(start) + ":" + QString::number(newValue));
+                        newKeyFrames.append(QString::number(start) + ':' + QString::number(newValue));
                         modified = true;
                     }
                     cutKeyFrame = false;
@@ -233,12 +229,12 @@ bool ClipItem::checkKeyFrames() {
                         if (diff != 0) {
                             double ratio = (double)(end - lastPos) / diff;
                             double newValue = lastValue + (val - lastValue) * ratio;
-                            newKeyFrames.append(QString::number(end) + ":" + QString::number(newValue));
+                            newKeyFrames.append(QString::number(end) + ':' + QString::number(newValue));
                             modified = true;
                         }
                         break;
                     } else {
-                        newKeyFrames.append(QString::number(pos) + ":" + QString::number(val));
+                        newKeyFrames.append(QString::number(pos) + ':' + QString::number(val));
                     }
                 }
                 lastPos = pos;
@@ -269,10 +265,10 @@ void ClipItem::setKeyframes(const int ix, const QString keyframes) {
                 m_keyframeFactor = 100.0 / (max - min);
                 m_keyframeDefault = e.attribute("default").toDouble();
                 // parse keyframes
-                const QStringList keyframes = e.attribute("keyframes").split(";", QString::SkipEmptyParts);
-                foreach(const QString str, keyframes) {
-                    int pos = str.section(":", 0, 0).toInt();
-                    double val = str.section(":", 1, 1).toDouble();
+                const QStringList keyframes = e.attribute("keyframes").split(';', QString::SkipEmptyParts);
+                foreach(const QString &str, keyframes) {
+                    int pos = str.section(':', 0, 0).toInt();
+                    double val = str.section(':', 1, 1).toDouble();
                     m_keyframes[pos] = val;
                 }
                 update();
@@ -298,10 +294,10 @@ void ClipItem::setSelectedEffect(const int ix) {
                 m_keyframeFactor = 100.0 / (max - min);
                 m_keyframeDefault = e.attribute("default").toDouble();
                 // parse keyframes
-                const QStringList keyframes = e.attribute("keyframes").split(";", QString::SkipEmptyParts);
-                foreach(const QString str, keyframes) {
-                    int pos = str.section(":", 0, 0).toInt();
-                    double val = str.section(":", 1, 1).toDouble();
+                const QStringList keyframes = e.attribute("keyframes").split(';', QString::SkipEmptyParts);
+                foreach(const QString &str, keyframes) {
+                    int pos = str.section(':', 0, 0).toInt();
+                    double val = str.section(':', 1, 1).toDouble();
                     m_keyframes[pos] = val;
                 }
                 update();
@@ -341,10 +337,8 @@ void ClipItem::updateKeyframeEffect() {
             QString keyframes;
             if (m_keyframes.count() > 1) {
                 QMap<int, double>::const_iterator i = m_keyframes.constBegin();
-                double x1;
-                double y1;
                 while (i != m_keyframes.constEnd()) {
-                    keyframes.append(QString::number(i.key()) + ":" + QString::number(i.value()) + ";");
+                    keyframes.append(QString::number(i.key()) + ':' + QString::number(i.value()) + ';');
                     ++i;
                 }
             }
@@ -633,7 +627,6 @@ void ClipItem::paint(QPainter *painter,
     QList < CommentedTime >::Iterator it = markers.begin();
     GenTime pos;
     double framepos;
-    const int markerwidth = 4;
     QBrush markerBrush;
     markerBrush = QBrush(QColor(120, 120, 0, 140));
     QPen pen = painter->pen();
@@ -653,7 +646,7 @@ void ClipItem::paint(QPainter *painter,
                 framepos = br.x() + pos.frames(m_fps);
                 const QRectF r1(framepos + 0.04, 10, itemWidth - framepos - 2, itemHeight - 10);
                 const QRectF r2 = painter->matrix().mapRect(r1);
-                const QRectF txtBounding = painter->boundingRect(r2, Qt::AlignLeft | Qt::AlignTop, " " + (*it).comment() + " ");
+                const QRectF txtBounding = painter->boundingRect(r2, Qt::AlignLeft | Qt::AlignTop, ' ' + (*it).comment() + ' ');
 
                 QPainterPath path;
                 path.addRoundedRect(txtBounding, 3, 3);
@@ -719,7 +712,7 @@ void ClipItem::paint(QPainter *painter,
     }
 
     // Draw clip name
-    QRectF txtBounding = painter->boundingRect(mapped, Qt::AlignHCenter | Qt::AlignVCenter, " " + m_clipName + " ");
+    QRectF txtBounding = painter->boundingRect(mapped, Qt::AlignHCenter | Qt::AlignVCenter, ' ' + m_clipName + ' ');
     painter->fillRect(txtBounding, QBrush(QColor(0, 0, 0, 150)));
     //painter->setPen(QColor(0, 0, 0, 180));
     //painter->drawText(txtBounding, Qt::AlignCenter, m_clipName);
@@ -804,7 +797,6 @@ QList <GenTime> ClipItem::snapMarkers() const {
     QList < GenTime > snaps;
     QList < GenTime > markers = baseClip()->snapMarkers();
     GenTime pos;
-    double framepos;
 
     for (int i = 0; i < markers.size(); i++) {
         pos = markers.at(i) - cropStart();
@@ -820,7 +812,6 @@ QList <CommentedTime> ClipItem::commentedSnapMarkers() const {
     QList < CommentedTime > snaps;
     QList < CommentedTime > markers = baseClip()->commentedSnapMarkers();
     GenTime pos;
-    double framepos;
 
     for (int i = 0; i < markers.size(); i++) {
         pos = markers.at(i).time() - cropStart();
@@ -1029,13 +1020,13 @@ void ClipItem::checkEffectsKeyframesPos(const int previous, const int current, b
             QDomElement e = params.item(i).toElement();
             if (e.attribute("type") == "keyframe") {
                 // parse keyframes and adjust values
-                const QStringList keyframes = e.attribute("keyframes").split(";", QString::SkipEmptyParts);
+                const QStringList keyframes = e.attribute("keyframes").split(';', QString::SkipEmptyParts);
                 QMap <int, double> kfr;
                 int pos;
                 double val;
-                foreach(const QString str, keyframes) {
-                    pos = str.section(":", 0, 0).toInt();
-                    val = str.section(":", 1, 1).toDouble();
+                foreach(const QString &str, keyframes) {
+                    pos = str.section(':', 0, 0).toInt();
+                    val = str.section(':', 1, 1).toDouble();
                     if (pos == previous) kfr[current] = val;
                     else {
                         if (fromStart && pos >= current) kfr[pos] = val;
@@ -1045,7 +1036,7 @@ void ClipItem::checkEffectsKeyframesPos(const int previous, const int current, b
                 QString newkfr;
                 QMap<int, double>::const_iterator k = kfr.constBegin();
                 while (k != kfr.constEnd()) {
-                    newkfr.append(QString::number(k.key()) + ":" + QString::number(k.value()) + ";");
+                    newkfr.append(QString::number(k.key()) + ':' + QString::number(k.value()) + ';');
                     ++k;
                 }
                 e.setAttribute("keyframes", newkfr);
@@ -1208,41 +1199,41 @@ EffectsParameterList ClipItem::addEffect(QDomElement effect, bool animate) {
                 // check if it is a fade effect
                 if (effectId == "fadein") {
                     needRepaint = true;
-                    if (m_effectList.hasEffect("", "fade_from_black") == -1) {
+                    if (m_effectList.hasEffect(QString(), "fade_from_black") == -1) {
                         if (e.attribute("name") == "out") fade += e.attribute("value").toInt();
                         else if (e.attribute("name") == "in") fade -= e.attribute("value").toInt();
                     } else {
-                        QDomElement fadein = m_effectList.getEffectByTag("", "fade_from_black");
+                        QDomElement fadein = m_effectList.getEffectByTag(QString(), "fade_from_black");
                         if (fadein.attribute("name") == "out") fade += fadein.attribute("value").toInt();
                         else if (fadein.attribute("name") == "in") fade -= fadein.attribute("value").toInt();
                     }
                 } else if (effectId == "fade_from_black") {
                     needRepaint = true;
-                    if (m_effectList.hasEffect("", "fadein") == -1) {
+                    if (m_effectList.hasEffect(QString(), "fadein") == -1) {
                         if (e.attribute("name") == "out") fade += e.attribute("value").toInt();
                         else if (e.attribute("name") == "in") fade -= e.attribute("value").toInt();
                     } else {
-                        QDomElement fadein = m_effectList.getEffectByTag("", "fadein");
+                        QDomElement fadein = m_effectList.getEffectByTag(QString(), "fadein");
                         if (fadein.attribute("name") == "out") fade += fadein.attribute("value").toInt();
                         else if (fadein.attribute("name") == "in") fade -= fadein.attribute("value").toInt();
                     }
                 } else if (effectId == "fadeout") {
                     needRepaint = true;
-                    if (m_effectList.hasEffect("", "fade_to_black") == -1) {
+                    if (m_effectList.hasEffect(QString(), "fade_to_black") == -1) {
                         if (e.attribute("name") == "out") fade -= e.attribute("value").toInt();
                         else if (e.attribute("name") == "in") fade += e.attribute("value").toInt();
                     } else {
-                        QDomElement fadeout = m_effectList.getEffectByTag("", "fade_to_black");
+                        QDomElement fadeout = m_effectList.getEffectByTag(QString(), "fade_to_black");
                         if (fadeout.attribute("name") == "out") fade -= fadeout.attribute("value").toInt();
                         else if (fadeout.attribute("name") == "in") fade += fadeout.attribute("value").toInt();
                     }
                 } else if (effectId == "fade_to_black") {
                     needRepaint = true;
-                    if (m_effectList.hasEffect("", "fadeout") == -1) {
+                    if (m_effectList.hasEffect(QString(), "fadeout") == -1) {
                         if (e.attribute("name") == "out") fade -= e.attribute("value").toInt();
                         else if (e.attribute("name") == "in") fade += e.attribute("value").toInt();
                     } else {
-                        QDomElement fadeout = m_effectList.getEffectByTag("", "fadeout");
+                        QDomElement fadeout = m_effectList.getEffectByTag(QString(), "fadeout");
                         if (fadeout.attribute("name") == "out") fade -= fadeout.attribute("value").toInt();
                         else if (fadeout.attribute("name") == "in") fade += fadeout.attribute("value").toInt();
                     }
@@ -1293,7 +1284,7 @@ EffectsParameterList ClipItem::getEffectArgs(QDomElement effect) {
             parameters.addParam("factor", e.attribute("factor", "1"));
             parameters.addParam("starttag", e.attribute("starttag", "start"));
             parameters.addParam("endtag", e.attribute("endtag", "end"));
-        } else if (e.attribute("namedesc").contains(";")) {
+        } else if (e.attribute("namedesc").contains(';')) {
             QString format = e.attribute("format");
             QStringList separators = format.split("%d", QString::SkipEmptyParts);
             QStringList values = e.attribute("value").split(QRegExp("[,:;x]"));
@@ -1325,12 +1316,12 @@ void ClipItem::deleteEffect(QString index) {
         ix = m_effectList.at(i).attribute("kdenlive_ix");
         if (ix == index) {
             QString effectId = m_effectList.at(i).attribute("id");
-            if ((effectId == "fadein" && hasEffect("", "fade_from_black") == -1) ||
-                    (effectId == "fade_from_black" && hasEffect("", "fadein") == -1)) {
+            if ((effectId == "fadein" && hasEffect(QString(), "fade_from_black") == -1) ||
+                    (effectId == "fade_from_black" && hasEffect(QString(), "fadein") == -1)) {
                 m_startFade = 0;
                 needRepaint = true;
-            } else if ((effectId == "fadeout" && hasEffect("", "fade_to_black") == -1) ||
-                       (effectId == "fade_to_black" && hasEffect("", "fadeout") == -1)) {
+            } else if ((effectId == "fadeout" && hasEffect(QString(), "fade_to_black") == -1) ||
+                       (effectId == "fade_to_black" && hasEffect(QString(), "fadeout") == -1)) {
                 m_endFade = 0;
                 needRepaint = true;
             }
@@ -1352,7 +1343,7 @@ double ClipItem::speed() const {
 void ClipItem::setSpeed(const double speed) {
     m_speed = speed;
     if (m_speed == 1.0) m_clipName = baseClip()->name();
-    else m_clipName = baseClip()->name() + " - " + QString::number(speed * 100, 'f', 0) + "%";
+    else m_clipName = baseClip()->name() + " - " + QString::number(speed * 100, 'f', 0) + '%';
     //update();
 }
 
@@ -1393,7 +1384,7 @@ void ClipItem::dragLeaveEvent(QGraphicsSceneDragDropEvent *event) {
 }
 void ClipItem::addTransition(Transition* t) {
     m_transitionsList.append(t);
-    CustomTrackView *view = (CustomTrackView *) scene()->views()[0];
+    //CustomTrackView *view = (CustomTrackView *) scene()->views()[0];
     QDomDocument doc;
     QDomElement e = doc.documentElement();
     //if (view) view->slotAddTransition(this, t->toXML() , t->startPos(), track());