NOISSUE eliminate ProgressProvider
This commit is contained in:
		| @@ -44,11 +44,11 @@ void LoginDialog::accept() | ||||
| 	// Setup the login task and start it | ||||
| 	m_account = MojangAccount::createFromUsername(ui->userTextBox->text()); | ||||
| 	m_loginTask = m_account->login(nullptr, ui->passTextBox->text()); | ||||
| 	connect(m_loginTask.get(), &ProgressProvider::failed, this, &LoginDialog::onTaskFailed); | ||||
| 	connect(m_loginTask.get(), &ProgressProvider::succeeded, this, | ||||
| 	connect(m_loginTask.get(), &Task::failed, this, &LoginDialog::onTaskFailed); | ||||
| 	connect(m_loginTask.get(), &Task::succeeded, this, | ||||
| 			&LoginDialog::onTaskSucceeded); | ||||
| 	connect(m_loginTask.get(), &ProgressProvider::status, this, &LoginDialog::onTaskStatus); | ||||
| 	connect(m_loginTask.get(), &ProgressProvider::progress, this, &LoginDialog::onTaskProgress); | ||||
| 	connect(m_loginTask.get(), &Task::status, this, &LoginDialog::onTaskStatus); | ||||
| 	connect(m_loginTask.get(), &Task::progress, this, &LoginDialog::onTaskProgress); | ||||
| 	m_loginTask->start(); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -54,7 +54,7 @@ void ProgressDialog::updateSize() | ||||
| 	resize(QSize(480, minimumSizeHint().height())); | ||||
| } | ||||
|  | ||||
| int ProgressDialog::exec(ProgressProvider *task) | ||||
| int ProgressDialog::exec(Task *task) | ||||
| { | ||||
| 	this->task = task; | ||||
|  | ||||
| @@ -74,7 +74,7 @@ int ProgressDialog::exec(ProgressProvider *task) | ||||
| 		return QDialog::Accepted; | ||||
| } | ||||
|  | ||||
| ProgressProvider *ProgressDialog::getTask() | ||||
| Task *ProgressDialog::getTask() | ||||
| { | ||||
| 	return task; | ||||
| } | ||||
|   | ||||
| @@ -17,7 +17,7 @@ | ||||
|  | ||||
| #include <QDialog> | ||||
|  | ||||
| class ProgressProvider; | ||||
| class Task; | ||||
|  | ||||
| namespace Ui | ||||
| { | ||||
| @@ -34,11 +34,11 @@ public: | ||||
|  | ||||
| 	void updateSize(); | ||||
|  | ||||
| 	int exec(ProgressProvider *task); | ||||
| 	int exec(Task *task); | ||||
|  | ||||
| 	void setSkipButton(bool present, QString label = QString()); | ||||
|  | ||||
| 	ProgressProvider *getTask(); | ||||
| 	Task *getTask(); | ||||
|  | ||||
| public | ||||
| slots: | ||||
| @@ -49,7 +49,7 @@ slots: | ||||
| 	void changeStatus(const QString &status); | ||||
| 	void changeProgress(qint64 current, qint64 total); | ||||
|  | ||||
| 	 | ||||
|  | ||||
| private | ||||
| slots: | ||||
| 	void on_skipButton_clicked(bool checked); | ||||
| @@ -61,5 +61,5 @@ protected: | ||||
| private: | ||||
| 	Ui::ProgressDialog *ui; | ||||
|  | ||||
| 	ProgressProvider *task; | ||||
| 	Task *task; | ||||
| }; | ||||
|   | ||||
| @@ -17,7 +17,6 @@ | ||||
|  | ||||
| #include <QWidget> | ||||
|  | ||||
| #include "net/NetJob.h" | ||||
| #include "java/JavaChecker.h" | ||||
| #include "BaseInstance.h" | ||||
| #include "BasePage.h" | ||||
|   | ||||
| @@ -18,7 +18,6 @@ | ||||
| #include <QWidget> | ||||
|  | ||||
| #include "minecraft/OneSixInstance.h" | ||||
| #include "net/NetJob.h" | ||||
| #include "pages/BasePage.h" | ||||
| #include <MultiMC.h> | ||||
|  | ||||
|   | ||||
| @@ -18,7 +18,6 @@ | ||||
| #include <QWidget> | ||||
|  | ||||
| #include "BaseInstance.h" | ||||
| #include "net/NetJob.h" | ||||
| #include "BaseProcess.h" | ||||
| #include "BasePage.h" | ||||
| #include <MultiMC.h> | ||||
|   | ||||
| @@ -18,7 +18,6 @@ | ||||
| #include <QWidget> | ||||
|  | ||||
| #include "minecraft/OneSixInstance.h" | ||||
| #include "net/NetJob.h" | ||||
| #include "BasePage.h" | ||||
| #include <MultiMC.h> | ||||
|  | ||||
|   | ||||
| @@ -18,7 +18,6 @@ | ||||
| #include <QWidget> | ||||
|  | ||||
| #include "BaseInstance.h" | ||||
| #include "net/NetJob.h" | ||||
| #include "BasePage.h" | ||||
| #include <MultiMC.h> | ||||
|  | ||||
|   | ||||
| @@ -18,7 +18,6 @@ | ||||
| #include <QWidget> | ||||
|  | ||||
| #include "minecraft/OneSixInstance.h" | ||||
| #include "net/NetJob.h" | ||||
| #include "BasePage.h" | ||||
|  | ||||
| namespace Ui | ||||
| @@ -72,7 +71,6 @@ private: | ||||
| 	Ui::VersionPage *ui; | ||||
| 	std::shared_ptr<MinecraftProfile> m_version; | ||||
| 	OneSixInstance *m_inst; | ||||
| 	NetJobPtr forgeJob; | ||||
|  | ||||
| public | ||||
| slots: | ||||
|   | ||||
| @@ -21,7 +21,7 @@ class OneSixInstance; | ||||
| class QDir; | ||||
| class QString; | ||||
| class QObject; | ||||
| class ProgressProvider; | ||||
| class Task; | ||||
| struct BaseVersion; | ||||
| typedef std::shared_ptr<BaseVersion> BaseVersionPtr; | ||||
|  | ||||
| @@ -35,7 +35,7 @@ public: | ||||
| 	virtual bool add(OneSixInstance *to); | ||||
| 	virtual bool remove(OneSixInstance *from); | ||||
|  | ||||
| 	virtual ProgressProvider *createInstallTask(OneSixInstance *instance, BaseVersionPtr version, QObject *parent) = 0; | ||||
| 	virtual Task *createInstallTask(OneSixInstance *instance, BaseVersionPtr version, QObject *parent) = 0; | ||||
|  | ||||
| protected: | ||||
| 	virtual QString id() const = 0; | ||||
|   | ||||
| @@ -177,7 +177,6 @@ SET(LOGIC_SOURCES | ||||
| 	icons/IconList.cpp | ||||
|  | ||||
| 	# Tasks | ||||
| 	tasks/ProgressProvider.h | ||||
| 	tasks/Task.h | ||||
| 	tasks/Task.cpp | ||||
| 	tasks/ThreadTask.h | ||||
|   | ||||
| @@ -384,8 +384,8 @@ protected: | ||||
| 			{ setProgress(100 * current / qMax((qint64)1, total)); }); | ||||
| 			connect(fjob, &NetJob::status, [this](const QString & msg) | ||||
| 			{ setStatus(msg); }); | ||||
| 			connect(fjob, &NetJob::failed, [this]() | ||||
| 			{ emitFailed(tr("Failure to download forge")); }); | ||||
| 			connect(fjob, &NetJob::failed, [this](QString reason) | ||||
| 			{ emitFailed(tr("Failure to download forge:\n%1").arg(reason)); }); | ||||
| 			connect(fjob, &NetJob::succeeded, installFunction); | ||||
| 			fjob->start(); | ||||
| 		} | ||||
| @@ -428,7 +428,7 @@ private: | ||||
| 	BaseVersionPtr m_version; | ||||
| }; | ||||
|  | ||||
| ProgressProvider *ForgeInstaller::createInstallTask(OneSixInstance *instance, | ||||
| Task *ForgeInstaller::createInstallTask(OneSixInstance *instance, | ||||
| 													BaseVersionPtr version, QObject *parent) | ||||
| { | ||||
| 	if (!version) | ||||
|   | ||||
| @@ -30,7 +30,7 @@ class ForgeInstaller : public BaseInstaller | ||||
| public: | ||||
| 	ForgeInstaller(); | ||||
| 	virtual ~ForgeInstaller(){} | ||||
| 	virtual ProgressProvider *createInstallTask(OneSixInstance *instance, BaseVersionPtr version, QObject *parent) override; | ||||
| 	virtual Task *createInstallTask(OneSixInstance *instance, BaseVersionPtr version, QObject *parent) override; | ||||
| 	virtual QString id() const override { return "net.minecraftforge"; } | ||||
|  | ||||
| protected: | ||||
|   | ||||
| @@ -33,7 +33,7 @@ void JavaCheckerJob::partFinished(JavaCheckResult result) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void JavaCheckerJob::start() | ||||
| void JavaCheckerJob::executeTask() | ||||
| { | ||||
| 	qDebug() << m_job_name.toLocal8Bit() << " started."; | ||||
| 	m_running = true; | ||||
|   | ||||
| @@ -18,16 +18,16 @@ | ||||
| #include <QtNetwork> | ||||
| #include <QLabel> | ||||
| #include "JavaChecker.h" | ||||
| #include "tasks/ProgressProvider.h" | ||||
| #include "tasks/Task.h" | ||||
|  | ||||
| class JavaCheckerJob; | ||||
| typedef std::shared_ptr<JavaCheckerJob> JavaCheckerJobPtr; | ||||
|  | ||||
| class JavaCheckerJob : public ProgressProvider | ||||
| class JavaCheckerJob : public Task | ||||
| { | ||||
| 	Q_OBJECT | ||||
| public: | ||||
| 	explicit JavaCheckerJob(QString job_name) : ProgressProvider(), m_job_name(job_name) {}; | ||||
| 	explicit JavaCheckerJob(QString job_name) : Task(), m_job_name(job_name) {}; | ||||
|  | ||||
| 	bool addJavaCheckerAction(JavaCheckerPtr base) | ||||
| 	{ | ||||
| @@ -66,17 +66,17 @@ public: | ||||
|  | ||||
| signals: | ||||
| 	void started(); | ||||
| 	void progress(int current, int total); | ||||
| 	void finished(QList<JavaCheckResult>); | ||||
| public | ||||
| slots: | ||||
| 	virtual void start(); | ||||
| 	// FIXME: implement | ||||
|  | ||||
| public slots: | ||||
| 	virtual void abort() {}; | ||||
| private | ||||
| slots: | ||||
|  | ||||
| private slots: | ||||
| 	void partFinished(JavaCheckResult result); | ||||
|  | ||||
| protected: | ||||
| 	virtual void executeTask() override; | ||||
|  | ||||
| private: | ||||
| 	QString m_job_name; | ||||
| 	QList<JavaCheckerPtr> javacheckers; | ||||
|   | ||||
| @@ -178,7 +178,7 @@ void JavaListLoadTask::executeTask() | ||||
|  | ||||
| 	m_job = std::shared_ptr<JavaCheckerJob>(new JavaCheckerJob("Java detection")); | ||||
| 	connect(m_job.get(), SIGNAL(finished(QList<JavaCheckResult>)), this, SLOT(javaCheckerFinished(QList<JavaCheckResult>))); | ||||
| 	connect(m_job.get(), SIGNAL(progress(int, int)), this, SLOT(checkerProgress(int, int))); | ||||
| 	connect(m_job.get(), SIGNAL(progress(qint64,qint64)), this, SLOT(checkerProgress(qint64, qint64))); | ||||
|  | ||||
| 	qDebug() << "Probing the following Java paths: "; | ||||
| 	int id = 0; | ||||
| @@ -197,7 +197,7 @@ void JavaListLoadTask::executeTask() | ||||
| 	m_job->start(); | ||||
| } | ||||
|  | ||||
| void JavaListLoadTask::checkerProgress(int current, int total) | ||||
| void JavaListLoadTask::checkerProgress(qint64 current, qint64 total) | ||||
| { | ||||
| 	float progress = (current * 100.0) / total; | ||||
| 	this->setProgress((int) progress); | ||||
|   | ||||
| @@ -87,7 +87,7 @@ public: | ||||
| 	virtual void executeTask(); | ||||
| public slots: | ||||
| 	void javaCheckerFinished(QList<JavaCheckResult> results); | ||||
| 	void checkerProgress(int current, int total); | ||||
| 	void checkerProgress(qint64 current, qint64 total); | ||||
|  | ||||
| protected: | ||||
| 	std::shared_ptr<JavaCheckerJob> m_job; | ||||
|   | ||||
| @@ -136,7 +136,7 @@ private: | ||||
| 	BaseVersionPtr m_version; | ||||
| }; | ||||
|  | ||||
| ProgressProvider *LiteLoaderInstaller::createInstallTask(OneSixInstance *instance, | ||||
| Task *LiteLoaderInstaller::createInstallTask(OneSixInstance *instance, | ||||
| 														 BaseVersionPtr version, | ||||
| 														 QObject *parent) | ||||
| { | ||||
|   | ||||
| @@ -30,7 +30,7 @@ public: | ||||
| 	bool add(OneSixInstance *to) override; | ||||
| 	virtual QString id() const override { return "com.mumfrey.liteloader"; } | ||||
|  | ||||
| 	ProgressProvider *createInstallTask(OneSixInstance *instance, BaseVersionPtr version, QObject *parent) override; | ||||
| 	Task *createInstallTask(OneSixInstance *instance, BaseVersionPtr version, QObject *parent) override; | ||||
|  | ||||
| private: | ||||
| 	LiteLoaderVersionPtr m_version; | ||||
|   | ||||
| @@ -72,7 +72,7 @@ void OneSixUpdate::executeTask() | ||||
| 		return; | ||||
| 	} | ||||
| 	connect(versionUpdateTask.get(), SIGNAL(succeeded()), SLOT(jarlibStart())); | ||||
| 	connect(versionUpdateTask.get(), SIGNAL(failed(QString)), SLOT(versionUpdateFailed(QString))); | ||||
| 	connect(versionUpdateTask.get(), &NetJob::failed, this, &OneSixUpdate::versionUpdateFailed); | ||||
| 	connect(versionUpdateTask.get(), SIGNAL(progress(qint64, qint64)), | ||||
| 			SIGNAL(progress(qint64, qint64))); | ||||
| 	setStatus(tr("Getting the version files from Mojang...")); | ||||
| @@ -100,7 +100,7 @@ void OneSixUpdate::assetIndexStart() | ||||
| 	jarlibDownloadJob.reset(job); | ||||
|  | ||||
| 	connect(jarlibDownloadJob.get(), SIGNAL(succeeded()), SLOT(assetIndexFinished())); | ||||
| 	connect(jarlibDownloadJob.get(), SIGNAL(failed()), SLOT(assetIndexFailed())); | ||||
| 	connect(jarlibDownloadJob.get(), &NetJob::failed, this, &OneSixUpdate::assetIndexFailed); | ||||
| 	connect(jarlibDownloadJob.get(), SIGNAL(progress(qint64, qint64)), | ||||
| 			SIGNAL(progress(qint64, qint64))); | ||||
|  | ||||
| @@ -146,7 +146,7 @@ void OneSixUpdate::assetIndexFinished() | ||||
| 			job->addNetAction(dl); | ||||
| 		jarlibDownloadJob.reset(job); | ||||
| 		connect(jarlibDownloadJob.get(), SIGNAL(succeeded()), SLOT(assetsFinished())); | ||||
| 		connect(jarlibDownloadJob.get(), SIGNAL(failed()), SLOT(assetsFailed())); | ||||
| 		connect(jarlibDownloadJob.get(), &NetJob::failed, this, &OneSixUpdate::assetsFailed); | ||||
| 		connect(jarlibDownloadJob.get(), SIGNAL(progress(qint64, qint64)), | ||||
| 				SIGNAL(progress(qint64, qint64))); | ||||
| 		jarlibDownloadJob->start(); | ||||
| @@ -155,9 +155,9 @@ void OneSixUpdate::assetIndexFinished() | ||||
| 	assetsFinished(); | ||||
| } | ||||
|  | ||||
| void OneSixUpdate::assetIndexFailed() | ||||
| void OneSixUpdate::assetIndexFailed(QString reason) | ||||
| { | ||||
| 	emitFailed(tr("Failed to download the assets index!")); | ||||
| 	emitFailed(tr("Failed to download the assets index:\n%1").arg(reason)); | ||||
| } | ||||
|  | ||||
| void OneSixUpdate::assetsFinished() | ||||
| @@ -165,9 +165,9 @@ void OneSixUpdate::assetsFinished() | ||||
| 	emitSucceeded(); | ||||
| } | ||||
|  | ||||
| void OneSixUpdate::assetsFailed() | ||||
| void OneSixUpdate::assetsFailed(QString reason) | ||||
| { | ||||
| 	emitFailed(tr("Failed to download assets!")); | ||||
| 	emitFailed(tr("Failed to download assets:\n%1").arg(reason)); | ||||
| } | ||||
|  | ||||
| void OneSixUpdate::jarlibStart() | ||||
| @@ -280,7 +280,7 @@ void OneSixUpdate::jarlibStart() | ||||
| 	} | ||||
|  | ||||
| 	connect(jarlibDownloadJob.get(), SIGNAL(succeeded()), SLOT(jarlibFinished())); | ||||
| 	connect(jarlibDownloadJob.get(), SIGNAL(failed()), SLOT(jarlibFailed())); | ||||
| 	connect(jarlibDownloadJob.get(), &NetJob::failed, this, &OneSixUpdate::jarlibFailed); | ||||
| 	connect(jarlibDownloadJob.get(), SIGNAL(progress(qint64, qint64)), | ||||
| 			SIGNAL(progress(qint64, qint64))); | ||||
|  | ||||
| @@ -336,12 +336,12 @@ void OneSixUpdate::jarlibFinished() | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void OneSixUpdate::jarlibFailed() | ||||
| void OneSixUpdate::jarlibFailed(QString reason) | ||||
| { | ||||
| 	QStringList failed = jarlibDownloadJob->getFailedFiles(); | ||||
| 	QString failed_all = failed.join("\n"); | ||||
| 	emitFailed( | ||||
| 		tr("Failed to download the following files:\n%1\n\nPlease try again.").arg(failed_all)); | ||||
| 		tr("Failed to download the following files:\n%1\n\nReason:%2\nPlease try again.").arg(failed_all, reason)); | ||||
| } | ||||
|  | ||||
| void OneSixUpdate::fmllibsStart() | ||||
| @@ -400,7 +400,7 @@ void OneSixUpdate::fmllibsStart() | ||||
| 	} | ||||
|  | ||||
| 	connect(dljob, SIGNAL(succeeded()), SLOT(fmllibsFinished())); | ||||
| 	connect(dljob, SIGNAL(failed()), SLOT(fmllibsFailed())); | ||||
| 	connect(dljob, &NetJob::failed, this, &OneSixUpdate::fmllibsFailed); | ||||
| 	connect(dljob, SIGNAL(progress(qint64, qint64)), SIGNAL(progress(qint64, qint64))); | ||||
| 	legacyDownloadJob.reset(dljob); | ||||
| 	legacyDownloadJob->start(); | ||||
| @@ -437,9 +437,9 @@ void OneSixUpdate::fmllibsFinished() | ||||
| 	assetIndexStart(); | ||||
| } | ||||
|  | ||||
| void OneSixUpdate::fmllibsFailed() | ||||
| void OneSixUpdate::fmllibsFailed(QString reason) | ||||
| { | ||||
| 	emitFailed("Game update failed: it was impossible to fetch the required FML libraries."); | ||||
| 	emitFailed(tr("Game update failed: it was impossible to fetch the required FML libraries.\nReason:\n%1").arg(reason)); | ||||
| 	return; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -40,18 +40,18 @@ slots: | ||||
|  | ||||
| 	void jarlibStart(); | ||||
| 	void jarlibFinished(); | ||||
| 	void jarlibFailed(); | ||||
| 	void jarlibFailed(QString reason); | ||||
|  | ||||
| 	void fmllibsStart(); | ||||
| 	void fmllibsFinished(); | ||||
| 	void fmllibsFailed(); | ||||
| 	void fmllibsFailed(QString reason); | ||||
|  | ||||
| 	void assetIndexStart(); | ||||
| 	void assetIndexFinished(); | ||||
| 	void assetIndexFailed(); | ||||
| 	void assetIndexFailed(QString reason); | ||||
|  | ||||
| 	void assetsFinished(); | ||||
| 	void assetsFailed(); | ||||
| 	void assetsFailed(QString reason); | ||||
|  | ||||
| private: | ||||
| 	NetJobPtr jarlibDownloadJob; | ||||
|   | ||||
| @@ -33,7 +33,7 @@ void NewsChecker::reloadNews() | ||||
| 		qDebug() << "Ignored request to reload news. Currently reloading already."; | ||||
| 		return; | ||||
| 	} | ||||
| 	 | ||||
|  | ||||
| 	qDebug() << "Reloading news."; | ||||
|  | ||||
| 	NetJob* job = new NetJob("News RSS Feed"); | ||||
| @@ -95,10 +95,10 @@ void NewsChecker::rssDownloadFinished() | ||||
| 	succeed(); | ||||
| } | ||||
|  | ||||
| void NewsChecker::rssDownloadFailed() | ||||
| void NewsChecker::rssDownloadFailed(QString reason) | ||||
| { | ||||
| 	// Set an error message and fail. | ||||
| 	fail("Failed to load news RSS feed."); | ||||
| 	fail(tr("Failed to load news RSS feed:\n%1").arg(reason)); | ||||
| } | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -31,7 +31,7 @@ public: | ||||
| 	 * Constructs a news reader to read from the given RSS feed URL. | ||||
| 	 */ | ||||
| 	NewsChecker(const QString& feedUrl); | ||||
| 	 | ||||
|  | ||||
| 	/*! | ||||
| 	 * Returns the error message for the last time the news was loaded. | ||||
| 	 * Empty string if the last load was successful. | ||||
| @@ -42,7 +42,7 @@ public: | ||||
| 	 * Returns true if the news has been loaded successfully. | ||||
| 	 */ | ||||
| 	bool isNewsLoaded() const; | ||||
| 	 | ||||
|  | ||||
| 	//! True if the news is currently loading. If true, reloadNews() will do nothing. | ||||
| 	bool isLoadingNews() const; | ||||
|  | ||||
| @@ -70,7 +70,7 @@ signals: | ||||
|  | ||||
| protected slots: | ||||
| 	void rssDownloadFinished(); | ||||
| 	void rssDownloadFailed(); | ||||
| 	void rssDownloadFailed(QString reason); | ||||
|  | ||||
| protected: | ||||
| 	//! The URL for the RSS feed to fetch. | ||||
| @@ -91,7 +91,7 @@ protected: | ||||
| 	 */ | ||||
| 	QString m_lastLoadError; | ||||
|  | ||||
| 	 | ||||
|  | ||||
| 	/*! | ||||
| 	 * Emits newsLoaded() and sets m_lastLoadError to empty string. | ||||
| 	 */ | ||||
|   | ||||
| @@ -104,9 +104,9 @@ void StatusChecker::statusDownloadFinished() | ||||
| 	succeed(); | ||||
| } | ||||
|  | ||||
| void StatusChecker::statusDownloadFailed() | ||||
| void StatusChecker::statusDownloadFailed(QString reason) | ||||
| { | ||||
| 	fail("Failed to load status JSON."); | ||||
| 	fail(tr("Failed to load status JSON:\n%1").arg(reason)); | ||||
| } | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -44,7 +44,7 @@ signals: | ||||
|  | ||||
| protected slots: | ||||
| 	void statusDownloadFinished(); | ||||
| 	void statusDownloadFailed(); | ||||
| 	void statusDownloadFailed(QString reason); | ||||
|  | ||||
| protected: | ||||
| 	QMap<QString, QString> m_prevEntries; | ||||
|   | ||||
| @@ -1,41 +0,0 @@ | ||||
| /* Copyright 2013-2015 MultiMC Contributors | ||||
|  * | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  * | ||||
|  *     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  */ | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| #include <QObject> | ||||
|  | ||||
| class ProgressProvider : public QObject | ||||
| { | ||||
| 	Q_OBJECT | ||||
| protected: | ||||
| 	explicit ProgressProvider(QObject *parent = 0) : QObject(parent) | ||||
| 	{ | ||||
| 	} | ||||
| signals: | ||||
| 	void started(); | ||||
| 	void progress(qint64 current, qint64 total); | ||||
| 	void succeeded(); | ||||
| 	void failed(QString reason); | ||||
| 	void status(QString status); | ||||
|  | ||||
| public: | ||||
| 	virtual ~ProgressProvider() {} | ||||
| 	virtual bool isRunning() const = 0; | ||||
| public | ||||
| slots: | ||||
| 	virtual void start() = 0; | ||||
| 	virtual void abort() = 0; | ||||
| }; | ||||
| @@ -4,7 +4,7 @@ SequentialTask::SequentialTask(QObject *parent) : Task(parent), m_currentIndex(- | ||||
| { | ||||
| } | ||||
|  | ||||
| void SequentialTask::addTask(std::shared_ptr<ProgressProvider> task) | ||||
| void SequentialTask::addTask(std::shared_ptr<Task> task) | ||||
| { | ||||
| 	m_queue.append(task); | ||||
| } | ||||
| @@ -19,7 +19,7 @@ void SequentialTask::startNext() | ||||
| { | ||||
| 	if (m_currentIndex != -1) | ||||
| 	{ | ||||
| 		std::shared_ptr<ProgressProvider> previous = m_queue[m_currentIndex]; | ||||
| 		std::shared_ptr<Task> previous = m_queue[m_currentIndex]; | ||||
| 		disconnect(previous.get(), 0, this, 0); | ||||
| 	} | ||||
| 	m_currentIndex++; | ||||
| @@ -28,7 +28,7 @@ void SequentialTask::startNext() | ||||
| 		emitSucceeded(); | ||||
| 		return; | ||||
| 	} | ||||
| 	std::shared_ptr<ProgressProvider> next = m_queue[m_currentIndex]; | ||||
| 	std::shared_ptr<Task> next = m_queue[m_currentIndex]; | ||||
| 	connect(next.get(), SIGNAL(failed(QString)), this, SLOT(subTaskFailed(QString))); | ||||
| 	connect(next.get(), SIGNAL(status(QString)), this, SLOT(subTaskStatus(QString))); | ||||
| 	connect(next.get(), SIGNAL(progress(qint64, qint64)), this, SLOT(subTaskProgress(qint64, qint64))); | ||||
|   | ||||
| @@ -11,7 +11,7 @@ class SequentialTask : public Task | ||||
| public: | ||||
| 	explicit SequentialTask(QObject *parent = 0); | ||||
|  | ||||
| 	void addTask(std::shared_ptr<ProgressProvider> task); | ||||
| 	void addTask(std::shared_ptr<Task> task); | ||||
|  | ||||
| protected: | ||||
| 	void executeTask(); | ||||
| @@ -24,6 +24,6 @@ slots: | ||||
| 	void subTaskProgress(qint64 current, qint64 total); | ||||
|  | ||||
| private: | ||||
| 	QQueue<std::shared_ptr<ProgressProvider> > m_queue; | ||||
| 	QQueue<std::shared_ptr<Task> > m_queue; | ||||
| 	int m_currentIndex; | ||||
| }; | ||||
|   | ||||
| @@ -16,7 +16,7 @@ | ||||
| #include "Task.h" | ||||
| #include <QDebug> | ||||
|  | ||||
| Task::Task(QObject *parent) : ProgressProvider(parent) | ||||
| Task::Task(QObject *parent) : QObject(parent) | ||||
| { | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -17,9 +17,8 @@ | ||||
|  | ||||
| #include <QObject> | ||||
| #include <QString> | ||||
| #include "ProgressProvider.h" | ||||
|  | ||||
| class Task : public ProgressProvider | ||||
| class Task : public QObject | ||||
| { | ||||
| 	Q_OBJECT | ||||
| public: | ||||
| @@ -40,6 +39,13 @@ public: | ||||
| 	 */ | ||||
| 	virtual QString failReason() const; | ||||
|  | ||||
| signals: | ||||
| 	void started(); | ||||
| 	void progress(qint64 current, qint64 total); | ||||
| 	void succeeded(); | ||||
| 	void failed(QString reason); | ||||
| 	void status(QString status); | ||||
|  | ||||
| public | ||||
| slots: | ||||
| 	virtual void start(); | ||||
|   | ||||
| @@ -39,15 +39,15 @@ void TranslationDownloader::indexRecieved() | ||||
| 	connect(m_dl_job.get(), &NetJob::failed, this, &TranslationDownloader::dlFailed); | ||||
| 	m_dl_job->start(); | ||||
| } | ||||
| void TranslationDownloader::dlFailed() | ||||
| void TranslationDownloader::dlFailed(QString reason) | ||||
| { | ||||
| 	qCritical() << "Translations Download Failed!"; | ||||
| 	qCritical() << "Translations Download Failed:" << reason; | ||||
| } | ||||
| void TranslationDownloader::dlGood() | ||||
| { | ||||
| 	qDebug() << "Got translations!"; | ||||
| } | ||||
| void TranslationDownloader::indexFailed() | ||||
| void TranslationDownloader::indexFailed(QString reason) | ||||
| { | ||||
| 	qCritical() << "Translations Index Download Failed!"; | ||||
| 	qCritical() << "Translations Index Download Failed:" << reason; | ||||
| } | ||||
|   | ||||
| @@ -20,8 +20,8 @@ public: | ||||
|  | ||||
| private slots: | ||||
| 	void indexRecieved(); | ||||
| 	void indexFailed(); | ||||
| 	void dlFailed(); | ||||
| 	void indexFailed(QString reason); | ||||
| 	void dlFailed(QString reason); | ||||
| 	void dlGood(); | ||||
|  | ||||
| private: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user