From c4ffe88c9fafaed4b66a010a25b117427ba709f6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?M=C3=A9ven=20Car?= Date: Sun, 29 Jun 2025 11:20:44 +0200 Subject: [PATCH] DolphinView: display errorMessage when copy errors occurs when copying multiple files. CopyJob skip those by default (CopyJobPrivate::slotSubError), and emits warning. Hook this to errorMessage. We would need to improve this as only the last error Message will be visible. BUG: 506282 --- src/views/dolphinview.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index e8577e066..b702f5b13 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -44,6 +44,7 @@ #include #include #include +#include #include #include #include @@ -846,7 +847,7 @@ void DolphinView::copySelectedItems(const KFileItemList &selection, const QUrl & connect(job, &KIO::CopyJob::result, this, &DolphinView::slotJobResult); connect(job, &KIO::CopyJob::copying, this, &DolphinView::slotItemCreatedFromJob); connect(job, &KIO::CopyJob::copyingDone, this, &DolphinView::slotItemCreatedFromJob); - connect(job, &KIO::CopyJob::warning, this, [](KJob *job, const QString &warning) { + connect(job, &KIO::CopyJob::warning, this, [this](KJob *job, const QString & /* warning */) { Q_EMIT errorMessage(job->errorString(), job->error()); }); KIO::FileUndoManager::self()->recordCopyJob(job); @@ -868,7 +869,7 @@ void DolphinView::moveSelectedItems(const KFileItemList &selection, const QUrl & connect(job, &KIO::CopyJob::result, this, &DolphinView::slotJobResult); connect(job, &KIO::CopyJob::moving, this, &DolphinView::slotItemCreatedFromJob); connect(job, &KIO::CopyJob::copyingDone, this, &DolphinView::slotItemCreatedFromJob); - connect(job, &KIO::CopyJob::warning, this, [](KJob *job, const QString &warning) { + connect(job, &KIO::CopyJob::warning, this, [this](KJob *job, const QString & /*warning */) { Q_EMIT errorMessage(job->errorString(), job->error()); }); KIO::FileUndoManager::self()->recordCopyJob(job); @@ -932,6 +933,9 @@ void DolphinView::duplicateSelectedItems() connect(job, &KIO::CopyJob::result, this, &DolphinView::slotJobResult); connect(job, &KIO::CopyJob::copyingDone, this, &DolphinView::slotItemCreatedFromJob); connect(job, &KIO::CopyJob::copyingLinkDone, this, &DolphinView::slotItemLinkCreatedFromJob); + connect(job, &KIO::CopyJob::warning, this, [this](KJob *job, const QString & /*warning*/) { + Q_EMIT errorMessage(job->errorString(), job->error()); + }); KIO::FileUndoManager::self()->recordCopyJob(job); } } @@ -1407,6 +1411,9 @@ void DolphinView::dropUrls(const QUrl &destUrl, QDropEvent *dropEvent, QWidget * connect(job, &KIO::DropJob::copyJobStarted, this, [this](const KIO::CopyJob *copyJob) { connect(copyJob, &KIO::CopyJob::copying, this, &DolphinView::slotItemCreatedFromJob); connect(copyJob, &KIO::CopyJob::moving, this, &DolphinView::slotItemCreatedFromJob); + connect(copyJob, &KIO::CopyJob::warning, this, [this](KJob *job, const QString & /*warning*/) { + Q_EMIT errorMessage(job->errorString(), job->error()); + }); connect(copyJob, &KIO::CopyJob::linking, this, [this](KIO::Job *job, const QString &src, const QUrl &dest) { Q_UNUSED(job) Q_UNUSED(src) @@ -2276,6 +2283,9 @@ void DolphinView::pasteToUrl(const QUrl &url) connect(job, &KIO::PasteJob::copyJobStarted, this, [this](const KIO::CopyJob *copyJob) { connect(copyJob, &KIO::CopyJob::copying, this, &DolphinView::slotItemCreatedFromJob); connect(copyJob, &KIO::CopyJob::moving, this, &DolphinView::slotItemCreatedFromJob); + connect(copyJob, &KIO::CopyJob::warning, this, [this](KJob *job, const QString & /*warning*/) { + Q_EMIT errorMessage(job->errorString(), job->error()); + }); connect(copyJob, &KIO::CopyJob::linking, this, [this](KIO::Job *job, const QString &src, const QUrl &dest) { Q_UNUSED(job) Q_UNUSED(src) -- 2.47.3