Commit 04f3889c authored by Jean-Baptiste Mardelle's avatar Jean-Baptiste Mardelle
Browse files

Fix wrong group moving when groups overlap

parent 470fc29b
......@@ -119,6 +119,7 @@ ClipItem::ClipItem(DocClipBase *clip, ItemInfo info, double fps, double speed, i
m_baseColor = QColor(141, 215, 166);
connect(m_clip, SIGNAL(gotAudioData()), this, SLOT(slotGotAudioData()));
}
m_paintColor = m_baseColor;
}
......@@ -789,23 +790,21 @@ void ClipItem::paint(QPainter *painter,
QWidget *)
{
QPalette palette = scene()->palette();
QColor paintColor;
QColor paintColor = m_paintColor;
QColor textColor;
QColor textBgColor;
QPen framePen;
if (parentItem()) paintColor = QColor(255, 248, 149);
else paintColor = m_baseColor;
if (isSelected() || (parentItem() && parentItem()->isSelected())) {
textColor = palette.highlightedText().color();
textBgColor = palette.highlight().color();
paintColor = paintColor.darker();
framePen.setColor(textBgColor);
paintColor.setRed(qMin(paintColor.red() * 2, 255));
}
else {
textColor = palette.text().color();
textBgColor = palette.window().color();
textBgColor.setAlpha(200);
framePen.setColor(paintColor.darker());
framePen.setColor(m_paintColor.darker());
}
const QRectF exposed = option->exposedRect;
const QTransform transformation = painter->worldTransform();
......@@ -820,7 +819,7 @@ void ClipItem::paint(QPainter *painter,
painter->setClipPath(p.intersected(q));
painter->setPen(Qt::NoPen);
painter->fillRect(mappedExposed, paintColor);
painter->setPen(paintColor.darker());
painter->setPen(m_paintColor.darker());
// draw thumbnails
if (KdenliveSettings::videothumbnails() && !isAudioOnly()) {
QRectF thumbRect;
......@@ -1386,8 +1385,10 @@ void ClipItem::resizeEnd(int posx, bool emitChange)
QVariant ClipItem::itemChange(GraphicsItemChange change, const QVariant &value)
{
if (change == QGraphicsItem::ItemSelectedChange) {
if (value.toBool()) setZValue(10);
else setZValue(2);
if (value.toBool())
setZValue(10);
else
setZValue(2);
}
if (change == ItemPositionChange && scene()) {
// calculate new position.
......@@ -1464,6 +1465,11 @@ QVariant ClipItem::itemChange(GraphicsItemChange change, const QVariant &value)
//kDebug()<<"// ITEM NEW POS: "<<newPos.x()<<", mapped: "<<mapToScene(newPos.x(), 0).x();
return newPos;
}
if (change == ItemParentChange) {
QGraphicsItem* parent = value.value<QGraphicsItem*>();
if (parent) m_paintColor = m_baseColor.lighter(135);
else m_paintColor = m_baseColor;
}
return QGraphicsItem::itemChange(change, value);
}
......@@ -1865,6 +1871,10 @@ void ClipItem::setAudioOnly(bool force)
} else if (m_clipType == AUDIO) m_baseColor = QColor(141, 215, 166);
else m_baseColor = QColor(141, 166, 215);
}
if (parentItem())
m_paintColor = m_baseColor.lighter(135);
else
m_paintColor = m_baseColor;
m_audioThumbCachePic.clear();
}
......
......@@ -216,6 +216,7 @@ private:
bool m_audioOnly;
bool m_videoOnly;
QColor m_baseColor;
QColor m_paintColor;
QPixmap m_startPix;
QPixmap m_endPix;
......
......@@ -799,7 +799,6 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event)
QGraphicsView::mousePressEvent(event);
return;
}
// if a guide and a clip were pressed, just select the guide
for (int i = 0; i < collisionList.count(); ++i) {
if (collisionList.at(i)->type() == GUIDEITEM) {
......@@ -1057,7 +1056,10 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event)
}*/
bool selected = !m_dragItem->isSelected();
m_dragItem->setZValue(99);
if (m_dragItem->parentItem()) m_dragItem->parentItem()->setZValue(99);
QGraphicsView::mousePressEvent(event);
if (dragGroup) {
dragGroup->setSelected(selected);
QList<QGraphicsItem *> children = dragGroup->childItems();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment