, m_bOverwriteAllDirs(false)
, m_bOverwriteWhenOlder(false)
, m_conflictError(0)
+ , m_dirsFailedError(0)
, m_reportTimer(nullptr)
{
}
};
int m_conflictError;
+ int m_dirsFailedError;
+ QString m_dirsFailedErrorText;
QTimer *m_reportTimer;
m_reportTimer->stop();
}
+ if (m_dirsFailedError) {
+ q->setError(m_dirsFailedError);
+ q->setErrorText(m_dirsFailedErrorText);
+ }
q->emitResult();
}
}
void CopyJobPrivate::slotResultDeletingDirs(KJob *job)
{
Q_Q(CopyJob);
+ const QUrl url = static_cast<KIO::SimpleJob *>(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<KIO::SimpleJob *>(job)->url());
+ m_successSrcList.append(url);
}
q->removeSubjob(job);
Q_ASSERT(!q->hasSubjobs());