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~4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=fd226f7eff6bf2b4852cd483195272b28836896e;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 8643efc..a44260f 100644 --- a/src/core/copyjob.cpp +++ b/src/core/copyjob.cpp @@ -227,6 +227,7 @@ public: , m_bOverwriteAllDirs(false) , m_bOverwriteWhenOlder(false) , m_conflictError(0) + , m_dirsFailedError(0) , m_reportTimer(nullptr) { } @@ -301,6 +302,8 @@ public: }; int m_conflictError; + int m_dirsFailedError; + QString m_dirsFailedErrorText; QTimer *m_reportTimer; @@ -2183,6 +2186,10 @@ void CopyJobPrivate::setNextDirAttribute() m_reportTimer->stop(); } + if (m_dirsFailedError) { + q->setError(m_dirsFailedError); + q->setErrorText(m_dirsFailedErrorText); + } q->emitResult(); } } @@ -2254,12 +2261,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());