diff options
| author | Jin Liu <[email protected]> | 2024-02-29 23:13:47 +0000 |
|---|---|---|
| committer | Jin Liu <[email protected]> | 2024-02-29 23:13:47 +0000 |
| commit | dc149ec5e52f52c514cf362603d05ba8eea506b8 (patch) | |
| tree | 70442a1ab27fedf220daeca496dfb3c842379b93 /src/panels/places | |
| parent | 992272f8c5b80b0d96e9419cdbe14b6f3d2a22e4 (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.cpp | 4 | ||||
| -rw-r--r-- | src/panels/places/placespanel.h | 3 |
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 |
