File: upstream_c4ffe88c_DolphinView-display-errorMessage-when-copy-errors-occurs.patch

package info (click to toggle)
dolphin 4%3A25.04.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 31,252 kB
  • sloc: cpp: 46,852; xml: 878; ruby: 164; python: 84; sh: 11; makefile: 11
file content (81 lines) | stat: -rw-r--r-- 4,396 bytes parent folder | download
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