- if (saveUrl.isEmpty()) return;
- if (KIO::NetAccess::download(KUrl(m_currentInfo.itemDownload), saveUrl, this)) {
- const KUrl filePath = KUrl(saveUrl);
+ KIO::UDSEntry entry;
+ KUrl srcUrl(m_currentInfo.itemDownload);
+ if (saveUrl.isEmpty() || !KIO::NetAccess::stat(srcUrl, entry, this)) return;
+ KIO::FileCopyJob * getJob = KIO::file_copy(srcUrl, KUrl(saveUrl), -1, KIO::Overwrite);
+
+ KFileItem info(entry, srcUrl);
+ getJob->setSourceSize(info.size());
+ connect(getJob, SIGNAL(result(KJob*)), this, SLOT(slotGotFile(KJob*)));
+ getJob->start();
+}
+
+void ResourceWidget::slotGotFile(KJob *job)
+{
+ if (job->error() != 0 ) return;
+ KIO::FileCopyJob* copyJob = static_cast<KIO::FileCopyJob*>( job );
+ const KUrl filePath = copyJob->destUrl();