void IpodCopyTracksJob::slotStartOrTranscodeCopyJob( const KUrl &sourceUrl, const KUrl &destUrl ) { KJob *job = 0; if( m_transcodingConfig.isJustCopy() ) { if( m_goingToRemoveSources && m_coll && sourceUrl.toLocalFile().startsWith( m_coll.data()->mountPoint() ) ) { // special case for "add orphaned tracks" to either save space and significantly // speed-up the process: debug() << "Moving from" << sourceUrl << "to" << destUrl; job = KIO::file_move( sourceUrl, destUrl, -1, KIO::HideProgressInfo | KIO::Overwrite ); } else { debug() << "Copying from" << sourceUrl << "to" << destUrl; job = KIO::file_copy( sourceUrl, destUrl, -1, KIO::HideProgressInfo | KIO::Overwrite ); } } else { debug() << "Transcoding from" << sourceUrl << "to" << destUrl; job = new Transcoding::Job( sourceUrl, destUrl, m_transcodingConfig ); } job->setUiDelegate( 0 ); // be non-interactive job->setAutoDelete( true ); connect( job, SIGNAL(finished(KJob*)), // we must use this instead of result() to prevent deadlock SLOT(slotCopyOrTranscodeJobFinished()) ); job->start(); // no-op for KIO job, but matters for transcoding job }
void XmlValidatorJob::start() { if(m_documentUrl.isEmpty()) { m_result = Failed; m_errors.append(i18n("No document to validate")); setError(m_result); emitResult(); return; } QString localUrl; KJob *copyJob = 0; //DTD inline if(m_dtdUrl.isEmpty() && m_schemaUrl.isEmpty()) { emit signalReady(this); return; } if(!m_dtdUrl.isEmpty()) { localUrl = getLocalURLForSchema(m_documentUrl, m_dtdUrl); if(QFile::exists(localUrl)) { m_dtdUrl = localUrl; emit signalReady(this); return; } else { copyJob = KIO::copy(m_dtdUrl, localUrl, KIO::HideProgressInfo); m_dtdUrl = localUrl; } } if(!m_schemaUrl.isEmpty()) { localUrl = getLocalURLForSchema(m_documentUrl, m_schemaUrl); if(QFile::exists(localUrl)) { m_schemaUrl = localUrl; emit signalReady(this); return; } else { copyJob = KIO::copy(m_schemaUrl, localUrl, KIO::HideProgressInfo); m_schemaUrl = localUrl; } } copyJob->setAutoDelete(true); copyJob->setUiDelegate(0); connect(copyJob, SIGNAL(result(KJob *)), this, SLOT(ready(KJob *))); copyJob->start(); }