114 if (startPath.isEmpty()) {
115 startPath = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
119 dialog.setDefaultDir(startPath);
120 dialog.setCaption(i18nc(
"Resource Importer file dialog title",
"Import Resources and Resource Libraries"));
125 if (debug) qCritical() <<
"All filenames: " << filenames;
128 QMap<QString, QString> troublesomeFiles;
131 QMap<QString, QStringList> troublesomeFilesPerMimetype;
135 QMap<QString, QString> resourceTypePerFile;
138 QMap<ImportFailureReason, QStringList> failedFiles;
145 for (
int i = 0; i < filenames.count(); i++) {
148 if (debug) qCritical() <<
"We're loading a storage here: " << filenames[i];
153 if (debug) qCritical() <<
"checking for storage" << filenames[i] << QFileInfo(filenames[i]).fileName();
173 successfullyImportedFiles << filenames[i];
180 if (differentResourceTypes) {
181 if (debug) qCritical() <<
"We have a difficult situation here!" << filenames[i];
183 troublesomeFiles.insert(filenames[i], mimetype);
184 if (!troublesomeMimetypes.contains(mimetype)) {
185 troublesomeMimetypes.append(mimetype);
188 if (!troublesomeFilesPerMimetype.contains(mimetype)) {
189 troublesomeFilesPerMimetype.insert(mimetype,
QStringList());
191 troublesomeFilesPerMimetype[mimetype] = troublesomeFilesPerMimetype[mimetype] << filenames[i];
194 if (debug) qCritical() <<
"We're loading a" << mimetype <<
" here: " << filenames[i];
203 QMap<QString, QStringList> troublesomeResourceTypesPerMimetype;
204 for (
int i = 0; i < troublesomeMimetypes.size(); i++) {
208 if (troublesomeMimetypes.count() > 0) {
210 if (dlg.exec() == QDialog::Accepted) {
211 for (
int i = 0; i < troublesomeMimetypes.count(); i++) {
213 QString mimetype = troublesomeMimetypes[i];
214 if (troublesomeFilesPerMimetype.contains(mimetype)) {
215 for (
int j = 0; j < troublesomeFilesPerMimetype[mimetype].size(); j++) {
216 resourceTypePerFile.insert(troublesomeFilesPerMimetype[mimetype][j], resourceType);
221 for (
int i = 0; i < troublesomeMimetypes.count(); i++) {
222 for (
int j = 0; j < troublesomeFilesPerMimetype[troublesomeMimetypes[i]].size(); j++) {
223 failedFiles[
CancelledByTheUser] << troublesomeFilesPerMimetype[troublesomeMimetypes[i]][j];
232 if (debug) qCritical() <<
"Resource types for mimetype: ";
242 QStringList resourceFiles = resourceTypePerFile.keys();
243 for (
int i = 0; i < resourceFiles.count(); i++) {
244 QString resourceType = resourceTypePerFile[resourceFiles[i]];
245 if (debug) qCritical() <<
"Loading " << resourceFiles[i] <<
"as" << resourceType;
247 if (debug) qCritical() <<
"We do have a resource model for that!";
250 bool allowOverwrite =
false;
257 allowOverwrite =
true;
263 if (debug) qCritical() <<
"But the resource is null :( ";
266 if (debug) qCritical() <<
"The resource isn't null, great!";
267 successfullyImportedFiles << resourceFiles[i];
274 if (debug) qCritical() <<
"Failed files: " << failedFiles;
275 if (debug) qCritical() <<
"Successfully imported files: " << successfullyImportedFiles;
278 int failedFilesCount = 0;
279 for (
int i = 0; i < keys.size(); i++) {
280 failedFilesCount += failedFiles[keys[i]].size();
282 if (failedFilesCount > 0) {