Changeset View
Changeset View
Standalone View
Standalone View
importer/importer.cpp
Show All 25 Lines | |||||
26 | #include <QDebug> | 26 | #include <QDebug> | ||
27 | #include <QUrl> | 27 | #include <QUrl> | ||
28 | #include <QTemporaryDir> | 28 | #include <QTemporaryDir> | ||
29 | 29 | | |||
30 | // KDE | 30 | // KDE | ||
31 | #include <KFileItem> | 31 | #include <KFileItem> | ||
32 | #include <KIO/CopyJob> | 32 | #include <KIO/CopyJob> | ||
33 | #include <KIO/DeleteJob> | 33 | #include <KIO/DeleteJob> | ||
34 | #include <KIO/MkpathJob> | ||||
34 | #include <KIO/Job> | 35 | #include <KIO/Job> | ||
35 | #include <KIO/JobUiDelegate> | 36 | #include <KIO/JobUiDelegate> | ||
36 | #include <KJobWidgets> | 37 | #include <KJobWidgets> | ||
37 | #include <KLocalizedString> | 38 | #include <KLocalizedString> | ||
38 | 39 | | |||
39 | // stdc++ | 40 | // stdc++ | ||
40 | #include <memory> | 41 | #include <memory> | ||
41 | 42 | | |||
▲ Show 20 Lines • Show All 83 Lines • ▼ Show 20 Line(s) | 120 | if (mFileNameFormater.get()) { | |||
125 | // 'src' url. | 126 | // 'src' url. | ||
126 | QDateTime dateTime = TimeUtils::dateTimeForFileItem(item, TimeUtils::SkipCache); | 127 | QDateTime dateTime = TimeUtils::dateTimeForFileItem(item, TimeUtils::SkipCache); | ||
127 | fileName = mFileNameFormater->format(src, dateTime); | 128 | fileName = mFileNameFormater->format(src, dateTime); | ||
128 | } else { | 129 | } else { | ||
129 | fileName = src.fileName(); | 130 | fileName = src.fileName(); | ||
130 | } | 131 | } | ||
131 | dst.setPath(dst.path() + fileName); | 132 | dst.setPath(dst.path() + fileName); | ||
132 | 133 | | |||
133 | FileUtils::RenameResult result = FileUtils::rename(src, dst, mAuthWindow); | 134 | FileUtils::RenameResult result; | ||
135 | // Create additional subfolders if needed (e.g. when extra slashes in FileNameFormater) | ||||
136 | QUrl subFolder = dst.adjusted(QUrl::RemoveFilename); | ||||
137 | KIO::Job* job = KIO::mkpath(subFolder, QUrl(), KIO::HideProgressInfo); | ||||
138 | KJobWidgets::setWindow(job,mAuthWindow); | ||||
139 | if (!job->exec()) { // if subfolder creation fails | ||||
ngraham: We should probably show something to the user here, or else the operation will have silently… | |||||
140 | qWarning() << "Could not create subfolder:" << subFolder; | ||||
141 | result = FileUtils::RenameFailed; | ||||
142 | } else { // if subfolder creation succeeds | ||||
143 | result = FileUtils::rename(src, dst, mAuthWindow); | ||||
144 | } | ||||
145 | | ||||
134 | switch (result) { | 146 | switch (result) { | ||
135 | case FileUtils::RenamedOK: | 147 | case FileUtils::RenamedOK: | ||
136 | mImportedUrlList << mCurrentUrl; | 148 | mImportedUrlList << mCurrentUrl; | ||
137 | break; | 149 | break; | ||
138 | case FileUtils::RenamedUnderNewName: | 150 | case FileUtils::RenamedUnderNewName: | ||
139 | mRenamedCount++; | 151 | mRenamedCount++; | ||
140 | mImportedUrlList << mCurrentUrl; | 152 | mImportedUrlList << mCurrentUrl; | ||
141 | break; | 153 | break; | ||
▲ Show 20 Lines • Show All 106 Lines • Show Last 20 Lines |
We should probably show something to the user here, or else the operation will have silently failed and who knows what kind of mischief can happen!