X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/6072005ddce81b456fdcf2e77d5156a1d86f3686..ce7852fb2352155e4373f9a41f0a01549985bd45:/src/dolphintabbar.cpp diff --git a/src/dolphintabbar.cpp b/src/dolphintabbar.cpp index 859865022..4c1d9e44a 100644 --- a/src/dolphintabbar.cpp +++ b/src/dolphintabbar.cpp @@ -36,7 +36,13 @@ void DolphinTabBar::dragEnterEvent(QDragEnterEvent* event) const int index = tabAt(event->pos()); if (mimeData->hasUrls()) { - event->acceptProposedAction(); + if (index >= 0) { + event->acceptProposedAction(); + } else { + event->setDropAction(Qt::IgnoreAction); + // Still need to accept it to receive dragMoveEvent + event->accept(); + } updateAutoActivationTimer(index); } @@ -56,6 +62,11 @@ void DolphinTabBar::dragMoveEvent(QDragMoveEvent* event) const int index = tabAt(event->pos()); if (mimeData->hasUrls()) { + if (index >= 0) { + event->acceptProposedAction(); + } else { + event->setDropAction(Qt::IgnoreAction); + } updateAutoActivationTimer(index); } @@ -71,7 +82,7 @@ void DolphinTabBar::dropEvent(QDropEvent* event) const int index = tabAt(event->pos()); if (index >= 0 && mimeData->hasUrls()) { - emit tabDropEvent(index, event); + Q_EMIT tabDropEvent(index, event); } QTabBar::dropEvent(event); @@ -96,7 +107,7 @@ void DolphinTabBar::mouseReleaseEvent(QMouseEvent *event) if (index >= 0 && index == m_tabToBeClosedOnMiddleMouseButtonRelease && event->button() == Qt::MiddleButton) { // Mouse middle click on a tab closes this tab. - emit tabCloseRequested(index); + Q_EMIT tabCloseRequested(index); return; } @@ -110,7 +121,7 @@ void DolphinTabBar::mouseDoubleClickEvent(QMouseEvent* event) if (index < 0) { // Double click on the empty tabbar area opens a new activated tab // with the url from the current tab. - emit openNewActivatedTab(currentIndex()); + Q_EMIT openNewActivatedTab(currentIndex()); return; } @@ -132,19 +143,19 @@ void DolphinTabBar::contextMenuEvent(QContextMenuEvent* event) QAction* selectedAction = menu.exec(event->globalPos()); if (selectedAction == newTabAction) { - emit openNewActivatedTab(index); + Q_EMIT openNewActivatedTab(index); } else if (selectedAction == detachTabAction) { - emit tabDetachRequested(index); + Q_EMIT tabDetachRequested(index); } else if (selectedAction == closeOtherTabsAction) { const int tabCount = count(); for (int i = 0; i < index; i++) { - emit tabCloseRequested(0); + Q_EMIT tabCloseRequested(0); } for (int i = index + 1; i < tabCount; i++) { - emit tabCloseRequested(1); + Q_EMIT tabCloseRequested(1); } } else if (selectedAction == closeTabAction) { - emit tabCloseRequested(index); + Q_EMIT tabCloseRequested(index); } return;