int FilterSortingArea::dragAnimation(QDropEvent *event) { int spacerIndex = ui->layout->indexOf(mEmptyWidget); for (int i = 0; i < ui->layout->count(); i++) { FilterWidget *filter = qobject_cast<FilterWidget *>(ui->layout->itemAt(i)->widget()); if (filter) { if (filter->pos().y() > event->pos().y()) { if (spacerIndex != i - 1) { ui->layout->insertWidget(i, mEmptyWidget); if (!mEmptyWidget->isVisible()) mEmptyWidget->setVisible(true); update(); } return filter->filterId(); } } } int index = ui->layout->indexOf(ui->outputs); if (spacerIndex != index - 1) { ui->layout->insertWidget(index, mEmptyWidget); if (!mEmptyWidget->isVisible()) mEmptyWidget->setVisible(true); update(); } return 0; }