Implement legacy forge button!

Many refactors of the task system.
Progress dialog now accepts generic ProgressProvider objects
This commit is contained in:
Petr Mrázek
2013-09-18 00:00:35 +02:00
parent d38b90530b
commit b979d0ce5d
28 changed files with 296 additions and 236 deletions

View File

@ -5,6 +5,8 @@
#include "ByteArrayDownload.h"
#include "CacheDownload.h"
#include <QDebug>
ByteArrayDownloadPtr DownloadJob::add ( QUrl url )
{
ByteArrayDownloadPtr ptr (new ByteArrayDownload(url));

View File

@ -5,6 +5,7 @@
#include "FileDownload.h"
#include "CacheDownload.h"
#include "HttpMetaCache.h"
#include "logic/tasks/ProgressProvider.h"
class DownloadJob;
typedef QSharedPointer<DownloadJob> DownloadJobPtr;
@ -12,12 +13,12 @@ typedef QSharedPointer<DownloadJob> DownloadJobPtr;
/**
* A single file for the downloader/cache to process.
*/
class DownloadJob : public QObject
class DownloadJob : public ProgressProvider
{
Q_OBJECT
public:
explicit DownloadJob(QString job_name)
:QObject(), m_job_name(job_name){};
:ProgressProvider(), m_job_name(job_name){};
ByteArrayDownloadPtr add(QUrl url);
FileDownloadPtr add(QUrl url, QString rel_target_path);
@ -37,6 +38,19 @@ public:
{
return downloads.size();
}
virtual void getProgress(qint64& current, qint64& total)
{
current = current_progress;
total = total_progress;
};
virtual QString getStatus() const
{
return m_job_name;
};
virtual bool isRunning() const
{
return m_running;
};
signals:
void started();
void progress(qint64 current, qint64 total);
@ -56,5 +70,6 @@ private:
qint64 total_progress = 0;
int num_succeeded = 0;
int num_failed = 0;
bool m_running = false;
};