From c9c3531c0b6da07de8f90761a3d799ace62f8e89 Mon Sep 17 00:00:00 2001 From: Jin Liu Date: Sat, 17 Feb 2024 11:14:46 +0000 Subject: Improve DnD handling in read-only dirs 1. Places panel and tabbar update drag status in read-only dir 2. Don't create drop job in readonly directories --- src/dolphintabwidget.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/dolphintabwidget.cpp') diff --git a/src/dolphintabwidget.cpp b/src/dolphintabwidget.cpp index f274ffa2a..f80b94ea7 100644 --- a/src/dolphintabwidget.cpp +++ b/src/dolphintabwidget.cpp @@ -9,6 +9,7 @@ #include "dolphin_generalsettings.h" #include "dolphintabbar.h" #include "dolphinviewcontainer.h" +#include "views/draganddrophelper.h" #include #include @@ -33,6 +34,7 @@ DolphinTabWidget::DolphinTabWidget(DolphinNavigatorsWidgetAction *navigatorsWidg DolphinTabBar *tabBar = new DolphinTabBar(this); connect(tabBar, &DolphinTabBar::openNewActivatedTab, this, QOverload::of(&DolphinTabWidget::openNewActivatedTab)); + connect(tabBar, &DolphinTabBar::tabDragMoveEvent, this, &DolphinTabWidget::tabDragMoveEvent); connect(tabBar, &DolphinTabBar::tabDropEvent, this, &DolphinTabWidget::tabDropEvent); connect(tabBar, &DolphinTabBar::tabDetachRequested, this, &DolphinTabWidget::detachTab); @@ -388,6 +390,14 @@ void DolphinTabWidget::openNewActivatedTab(int index) openNewActivatedTab(tabPage->activeViewContainer()->url()); } +void DolphinTabWidget::tabDragMoveEvent(int index, QDragMoveEvent *event) +{ + if (index >= 0) { + DolphinView *view = tabPageAt(index)->activeViewContainer()->view(); + DragAndDropHelper::updateDropAction(event, view->url()); + } +} + void DolphinTabWidget::tabDropEvent(int index, QDropEvent *event) { if (index >= 0) { -- cgit v1.3