From 5a82f69ea8bd1fe5253479e8a3f971f00f6abc8f Mon Sep 17 00:00:00 2001 From: Debian/Kubuntu Qt/KDE Maintainers Date: Thu, 31 Mar 2016 15:38:43 +0200 Subject: [PATCH] report_error_removing_dirs =================================================================== Gbp-Pq: Name report_error_removing_dirs --- src/core/copyjob.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/core/copyjob.cpp b/src/core/copyjob.cpp index 8822ce4..146aa3a 100644 --- a/src/core/copyjob.cpp +++ b/src/core/copyjob.cpp @@ -239,6 +239,7 @@ public: , m_bOverwriteAllDirs(false) , m_bOverwriteWhenOlder(false) , m_conflictError(0) + , m_dirsFailedError(0) , m_reportTimer(nullptr) { } @@ -313,6 +314,8 @@ public: }; int m_conflictError; + int m_dirsFailedError; + QString m_dirsFailedErrorText; QTimer *m_reportTimer; @@ -2155,6 +2158,10 @@ void CopyJobPrivate::setNextDirAttribute() m_reportTimer->stop(); } + if (m_dirsFailedError) { + q->setError(m_dirsFailedError); + q->setErrorText(m_dirsFailedErrorText); + } q->emitResult(); } } @@ -2226,12 +2233,14 @@ void CopyJobPrivate::slotTotalSize(KJob *, qulonglong size) void CopyJobPrivate::slotResultDeletingDirs(KJob *job) { Q_Q(CopyJob); + const QUrl url = static_cast(job)->url(); if (job->error()) { - // Couldn't remove directory. Well, perhaps it's not empty - // because the user pressed Skip for a given file in it. - // Let's not display "Could not remove dir ..." for each of those dir ! + m_dirsFailedError = job->error(); + m_dirsFailedErrorText = job->errorText(); + // Remove the parents + skip(url, true); } else { - m_successSrcList.append(static_cast(job)->url()); + m_successSrcList.append(url); } q->removeSubjob(job); Q_ASSERT(!q->hasSubjobs()); -- 2.30.2