┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dolphintabbar.cpp15
-rw-r--r--src/dolphintabwidget.cpp11
2 files changed, 13 insertions, 13 deletions
diff --git a/src/dolphintabbar.cpp b/src/dolphintabbar.cpp
index 4c1d9e44a..d3dc96393 100644
--- a/src/dolphintabbar.cpp
+++ b/src/dolphintabbar.cpp
@@ -36,13 +36,7 @@ void DolphinTabBar::dragEnterEvent(QDragEnterEvent* event)
const int index = tabAt(event->pos());
if (mimeData->hasUrls()) {
- if (index >= 0) {
- event->acceptProposedAction();
- } else {
- event->setDropAction(Qt::IgnoreAction);
- // Still need to accept it to receive dragMoveEvent
- event->accept();
- }
+ event->acceptProposedAction();
updateAutoActivationTimer(index);
}
@@ -62,11 +56,6 @@ 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);
}
@@ -81,7 +70,7 @@ void DolphinTabBar::dropEvent(QDropEvent* event)
const QMimeData* mimeData = event->mimeData();
const int index = tabAt(event->pos());
- if (index >= 0 && mimeData->hasUrls()) {
+ if (mimeData->hasUrls()) {
Q_EMIT tabDropEvent(index, event);
}
diff --git a/src/dolphintabwidget.cpp b/src/dolphintabwidget.cpp
index 7eae6f297..6caaf174f 100644
--- a/src/dolphintabwidget.cpp
+++ b/src/dolphintabwidget.cpp
@@ -393,6 +393,17 @@ void DolphinTabWidget::tabDropEvent(int index, QDropEvent* event)
if (index >= 0) {
DolphinView* view = tabPageAt(index)->activeViewContainer()->view();
view->dropUrls(view->url(), event, view);
+ } else {
+ const auto urls = event->mimeData()->urls();
+
+ for (const QUrl &url : urls) {
+ auto *job = KIO::statDetails(url, KIO::StatJob::SourceSide, KIO::StatDetail::StatBasic, KIO::JobFlag::HideProgressInfo);
+ connect(job, &KJob::result, this, [this, job]() {
+ if (!job->error() && job->statResult().isDir()) {
+ openNewTab(job->url(), QUrl(), NewTabPosition::AtEnd);
+ }
+ });
+ }
}
}