┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels/places
diff options
context:
space:
mode:
authorJin Liu <[email protected]>2024-02-29 23:13:47 +0000
committerJin Liu <[email protected]>2024-02-29 23:13:47 +0000
commitdc149ec5e52f52c514cf362603d05ba8eea506b8 (patch)
tree70442a1ab27fedf220daeca496dfb3c842379b93 /src/panels/places
parent992272f8c5b80b0d96e9419cdbe14b6f3d2a22e4 (diff)
DragAndDropHelper::updateDropAction: use StatJob for remote URLs
When dragging onto tabs/Places from a remote URL, we don't process the QDropEvent immediately, but start a StatJob and process the event when it finishes. Also, the result of the StatJob is cached for 30 seconds, to avoid starting duplicate jobs.
Diffstat (limited to 'src/panels/places')
-rw-r--r--src/panels/places/placespanel.cpp4
-rw-r--r--src/panels/places/placespanel.h3
2 files changed, 5 insertions, 2 deletions
diff --git a/src/panels/places/placespanel.cpp b/src/panels/places/placespanel.cpp
index ba3451bd5..eaf2642eb 100644
--- a/src/panels/places/placespanel.cpp
+++ b/src/panels/places/placespanel.cpp
@@ -15,7 +15,6 @@
#include "dolphin_placespanelsettings.h"
#include "dolphinplacesmodelsingleton.h"
#include "settings/dolphinsettingsdialog.h"
-#include "views/draganddrophelper.h"
#include <KFilePlacesModel>
#include <KIO/DropJob>
@@ -32,6 +31,7 @@
PlacesPanel::PlacesPanel(QWidget *parent)
: KFilePlacesView(parent)
+ , m_dragAndDropHelper(this)
{
setDropOnPlaceEnabled(true);
connect(this, &PlacesPanel::urlsDropped, this, &PlacesPanel::slotUrlsDropped);
@@ -161,7 +161,7 @@ void PlacesPanel::dragMoveEvent(QDragMoveEvent *event)
if (!url.isValid() || !KProtocolManager::supportsWriting(url)) {
event->setDropAction(Qt::IgnoreAction);
} else {
- DragAndDropHelper::updateDropAction(event, url);
+ m_dragAndDropHelper.updateDropAction(event, url);
}
}
}
diff --git a/src/panels/places/placespanel.h b/src/panels/places/placespanel.h
index cbd5fc224..d21e7d64e 100644
--- a/src/panels/places/placespanel.h
+++ b/src/panels/places/placespanel.h
@@ -10,6 +10,7 @@
#define PLACESPANEL_H
#include "panels/panel.h"
+#include "views/draganddrophelper.h"
#include <KFilePlacesView>
#include <QUrl>
@@ -78,6 +79,8 @@ private:
QAction *m_configureTrashAction;
QAction *m_openInSplitView;
QAction *m_lockPanelsAction;
+
+ DragAndDropHelper m_dragAndDropHelper;
};
#endif // PLACESPANEL_H