]> git.sesse.net Git - kdenlive/commitdiff
Get rid of small arrows on clips that indicated a "transition add" (it generated...
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 18 Jun 2009 21:28:44 +0000 (21:28 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 18 Jun 2009 21:28:44 +0000 (21:28 +0000)
svn path=/trunk/kdenlive/; revision=3583

src/abstractgroupitem.cpp
src/clipitem.cpp
src/clipitem.h
src/customtrackview.cpp
src/transition.cpp

index 5ca822afebd5981fd79bb6dfe42d1bc3e19b5a19..b33ec93b8102b973343123b4d5d029dbdcf91dca 100644 (file)
@@ -36,7 +36,7 @@ AbstractGroupItem::AbstractGroupItem(double /* fps */) :
         QObject(),
         QGraphicsItemGroup()
 {
-    setZValue(2);
+    setZValue(1);
     setFlags(QGraphicsItem::ItemClipsToShape | QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
     setAcceptDrops(true);
 }
index 7eb3dca543f97b3a721900e9a9752dd9ff751c28..cb8f0e31c40c09c77dbc6b97bafc648d30fa0ab0 100644 (file)
@@ -53,11 +53,11 @@ ClipItem::ClipItem(DocClipBase *clip, ItemInfo info, double fps, double speed, b
         m_timeLine(0),
         m_startThumbRequested(false),
         m_endThumbRequested(false),
-        m_hover(false),
+        //m_hover(false),
         m_speed(speed),
         m_framePixelWidth(0)
 {
-    setZValue(1);
+    setZValue(2);
     setRect(0, 0, (info.endPos - info.startPos).frames(fps) - 0.02, (double)(KdenliveSettings::trackheight() - 2));
     setPos(info.startPos.frames(fps), (double)(info.track * KdenliveSettings::trackheight()) + 1);
 
@@ -77,7 +77,7 @@ ClipItem::ClipItem(DocClipBase *clip, ItemInfo info, double fps, double speed, b
     m_audioThumbReady = clip->audioThumbCreated();
 
     setFlags(QGraphicsItem::ItemClipsToShape | QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
-    setAcceptsHoverEvents(true);
+    //setAcceptsHoverEvents(true);
     connect(this , SIGNAL(prepareAudioThumb(double, int, int, int)) , this, SLOT(slotPrepareAudioThumb(double, int, int, int)));
 
     if (m_clipType == VIDEO || m_clipType == AV || m_clipType == SLIDESHOW || m_clipType == PLAYLIST) {
@@ -828,12 +828,12 @@ void ClipItem::paint(QPainter *painter,
 
 
     // draw transition handles on hover
-    if (m_hover && itemWidth * scale > 40) {
+    /*if (m_hover && itemWidth * scale > 40) {
         QPointF p1 = painter->matrix().map(QPointF(0, itemHeight / 2)) + QPointF(10, 0);
         painter->drawPixmap(p1, projectScene()->m_transitionPixmap);
         p1 = painter->matrix().map(QPointF(itemWidth, itemHeight / 2)) - QPointF(22, 0);
         painter->drawPixmap(p1, projectScene()->m_transitionPixmap);
-    }
+    }*/
 
     // draw effect or transition keyframes
     if (itemWidth > 20) drawKeyFrames(painter, exposed);
@@ -879,25 +879,28 @@ OPERATIONTYPE ClipItem::operationMode(QPointF pos)
     QRectF rect = sceneBoundingRect();
     const double scale = projectScene()->scale().x();
     double maximumOffset = 6 / scale;
+    int addtransitionOffset = 10;
+    // Don't allow add transition if track height is very small
+    if (rect.height() < 30) addtransitionOffset = 0;
 
     if (qAbs((int)(pos.x() - (rect.x() + m_startFade))) < maximumOffset  && qAbs((int)(pos.y() - rect.y())) < 6) {
         if (m_startFade == 0) setToolTip(i18n("Add audio fade"));
         else setToolTip(i18n("Audio fade duration: %1s", GenTime(m_startFade, m_fps).seconds()));
         return FADEIN;
-    } else if (pos.x() - rect.x() < maximumOffset) {
+    } else if (pos.x() - rect.x() < maximumOffset && (rect.bottom() - pos.y() > addtransitionOffset)) {
         setToolTip(i18n("Crop from start: %1s", cropStart().seconds()));
         return RESIZESTART;
     } else if (qAbs((int)(pos.x() - (rect.x() + rect.width() - m_endFade))) < maximumOffset && qAbs((int)(pos.y() - rect.y())) < 6) {
         if (m_endFade == 0) setToolTip(i18n("Add audio fade"));
         else setToolTip(i18n("Audio fade duration: %1s", GenTime(m_endFade, m_fps).seconds()));
         return FADEOUT;
-    } else if (qAbs((int)(pos.x() - (rect.x() + rect.width()))) < maximumOffset) {
+    } else if ((rect.right() - pos.x() < maximumOffset) && (rect.bottom() - pos.y() > addtransitionOffset)) {
         setToolTip(i18n("Clip duration: %1s", duration().seconds()));
         return RESIZEEND;
-    } else if (qAbs((int)(pos.x() - (rect.x() + 16 / scale))) < maximumOffset && qAbs((int)(pos.y() - (rect.y() + rect.height() / 2 + 9))) < 6) {
+    } else if ((pos.x() - rect.x() < 16 / scale) && (rect.bottom() - pos.y() <= addtransitionOffset)) {
         setToolTip(i18n("Add transition"));
         return TRANSITIONSTART;
-    } else if (qAbs((int)(pos.x() - (rect.x() + rect.width() - 21 / scale))) < maximumOffset && qAbs((int)(pos.y() - (rect.y() + rect.height() / 2 + 9))) < 6) {
+    } else if ((rect.right() - pos.x() < 16 / scale) && (rect.bottom() - pos.y() <= addtransitionOffset)) {
         setToolTip(i18n("Add transition"));
         return TRANSITIONEND;
     }
@@ -1074,10 +1077,12 @@ void ClipItem::mouseReleaseEvent(QGraphicsSceneMouseEvent * event)
     QGraphicsRectItem::mouseReleaseEvent(event);
 }
 
+/*
 //virtual
-void ClipItem::hoverEnterEvent(QGraphicsSceneHoverEvent */*e*/)
+void ClipItem::hoverEnterEvent(QGraphicsSceneHoverEvent *e)
 {
     //if (e->pos().x() < 20) m_hover = true;
+    return;
     if (isItemLocked()) return;
     m_hover = true;
     QRectF r = boundingRect();
@@ -1100,6 +1105,7 @@ void ClipItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *)
     update(r.x(), r.y() + height, width, height);
     update(r.right() - width, r.y() + height, width, height);
 }
+*/
 
 void ClipItem::resizeStart(int posx, double /*speed*/)
 {
index ba485b55ce68c28e9d9ffa80adc587be22df7029..b3b36281f43e76965ef5b3ac9926f55548e51f77 100644 (file)
@@ -117,8 +117,8 @@ protected:
     virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
     virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *event);
     virtual void dropEvent(QGraphicsSceneDragDropEvent *event);
-    virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *);
-    virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *);
+    //virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *);
+    //virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *);
     virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value);
 
 private:
@@ -143,7 +143,7 @@ private:
     QTimeLine *m_timeLine;
     bool m_startThumbRequested;
     bool m_endThumbRequested;
-    bool m_hover;
+    //bool m_hover;
     double m_speed;
 
     EffectsList m_effectList;
index 0a88b2a97ac69ffc9ba3b2d1e020224a923c9ccc..a04365ea1d29fc425268d7450ca5bd9e90ccf6c4 100644 (file)
@@ -405,7 +405,7 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
             return;
         }
         opMode = clip->operationMode(mapToScene(event->pos()));
-        double size = 5;
+        const double size = 5;
         if (opMode == m_moveOpMode) {
             QGraphicsView::mouseMoveEvent(event);
             return;
@@ -426,26 +426,22 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
             if (m_visualTip == NULL) {
                 QRectF rect = clip->sceneBoundingRect();
                 QPolygon polygon;
-                polygon << QPoint(0, rect.height() / 2 - size * 2);
-                polygon << QPoint(size * 2, (int)(rect.height() / 2));
-                polygon << QPoint(0, (int)(rect.height() / 2 + size * 2));
-                polygon << QPoint(0, (int)(rect.height() / 2 - size * 2));
+                polygon << QPoint(0, - size * 2);
+                polygon << QPoint(size * 2, 0);
+                polygon << QPoint(0, size * 2);
+                polygon << QPoint(0, - size * 2);
 
                 m_visualTip = new QGraphicsPolygonItem(polygon);
                 ((QGraphicsPolygonItem*) m_visualTip)->setBrush(m_tipColor);
                 ((QGraphicsPolygonItem*) m_visualTip)->setPen(m_tipPen);
-                m_visualTip->setPos(rect.x(), rect.y());
+                m_visualTip->setPos(rect.x(), rect.y() + rect.height() / 2);
                 m_visualTip->setFlags(QGraphicsItem::ItemIgnoresTransformations);
                 m_visualTip->setZValue(100);
                 m_animation = new QGraphicsItemAnimation;
                 m_animation->setItem(m_visualTip);
                 m_animation->setTimeLine(m_animationTimer);
-                double scale = 2.0;
-                m_animation->setScaleAt(.5, scale, 1);
-                //m_animation->setPosAt(.5, QPointF(rect.x() - rect.x() * scale, 0));
-                scale = 1.0;
-                m_animation->setScaleAt(1, scale, 1);
-                //m_animation->setPosAt(1, QPointF(rect.x() - rect.x() * scale, 0));
+                m_animation->setScaleAt(.5, 2, 1);
+                m_animation->setScaleAt(1, 1, 1);
                 scene()->addItem(m_visualTip);
                 m_animationTimer->start();
             }
@@ -454,24 +450,22 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
             if (m_visualTip == NULL) {
                 QRectF rect = clip->sceneBoundingRect();
                 QPolygon polygon;
-                polygon << QPoint(0, (int)(rect.height() / 2 - size * 2));
-                polygon << QPoint(- size * 2, (int)(rect.height() / 2));
-                polygon << QPoint(0, (int)(rect.height() / 2 + size * 2));
-                polygon << QPoint(0, (int)(rect.height() / 2 - size * 2));
+                polygon << QPoint(0, - size * 2);
+                polygon << QPoint(- size * 2, 0);
+                polygon << QPoint(0, size * 2);
+                polygon << QPoint(0, - size * 2);
 
                 m_visualTip = new QGraphicsPolygonItem(polygon);
                 ((QGraphicsPolygonItem*) m_visualTip)->setBrush(m_tipColor);
                 ((QGraphicsPolygonItem*) m_visualTip)->setPen(m_tipPen);
                 m_visualTip->setFlags(QGraphicsItem::ItemIgnoresTransformations);
-                m_visualTip->setPos(rect.right(), rect.y());
+                m_visualTip->setPos(rect.right(), rect.y() + rect.height() / 2);
                 m_visualTip->setZValue(100);
                 m_animation = new QGraphicsItemAnimation;
                 m_animation->setItem(m_visualTip);
                 m_animation->setTimeLine(m_animationTimer);
-                double scale = 2.0;
-                m_animation->setScaleAt(.5, scale, 1);
-                scale = 1.0;
-                m_animation->setScaleAt(1, scale, 1);
+                m_animation->setScaleAt(.5, 2, 1);
+                m_animation->setScaleAt(1, 1, 1);
                 scene()->addItem(m_visualTip);
                 m_animationTimer->start();
             }
@@ -488,10 +482,8 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
                 m_animation = new QGraphicsItemAnimation;
                 m_animation->setItem(m_visualTip);
                 m_animation->setTimeLine(m_animationTimer);
-                double scale = 2.0;
-                m_animation->setScaleAt(.5, scale, scale);
-                scale = 1.0;
-                m_animation->setScaleAt(1, scale, scale);
+                m_animation->setScaleAt(.5, 2, 2);
+                m_animation->setScaleAt(1, 1, 1);
                 scene()->addItem(m_visualTip);
                 m_animationTimer->start();
             }
@@ -509,51 +501,59 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
                 m_animation = new QGraphicsItemAnimation;
                 m_animation->setItem(m_visualTip);
                 m_animation->setTimeLine(m_animationTimer);
-                double scale = 2.0;
-                m_animation->setScaleAt(.5, scale, scale);
-                scale = 1.0;
-                m_animation->setScaleAt(1, scale, scale);
+                m_animation->setScaleAt(.5, 2, 2);
+                m_animation->setScaleAt(1, 1, 1);
                 scene()->addItem(m_visualTip);
                 m_animationTimer->start();
             }
             setCursor(Qt::PointingHandCursor);
         } else if (opMode == TRANSITIONSTART) {
-            /*if (m_visualTip == NULL) {
+            if (m_visualTip == NULL) {
                 QRectF rect = clip->sceneBoundingRect();
-                m_visualTip = new QGraphicsEllipseItem(-5, -5 , 10, 10);
-                ((QGraphicsEllipseItem*) m_visualTip)->setBrush(m_tipColor);
-                ((QGraphicsEllipseItem*) m_visualTip)->setPen(m_tipPen);
+                QPolygon polygon;
+                polygon << QPoint(0, - size * 2);
+                polygon << QPoint(size * 2, 0);
+                polygon << QPoint(0, 0);
+                polygon << QPoint(0, - size * 2);
+
+                m_visualTip = new QGraphicsPolygonItem(polygon);
+                ((QGraphicsPolygonItem*) m_visualTip)->setBrush(m_tipColor);
+                ((QGraphicsPolygonItem*) m_visualTip)->setPen(m_tipPen);
+                m_visualTip->setPos(rect.x(), rect.bottom());
+                m_visualTip->setFlags(QGraphicsItem::ItemIgnoresTransformations);
                 m_visualTip->setZValue(100);
                 m_animation = new QGraphicsItemAnimation;
                 m_animation->setItem(m_visualTip);
                 m_animation->setTimeLine(m_animationTimer);
-                m_visualTip->setPos(rect.x() + 10, rect.y() + rect.height() / 2 + 12);
-                double scale = 2.0;
-                m_animation->setScaleAt(.5, scale, scale);
-                scale = 1.0;
-                m_animation->setScaleAt(1, scale, scale);
+                m_animation->setScaleAt(.5, 2, 2);
+                m_animation->setScaleAt(1, 1, 1);
                 scene()->addItem(m_visualTip);
                 m_animationTimer->start();
-            }*/
+            }
             setCursor(Qt::PointingHandCursor);
         } else if (opMode == TRANSITIONEND) {
-            /*if (m_visualTip == NULL) {
+            if (m_visualTip == NULL) {
                 QRectF rect = clip->sceneBoundingRect();
-                m_visualTip = new QGraphicsEllipseItem(-5, -5 , 10, 10);
-                ((QGraphicsEllipseItem*) m_visualTip)->setBrush(m_tipColor);
-                ((QGraphicsEllipseItem*) m_visualTip)->setPen(m_tipPen);
+                QPolygon polygon;
+                polygon << QPoint(0, - size * 2);
+                polygon << QPoint(- size * 2, 0);
+                polygon << QPoint(0, 0);
+                polygon << QPoint(0, - size * 2);
+
+                m_visualTip = new QGraphicsPolygonItem(polygon);
+                ((QGraphicsPolygonItem*) m_visualTip)->setBrush(m_tipColor);
+                ((QGraphicsPolygonItem*) m_visualTip)->setPen(m_tipPen);
+                m_visualTip->setPos(rect.right(), rect.bottom());
+                m_visualTip->setFlags(QGraphicsItem::ItemIgnoresTransformations);
                 m_visualTip->setZValue(100);
                 m_animation = new QGraphicsItemAnimation;
                 m_animation->setItem(m_visualTip);
                 m_animation->setTimeLine(m_animationTimer);
-                m_visualTip->setPos(rect.x() + rect.width() - 10 , rect.y() + rect.height() / 2 + 12);
-                double scale = 2.0;
-                m_animation->setScaleAt(.5, scale, scale);
-                scale = 1.0;
-                m_animation->setScaleAt(1, scale, scale);
+                m_animation->setScaleAt(.5, 2, 2);
+                m_animation->setScaleAt(1, 1, 1);
                 scene()->addItem(m_visualTip);
                 m_animationTimer->start();
-            }*/
+            }
             setCursor(Qt::PointingHandCursor);
         } else if (opMode == KEYFRAME) {
             setCursor(Qt::PointingHandCursor);
index cd3a4d7818c802ee84535c59d7f2d1aa8b6be077..3312773f30dba27205f0ab35b4bbc154d823e4f6 100644 (file)
@@ -38,7 +38,7 @@ Transition::Transition(const ItemInfo info, int transitiontrack, double fps, QDo
         m_secondClip(NULL),
         m_transitionTrack(transitiontrack)
 {
-    setZValue(2);
+    setZValue(3);
     setRect(0, 0, (info.endPos - info.startPos).frames(fps) - 0.02, (qreal)(KdenliveSettings::trackheight() / 3 * 2 - 1));
     setPos(info.startPos.frames(fps), (qreal)(info.track * KdenliveSettings::trackheight() + KdenliveSettings::trackheight() / 3 * 2));