1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
From c4ffe88c9fafaed4b66a010a25b117427ba709f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=A9ven=20Car?= <meven@kde.org>
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 e8577e0663..b702f5b13b 100644
--- a/src/views/dolphinview.cpp
+++ b/src/views/dolphinview.cpp
@@ -44,6 +44,7 @@
#include <KIO/Paste>
#include <KIO/PasteJob>
#include <KIO/RenameFileDialog>
+#include <KJob>
#include <KJobWidgets>
#include <KLocalizedString>
#include <KMessageBox>
@@ -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)
--
GitLab
|