X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fbufferview.cpp;h=888086cb991dde45ecfc762937ac22eaab21fe5e;hp=7c4e6c5ef5a250c7b18b2dd78689460ec79daef0;hb=a29fd575e601e72620dd40b674d281d7b03b77f0;hpb=09fea00d02da49748b6a040752759eab16ccd392 diff --git a/src/uisupport/bufferview.cpp b/src/uisupport/bufferview.cpp index 7c4e6c5e..888086cb 100644 --- a/src/uisupport/bufferview.cpp +++ b/src/uisupport/bufferview.cpp @@ -239,27 +239,36 @@ void BufferView::keyPressEvent(QKeyEvent *event) { } void BufferView::dropEvent(QDropEvent *event) { - QList< QPair > bufferList = Client::networkModel()->mimeDataToBufferList(event->mimeData()); + QModelIndex index = indexAt(event->pos()); + + QRect indexRect = visualRect(index); + QPoint cursorPos = event->pos(); + + // check if we're really _on_ the item and not indicating a move to just above or below the item + const int margin = 2; + if(cursorPos.y() - indexRect.top() < margin + || indexRect.bottom() - cursorPos.y() < margin) + return QTreeView::dropEvent(event); + QList< QPair > bufferList = Client::networkModel()->mimeDataToBufferList(event->mimeData()); if(bufferList.count() != 1) return QTreeView::dropEvent(event); NetworkId networkId = bufferList[0].first; BufferId bufferId2 = bufferList[0].second; - QModelIndex index = indexAt(event->pos()); if(index.data(NetworkModel::ItemTypeRole) != NetworkModel::BufferItemType) - return; + return QTreeView::dropEvent(event); if(index.data(NetworkModel::BufferTypeRole) != BufferInfo::QueryBuffer) - return; + return QTreeView::dropEvent(event); if(index.data(NetworkModel::NetworkIdRole).value() != networkId) - return; + return QTreeView::dropEvent(event); BufferId bufferId1 = index.data(NetworkModel::BufferIdRole).value(); if(bufferId1 == bufferId2) - return; + return QTreeView::dropEvent(event); int res = QMessageBox::question(0, tr("Merge buffers permanently?"), tr("Do you want to merge the buffer \"%1\" permanently into buffer \"%2\"?\n This cannot be reversed!").arg(Client::networkModel()->bufferName(bufferId2)).arg(Client::networkModel()->bufferName(bufferId1)),