Changeset View
Changeset View
Standalone View
Standalone View
src/widgets/pastejob.cpp
Show All 22 Lines | |||||
23 | #include "paste.h" | 23 | #include "paste.h" | ||
24 | 24 | | |||
25 | #include <QDebug> | 25 | #include <QDebug> | ||
26 | #include <QFileInfo> | 26 | #include <QFileInfo> | ||
27 | #include <QMimeData> | 27 | #include <QMimeData> | ||
28 | #include <QTimer> | 28 | #include <QTimer> | ||
29 | 29 | | |||
30 | #include <KIO/CopyJob> | 30 | #include <KIO/CopyJob> | ||
31 | #include <KIO/DeleteJob> | ||||
31 | #include <KIO/FileUndoManager> | 32 | #include <KIO/FileUndoManager> | ||
32 | #include <KJobWidgets> | 33 | #include <KJobWidgets> | ||
33 | #include <KLocalizedString> | 34 | #include <KLocalizedString> | ||
34 | #include <KUrlMimeData> | 35 | #include <KUrlMimeData> | ||
35 | 36 | | |||
36 | using namespace KIO; | 37 | using namespace KIO; | ||
37 | 38 | | |||
38 | extern KIO::Job *pasteMimeDataImpl(const QMimeData *mimeData, const QUrl &destUrl, | 39 | extern KIO::Job *pasteMimeDataImpl(const QMimeData *mimeData, const QUrl &destUrl, | ||
▲ Show 20 Lines • Show All 41 Lines • ▼ Show 20 Line(s) | 54 | { | |||
80 | } else { | 81 | } else { | ||
81 | q->setError(KIO::ERR_NO_CONTENT); | 82 | q->setError(KIO::ERR_NO_CONTENT); | ||
82 | q->emitResult(); | 83 | q->emitResult(); | ||
83 | } | 84 | } | ||
84 | } | 85 | } | ||
85 | 86 | | |||
86 | void PasteJob::slotResult(KJob *job) | 87 | void PasteJob::slotResult(KJob *job) | ||
87 | { | 88 | { | ||
88 | if (job->error()) { | 89 | int jobError = job->error(); | ||
90 | if (jobError) { | ||||
91 | if (jobError == KIO::ERR_USER_CANCELED || jobError == KIO::ERR_DISK_FULL) { | ||||
92 | // Must remove last file that was not finished moving/copying | ||||
93 | KIO::CopyJob *copyJob = qobject_cast<KIO::CopyJob *>(job); | ||||
94 | this->addSubjob(KIO::del(copyJob->currentDestUrl(), JobFlag::HideProgressInfo)); | ||||
95 | } | ||||
89 | KIO::Job::slotResult(job); // will set the error and emit result(this) | 96 | KIO::Job::slotResult(job); // will set the error and emit result(this) | ||
90 | return; | 97 | return; | ||
91 | } | 98 | } | ||
99 | | ||||
92 | KIO::SimpleJob *simpleJob = qobject_cast<KIO::SimpleJob*>(job); | 100 | KIO::SimpleJob *simpleJob = qobject_cast<KIO::SimpleJob*>(job); | ||
93 | if (simpleJob) { | 101 | if (simpleJob) { | ||
94 | emit itemCreated(simpleJob->url()); | 102 | emit itemCreated(simpleJob->url()); | ||
95 | } | 103 | } | ||
96 | 104 | | |||
97 | removeSubjob(job); | 105 | removeSubjob(job); | ||
98 | emitResult(); | 106 | emitResult(); | ||
99 | } | 107 | } | ||
100 | 108 | | |||
101 | PasteJob * KIO::paste(const QMimeData *mimeData, const QUrl &destDir, JobFlags flags) | 109 | PasteJob * KIO::paste(const QMimeData *mimeData, const QUrl &destDir, JobFlags flags) | ||
102 | { | 110 | { | ||
103 | return PasteJobPrivate::newJob(mimeData, destDir, flags, true /*clipboard*/); | 111 | return PasteJobPrivate::newJob(mimeData, destDir, flags, true /*clipboard*/); | ||
104 | } | 112 | } | ||
105 | 113 | | |||
106 | #include "moc_pastejob.cpp" | 114 | #include "moc_pastejob.cpp" |