Changeset View
Changeset View
Standalone View
Standalone View
importer/importer.cpp
Show First 20 Lines • Show All 56 Lines • ▼ Show 20 Line(s) | 53 | { | |||
---|---|---|---|---|---|
57 | QUrl mTempImportDirUrl; | 57 | QUrl mTempImportDirUrl; | ||
58 | QTemporaryDir* mTempImportDir; | 58 | QTemporaryDir* mTempImportDir; | ||
59 | 59 | | |||
60 | /* @defgroup reset Should be reset in start() | 60 | /* @defgroup reset Should be reset in start() | ||
61 | * @{ */ | 61 | * @{ */ | ||
62 | QList<QUrl> mUrlList; | 62 | QList<QUrl> mUrlList; | ||
63 | QList<QUrl> mImportedUrlList; | 63 | QList<QUrl> mImportedUrlList; | ||
64 | QList<QUrl> mSkippedUrlList; | 64 | QList<QUrl> mSkippedUrlList; | ||
65 | QList<QUrl> mFailedUrlList; | ||||
66 | QList<QUrl> mFailedSubFolderList; | ||||
65 | int mRenamedCount; | 67 | int mRenamedCount; | ||
66 | int mProgress; | 68 | int mProgress; | ||
67 | int mJobProgress; | 69 | int mJobProgress; | ||
68 | /* @} */ | 70 | /* @} */ | ||
69 | 71 | | |||
70 | QUrl mCurrentUrl; | 72 | QUrl mCurrentUrl; | ||
71 | 73 | | |||
72 | bool createImportDir(const QUrl& url) | 74 | bool createImportDir(const QUrl& url) | ||
▲ Show 20 Lines • Show All 60 Lines • ▼ Show 20 Line(s) | 119 | { | |||
133 | 135 | | |||
134 | FileUtils::RenameResult result; | 136 | FileUtils::RenameResult result; | ||
135 | // Create additional subfolders if needed (e.g. when extra slashes in FileNameFormater) | 137 | // Create additional subfolders if needed (e.g. when extra slashes in FileNameFormater) | ||
136 | QUrl subFolder = dst.adjusted(QUrl::RemoveFilename); | 138 | QUrl subFolder = dst.adjusted(QUrl::RemoveFilename); | ||
137 | KIO::Job* job = KIO::mkpath(subFolder, QUrl(), KIO::HideProgressInfo); | 139 | KIO::Job* job = KIO::mkpath(subFolder, QUrl(), KIO::HideProgressInfo); | ||
138 | KJobWidgets::setWindow(job,mAuthWindow); | 140 | KJobWidgets::setWindow(job,mAuthWindow); | ||
139 | if (!job->exec()) { // if subfolder creation fails | 141 | if (!job->exec()) { // if subfolder creation fails | ||
140 | qWarning() << "Could not create subfolder:" << subFolder; | 142 | qWarning() << "Could not create subfolder:" << subFolder; | ||
143 | if (!mFailedSubFolderList.contains(subFolder)) { | ||||
144 | mFailedSubFolderList << subFolder; | ||||
145 | } | ||||
141 | result = FileUtils::RenameFailed; | 146 | result = FileUtils::RenameFailed; | ||
142 | } else { // if subfolder creation succeeds | 147 | } else { // if subfolder creation succeeds | ||
143 | result = FileUtils::rename(src, dst, mAuthWindow); | 148 | result = FileUtils::rename(src, dst, mAuthWindow); | ||
144 | } | 149 | } | ||
145 | 150 | | |||
146 | switch (result) { | 151 | switch (result) { | ||
147 | case FileUtils::RenamedOK: | 152 | case FileUtils::RenamedOK: | ||
148 | mImportedUrlList << mCurrentUrl; | 153 | mImportedUrlList << mCurrentUrl; | ||
149 | break; | 154 | break; | ||
150 | case FileUtils::RenamedUnderNewName: | 155 | case FileUtils::RenamedUnderNewName: | ||
151 | mRenamedCount++; | 156 | mRenamedCount++; | ||
152 | mImportedUrlList << mCurrentUrl; | 157 | mImportedUrlList << mCurrentUrl; | ||
153 | break; | 158 | break; | ||
154 | case FileUtils::Skipped: | 159 | case FileUtils::Skipped: | ||
155 | mSkippedUrlList << mCurrentUrl; | 160 | mSkippedUrlList << mCurrentUrl; | ||
156 | break; | 161 | break; | ||
157 | case FileUtils::RenameFailed: | 162 | case FileUtils::RenameFailed: | ||
163 | mFailedUrlList << mCurrentUrl; | ||||
158 | qWarning() << "Rename failed for" << mCurrentUrl; | 164 | qWarning() << "Rename failed for" << mCurrentUrl; | ||
159 | } | 165 | } | ||
160 | q->advance(); | 166 | q->advance(); | ||
161 | importNext(); | 167 | importNext(); | ||
162 | } | 168 | } | ||
163 | }; | 169 | }; | ||
164 | 170 | | |||
165 | Importer::Importer(QWidget* parent) | 171 | Importer::Importer(QWidget* parent) | ||
Show All 18 Lines | 185 | { | |||
184 | } | 190 | } | ||
185 | } | 191 | } | ||
186 | 192 | | |||
187 | void Importer::start(const QList<QUrl>& list, const QUrl& destination) | 193 | void Importer::start(const QList<QUrl>& list, const QUrl& destination) | ||
188 | { | 194 | { | ||
189 | d->mUrlList = list; | 195 | d->mUrlList = list; | ||
190 | d->mImportedUrlList.clear(); | 196 | d->mImportedUrlList.clear(); | ||
191 | d->mSkippedUrlList.clear(); | 197 | d->mSkippedUrlList.clear(); | ||
198 | d->mFailedUrlList.clear(); | ||||
199 | d->mFailedSubFolderList.clear(); | ||||
192 | d->mRenamedCount = 0; | 200 | d->mRenamedCount = 0; | ||
193 | d->mProgress = 0; | 201 | d->mProgress = 0; | ||
194 | d->mJobProgress = 0; | 202 | d->mJobProgress = 0; | ||
195 | 203 | | |||
196 | emitProgressChanged(); | 204 | emitProgressChanged(); | ||
197 | emit maximumChanged(d->mUrlList.count() * 100); | 205 | emit maximumChanged(d->mUrlList.count() * 100); | ||
198 | 206 | | |||
199 | if (!d->createImportDir(destination)) { | 207 | if (!d->createImportDir(destination)) { | ||
200 | qWarning() << "Could not create import dir"; | 208 | qWarning() << "Could not create import dir"; | ||
201 | return; | 209 | return; | ||
202 | } | 210 | } | ||
203 | d->importNext(); | 211 | d->importNext(); | ||
204 | } | 212 | } | ||
205 | 213 | | |||
206 | void Importer::slotCopyDone(KJob* _job) | 214 | void Importer::slotCopyDone(KJob* _job) | ||
207 | { | 215 | { | ||
208 | KIO::CopyJob* job = static_cast<KIO::CopyJob*>(_job); | 216 | KIO::CopyJob* job = static_cast<KIO::CopyJob*>(_job); | ||
209 | QUrl url = job->destUrl(); | 217 | QUrl url = job->destUrl(); | ||
210 | if (job->error()) { | 218 | if (job->error()) { | ||
211 | qWarning() << "FIXME: What do we do with failed urls?"; | 219 | // Add document to failed url list and proceed with next one | ||
220 | d->mFailedUrlList << d->mCurrentUrl; | ||||
212 | advance(); | 221 | advance(); | ||
213 | d->importNext(); | 222 | d->importNext(); | ||
214 | return; | 223 | return; | ||
215 | } | 224 | } | ||
216 | 225 | | |||
217 | d->renameImportedUrl(url); | 226 | d->renameImportedUrl(url); | ||
218 | } | 227 | } | ||
219 | 228 | | |||
Show All 26 Lines | 254 | { | |||
246 | return d->mImportedUrlList; | 255 | return d->mImportedUrlList; | ||
247 | } | 256 | } | ||
248 | 257 | | |||
249 | QList<QUrl> Importer::skippedUrlList() const | 258 | QList<QUrl> Importer::skippedUrlList() const | ||
250 | { | 259 | { | ||
251 | return d->mSkippedUrlList; | 260 | return d->mSkippedUrlList; | ||
252 | } | 261 | } | ||
253 | 262 | | |||
263 | QList<QUrl> Importer::failedUrlList() const | ||||
264 | { | ||||
265 | return d->mFailedUrlList; | ||||
266 | } | ||||
267 | | ||||
268 | QList<QUrl> Importer::failedSubFolderList() const | ||||
269 | { | ||||
270 | return d->mFailedSubFolderList; | ||||
271 | } | ||||
272 | | ||||
254 | int Importer::renamedCount() const | 273 | int Importer::renamedCount() const | ||
255 | { | 274 | { | ||
256 | return d->mRenamedCount; | 275 | return d->mRenamedCount; | ||
257 | } | 276 | } | ||
258 | 277 | | |||
259 | } // namespace | 278 | } // namespace |