]> git.sesse.net Git - kdenlive/commitdiff
Improve manipulation of small items in timeline (Don't allow resize on very small...
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 10 May 2012 12:08:00 +0000 (14:08 +0200)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 10 May 2012 12:08:00 +0000 (14:08 +0200)
src/clipitem.cpp
src/customtrackview.cpp
src/renderwidget.cpp

index 7570202b77e49dd8f4692457e32add58dbd628bd..e164959cd589498d7b52a352b42e8580b2e2d039 100644 (file)
@@ -1002,11 +1002,11 @@ OPERATIONTYPE ClipItem::operationMode(QPointF pos)
 
     if (qAbs((int)(pos.x() - (rect.x() + m_startFade))) < maximumOffset  && qAbs((int)(pos.y() - rect.y())) < 6) {
         return FADEIN;
-    } else if (pos.x() - rect.x() < maximumOffset && (rect.bottom() - pos.y() > addtransitionOffset)) {
+    } else if ((pos.x() <= rect.x() + rect.width() / 2) && pos.x() - rect.x() < maximumOffset && (rect.bottom() - pos.y() > addtransitionOffset)) {
         return RESIZESTART;
     } else if (qAbs((int)(pos.x() - (rect.x() + rect.width() - m_endFade))) < maximumOffset && qAbs((int)(pos.y() - rect.y())) < 6) {
         return FADEOUT;
-    } else if ((rect.right() - pos.x() < maximumOffset) && (rect.bottom() - pos.y() > addtransitionOffset)) {
+    } else if ((pos.x() >= rect.x() + rect.width() / 2) && (rect.right() - pos.x() < maximumOffset) && (rect.bottom() - pos.y() > addtransitionOffset)) {
         return RESIZEEND;
     } else if ((pos.x() - rect.x() < 16 / scale) && (rect.bottom() - pos.y() <= addtransitionOffset)) {
         return TRANSITIONSTART;
index 1538e679e54fafb30799bde7f7ddf76c89429320..2f08b8e7381c77daae54ed82322b65ad4d79d2d9 100644 (file)
@@ -621,7 +621,11 @@ void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
             // all other modes break the selection, so the user probably wants to move it
             opMode = MOVE;
         } else {
-            opMode = clip->operationMode(mapToScene(event->pos()));
+           if (clip->rect().width() * transform().m11() < 15) {
+               // If the item is very small, only allow move
+               opMode = MOVE;
+           }
+            else opMode = clip->operationMode(mapToScene(event->pos()));
         }
 
         const double size = 5;
@@ -1010,7 +1014,11 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event)
         // all other modes break the selection, so the user probably wants to move it
         m_operationMode = MOVE;
     } else {
-        m_operationMode = m_dragItem->operationMode(mapToScene(event->pos()));
+       if (m_dragItem->rect().width() * transform().m11() < 15) {
+           // If the item is very small, only allow move
+           m_operationMode = MOVE;
+       }
+        else m_operationMode = m_dragItem->operationMode(mapToScene(event->pos()));
     }
     m_controlModifier = (event->modifiers() == Qt::ControlModifier);
 
index 23356a1b1b5c74ed4ea4625329499b2fb410d8ad..0169ec9f57c7186aef9c41297694e647ebe53e02 100644 (file)
@@ -1919,15 +1919,11 @@ void RenderWidget::parseScriptFiles()
         item->setData(1, Qt::UserRole, KUrl(target).path());
         item->setData(1, Qt::UserRole + 1, scriptpath.path());
     }
-//     bool activate = false;
     QTreeWidgetItem *script = m_view.scripts_list->topLevelItem(0);
     if (script) {
         m_view.scripts_list->setCurrentItem(script);
         script->setSelected(true);
-//         activate = true;
     }
-//    m_view.start_script->setEnabled(activate);
-//    m_view.delete_script->setEnabled(activate);
 }
 
 void RenderWidget::slotCheckScript()