void TableViewWidget::dropEvent(QDropEvent *event) { QTableView::dropEvent(event); if (event->isAccepted()) { m_dropRow = indexAt(event->pos()).row(); if (dropIndicatorPosition() == QAbstractItemView::BelowItem) { ++m_dropRow; } emit modified(); QTimer::singleShot(50, this, SLOT(updateDropSelection())); } }
void ItemViewWidget::dropEvent(QDropEvent *event) { if (m_viewMode == TreeViewMode) { QTreeView::dropEvent(event); return; } QDropEvent mutableEvent(QPointF((visualRect(m_model->index(0, 0)).x() + 1), event->posF().y()), Qt::MoveAction, event->mimeData(), event->mouseButtons(), event->keyboardModifiers(), event->type()); QTreeView::dropEvent(&mutableEvent); if (!mutableEvent.isAccepted()) { return; } event->accept(); m_dropRow = indexAt(event->pos()).row(); if (m_dragRow <= m_dropRow) { --m_dropRow; } if (dropIndicatorPosition() == QAbstractItemView::BelowItem) { ++m_dropRow; } m_isModified = true; emit modified(); QTimer::singleShot(50, this, SLOT(updateDropSelection())); }