+
+bool CustomTrackView::insertPossible(AbstractGroupItem *group, const QPoint &pos) const {
+ QPolygonF path;
+ QList<QGraphicsItem *> children = group->childItems();
+ for (int i = 0; i < children.count(); i++) {
+ if (children.at(i)->type() == AVWIDGET) {
+ ClipItem *clip = static_cast <ClipItem *>(children.at(i));
+ ItemInfo info = clip->info();
+ kDebug() << " / / INSERT : " << pos.x();
+ QRectF shape = QRectF(clip->startPos().frames(m_document->fps()), clip->track() * m_tracksHeight + 1, clip->duration().frames(m_document->fps()) - 0.02, m_tracksHeight - 1);
+ kDebug() << " / / INSERT RECT: " << shape;
+ path = path.united(QPolygonF(shape));
+ }
+ }
+
+ QList<QGraphicsItem*> collindingItems = scene()->items(path, Qt::IntersectsItemShape);
+ if (collindingItems.isEmpty()) return true;
+ else {
+ for (int i = 0; i < collindingItems.count(); i++) {
+ QGraphicsItem *collision = collindingItems.at(i);
+ if (collision->type() == AVWIDGET) {
+ // Collision
+ kDebug() << "// COLLISIION DETECTED";
+ return false;
+ }
+ }
+ return true;
+ }
+
+}
+