Exemple #1
0
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()));
}