]> git.sesse.net Git - kdenlive/blobdiff - src/abstractgroupitem.cpp
Add "Favorites" category to rendering profiles for easier management
[kdenlive] / src / abstractgroupitem.cpp
index 788e015bdb9731ef0e515d3c31d87803240fdf38..d4e9210481b241386a17f504de906f9d4fa61c32 100644 (file)
@@ -54,6 +54,23 @@ int AbstractGroupItem::track() const
     return (int)(scenePos().y() / KdenliveSettings::trackheight());
 }
 
+void AbstractGroupItem::setItemLocked(bool locked)
+{
+    if (locked) {
+        setSelected(false);
+        setFlag(QGraphicsItem::ItemIsMovable, false);
+        setFlag(QGraphicsItem::ItemIsSelectable, false);
+    } else {
+        setFlag(QGraphicsItem::ItemIsMovable, true);
+        setFlag(QGraphicsItem::ItemIsSelectable, true);
+    }
+}
+
+bool AbstractGroupItem::isItemLocked() const
+{
+    return !(flags() & (QGraphicsItem::ItemIsSelectable));
+}
+
 CustomTrackScene* AbstractGroupItem::projectScene()
 {
     if (scene()) return static_cast <CustomTrackScene*>(scene());
@@ -130,6 +147,10 @@ void AbstractGroupItem::paint(QPainter *p, const QStyleOptionGraphicsItem *optio
 //virtual
 QVariant AbstractGroupItem::itemChange(GraphicsItemChange change, const QVariant &value)
 {
+    if (change == QGraphicsItem::ItemSelectedChange) {
+        if (value.toBool()) setZValue(10);
+        else setZValue(1);
+    }
     if (change == ItemPositionChange && scene() && parentItem() == 0) {
         // calculate new position.
         const int trackHeight = KdenliveSettings::trackheight();