예제 #1
0
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;
}