From: Debian/Kubuntu Qt/KDE Maintainers Date: Thu, 31 Mar 2016 13:38:43 +0000 (+0200) Subject: report_error_removing_dirs X-Git-Tag: archive/raspbian/5.97.0-1+rpi1~1^2^2^2^2~16 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=1379848f8c76b904af359c746b372cd40c4c924c;p=kio.git report_error_removing_dirs =================================================================== Gbp-Pq: Name report_error_removing_dirs --- diff --git a/src/core/copyjob.cpp b/src/core/copyjob.cpp index 12bf409..7dbafee 100644 --- a/src/core/copyjob.cpp +++ b/src/core/copyjob.cpp @@ -151,6 +151,7 @@ public: , m_bOverwriteAllFiles(false) , m_bOverwriteAllDirs(false) , m_conflictError(0) + , m_dirsFailedError(0) , m_reportTimer(0) { } @@ -205,6 +206,8 @@ public: bool m_bOverwriteAllFiles; bool m_bOverwriteAllDirs; int m_conflictError; + int m_dirsFailedError; + QString m_dirsFailedErrorText; QTimer *m_reportTimer; @@ -1716,6 +1719,10 @@ void CopyJobPrivate::setNextDirAttribute() --m_processedFiles; // undo the "start at 1" hack slotReport(); // display final numbers, important if progress dialog stays up + if (m_dirsFailedError) { + q->setError(m_dirsFailedError); + q->setErrorText(m_dirsFailedErrorText); + } q->emitResult(); } } @@ -1785,12 +1792,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); assert(!q->hasSubjobs());