+ QString path;
+ KTemporaryFile tempFile;
+
+ if (fileName.isLocalFile()) {
+ path = fileName.path();
+ } else if (tempFile.open()) {
+ KIO::Job* getJob = KIO::file_copy(fileName,
+ tempFile.fileName(),
+ -1,
+ KIO::Overwrite | KIO::HideProgressInfo);
+ if (!KIO::NetAccess::synchronousRun(getJob, 0)) {
+ // The non-local file could not be downloaded
+ return false;
+ }
+ path = tempFile.fileName();
+ } else {
+ // No temporary file could be created for downloading non-local files
+ return false;
+ }
+
+ QFile file(path);