diff --git a/UI/scene-tree.cpp b/UI/scene-tree.cpp index 86fedaf39..2111d9ec6 100644 --- a/UI/scene-tree.cpp +++ b/UI/scene-tree.cpp @@ -6,6 +6,7 @@ #include #include #include +#include SceneTree::SceneTree(QWidget *parent_) : QListWidget(parent_) { @@ -67,8 +68,6 @@ bool SceneTree::eventFilter(QObject *obj, QEvent *event) void SceneTree::resizeEvent(QResizeEvent *event) { - QListWidget::resizeEvent(event); - if (gridMode) { int scrollWid = verticalScrollBar()->sizeHint().width(); int h = visualItemRect(item(count() - 1)).bottom(); @@ -96,6 +95,8 @@ void SceneTree::resizeEvent(QResizeEvent *event) item(i)->setData(Qt::SizeHintRole, QVariant()); } } + + QListWidget::resizeEvent(event); } void SceneTree::startDrag(Qt::DropActions supportedActions) @@ -105,10 +106,10 @@ void SceneTree::startDrag(Qt::DropActions supportedActions) void SceneTree::dropEvent(QDropEvent *event) { - QListWidget::dropEvent(event); - - if (event->source() != this) + if (event->source() != this) { + QListWidget::dropEvent(event); return; + } if (gridMode) { int scrollWid = verticalScrollBar()->sizeHint().width(); @@ -136,7 +137,9 @@ void SceneTree::dropEvent(QDropEvent *event) resize(size()); } - emit scenesReordered(); + QListWidget::dropEvent(event); + + QTimer::singleShot(100, [this]() { emit scenesReordered(); }); } void SceneTree::dragMoveEvent(QDragMoveEvent *event) @@ -181,15 +184,15 @@ void SceneTree::dragMoveEvent(QDragMoveEvent *event) QPoint position(xPos * g.width(), yPos * g.height()); setPositionForIndex(position, index); } - } else { - QListWidget::dragMoveEvent(event); } + + QListWidget::dragMoveEvent(event); } void SceneTree::rowsInserted(const QModelIndex &parent, int start, int end) { - QListWidget::rowsInserted(parent, start, end); - QResizeEvent event(size(), size()); SceneTree::resizeEvent(&event); + + QListWidget::rowsInserted(parent, start, end); }