Piddle-farting with 1.6 instances. Now with more json!

This commit is contained in:
Petr Mrázek
2013-07-09 00:52:03 +02:00
parent ee5583251d
commit dd86061f0f
4 changed files with 50 additions and 26 deletions

View File

@@ -17,6 +17,13 @@ JobPtr DownloadJob::create ( QUrl url, QString target_path, QString expected_md5
return JobPtr ( new DownloadJob ( url, target_path, expected_md5 ) );
}
bool DownloadJob::ensurePathExists(QString filenamepath)
{
QFileInfo a ( filenamepath );
QDir dir;
return (dir.mkpath ( a.path() ));
}
void DownloadJob::start()
{
m_manager.reset ( new QNetworkAccessManager() );
@@ -24,34 +31,26 @@ void DownloadJob::start()
{
QString filename = m_target_path;
m_output_file.setFileName ( filename );
// if there already is a file and md5 checking is in effect
if ( m_output_file.exists() && m_check_md5 )
// if there already is a file and md5 checking is in effect and it can be opened
if ( m_check_md5 && m_output_file.exists() && m_output_file.open ( QIODevice::ReadOnly ) )
{
// and it can be opened
if ( m_output_file.open ( QIODevice::ReadOnly ) )
// check the md5 against the expected one
QString hash = QCryptographicHash::hash ( m_output_file.readAll(), QCryptographicHash::Md5 ).toHex().constData();
m_output_file.close();
// skip this file if they match
if ( hash == m_expected_md5 )
{
// check the md5 against the expected one
QString hash = QCryptographicHash::hash ( m_output_file.readAll(), QCryptographicHash::Md5 ).toHex().constData();
m_output_file.close();
// skip this file if they match
if ( hash == m_expected_md5 )
{
qDebug() << "Skipping " << m_url.toString() << ": md5 match.";
emit finish();
return;
}
qDebug() << "Skipping " << m_url.toString() << ": md5 match.";
emit finish();
return;
}
}
QFileInfo a ( filename );
QDir dir;
if ( !dir.mkpath ( a.path() ) )
if(!ensurePathExists(filename))
{
/*
* error when making the folder structure
*/
emit fail();
return;
}
if ( !m_output_file.open ( QIODevice::WriteOnly ) )
{
/*