]> git.sesse.net Git - kdenlive/blobdiff - src/customtrackview.cpp
const'ify when necessary
[kdenlive] / src / customtrackview.cpp
index 4d577af23af7c6e27551348e905865092824e18d..7cc622012bf50053a6491d8c30e8146aad223d24 100644 (file)
@@ -239,7 +239,7 @@ void CustomTrackView::setContextMenu(QMenu *timeline, QMenu *clip, QMenu *transi
     m_markerMenu = new QMenu(i18n("Go to marker..."), this);
     m_markerMenu->setEnabled(false);
     markermenu->addMenu(m_markerMenu);
-    connect(m_markerMenu, SIGNAL(triggered(QAction *)), this, SLOT(slotGoToMarker(QAction *)));
+    connect(m_markerMenu, SIGNAL(triggered(QAction*)), this, SLOT(slotGoToMarker(QAction*)));
     QList <QAction *> list = m_timelineContextClipMenu->actions();
     for (int i = 0; i < list.count(); i++) {
         if (list.at(i)->data().toString() == "paste_effects") m_pasteEffectsAction = list.at(i);
@@ -422,6 +422,11 @@ void CustomTrackView::slotAlignPlayheadToMousePos()
        seekCursorPos(mappedXPos);
 }
 
+int CustomTrackView::getMousePos() const
+{
+    return qMax((int)(mapToScene(mapFromGlobal(QCursor::pos())).x() + 0.5), 0);
+}
+
 // virtual
 void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
 {
@@ -511,7 +516,7 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
 
             // Make sure there is no collision
             QList<QGraphicsItem *> children = m_selectionGroup->childItems();
-            QPainterPath shape = m_selectionGroup->clipGroupShape(QPointF(snappedPos - m_selectionGroup->sceneBoundingRect().left(), 0));
+            QPainterPath shape = m_selectionGroup->clipGroupSpacerShape(QPointF(snappedPos - m_selectionGroup->sceneBoundingRect().left(), 0));
             QList<QGraphicsItem*> collidingItems = scene()->items(shape, Qt::IntersectsItemShape);
             collidingItems.removeAll(m_selectionGroup);
             for (int i = 0; i < children.count(); i++) {
@@ -537,7 +542,7 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
             }
             snappedPos += offset;
             // make sure we have no collision
-            shape = m_selectionGroup->clipGroupShape(QPointF(snappedPos - m_selectionGroup->sceneBoundingRect().left(), 0));
+            shape = m_selectionGroup->clipGroupSpacerShape(QPointF(snappedPos - m_selectionGroup->sceneBoundingRect().left(), 0));
             collidingItems = scene()->items(shape, Qt::IntersectsItemShape);
             collidingItems.removeAll(m_selectionGroup);
             for (int i = 0; i < children.count(); i++) {
@@ -1899,9 +1904,11 @@ void CustomTrackView::addEffect(int track, GenTime pos, QDomElement effect)
             return;
         }
         EffectsParameterList params = clip->addEffect(effect);
-        if (!m_document->renderer()->mltAddEffect(track, pos, params))
+        if (!m_document->renderer()->mltAddEffect(track, pos, params)) {
             emit displayMessage(i18n("Problem adding effect to clip"), ErrorMessage);
-       clip->setSelectedEffect(params.paramValue("kdenlive_ix").toInt());
+           clip->deleteEffect(params.paramValue("kdenlive_ix"));
+       }
+       else clip->setSelectedEffect(params.paramValue("kdenlive_ix").toInt());
         if (clip->isMainSelectedClip()) emit clipItemSelected(clip);
     } else emit displayMessage(i18n("Cannot find clip to add effect"), ErrorMessage);
 }
@@ -5218,18 +5225,18 @@ void CustomTrackView::prepareResizeClipEnd(AbstractClipItem* item, ItemInfo oldI
                 QDomElement xml = transition->toXML();
                 m_document->renderer()->mltUpdateTransition(xml.attribute("tag"), xml.attribute("tag"), xml.attribute("transition_btrack").toInt(), m_document->tracksCount() - xml.attribute("transition_atrack").toInt(), transition->startPos(), transition->endPos(), xml);
                 new EditTransitionCommand(this, transition->track(), transition->startPos(), old, xml, false, command);
-               ItemInfo info = transition->info();
-               QPoint p;
-               ClipItem *transitionClip = getClipItemAt(info.startPos, info.track);
-               if (transitionClip && transitionClip->baseClip()) {
-                   QString size = transitionClip->baseClip()->getProperty("frame_size");
-                   double factor = transitionClip->baseClip()->getProperty("aspect_ratio").toDouble();
-                   if (factor == 0) factor = 1.0;
-                   p.setX((int)(size.section('x', 0, 0).toInt() * factor + 0.5));
-                   p.setY(size.section('x', 1, 1).toInt());
-               }
-               emit transitionItemSelected(transition, getPreviousVideoTrack(info.track), p, true);
             }
+            ItemInfo info = transition->info();
+           QPoint p;
+           ClipItem *transitionClip = getClipItemAt(info.startPos, info.track);
+           if (transitionClip && transitionClip->baseClip()) {
+               QString size = transitionClip->baseClip()->getProperty("frame_size");
+               double factor = transitionClip->baseClip()->getProperty("aspect_ratio").toDouble();
+               if (factor == 0) factor = 1.0;
+               p.setX((int)(size.section('x', 0, 0).toInt() * factor + 0.5));
+               p.setY(size.section('x', 1, 1).toInt());
+           }
+           emit transitionItemSelected(transition, getPreviousVideoTrack(info.track), p, true);
             new MoveTransitionCommand(this, oldInfo, info, false, command);
         }
     }