diff options
author | Petr Mrázek <peterix@gmail.com> | 2013-08-05 03:29:50 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2013-08-05 03:29:50 +0200 |
commit | 183a7351456940d01f14a49112ddeb68ffc4693a (patch) | |
tree | 579aeb0b8670e634de4f083e54b3c826bf548ec9 /backend/tasks | |
parent | 005a010ee6a67191ec24583780310fcf217ff30c (diff) | |
download | MultiMC-183a7351456940d01f14a49112ddeb68ffc4693a.tar MultiMC-183a7351456940d01f14a49112ddeb68ffc4693a.tar.gz MultiMC-183a7351456940d01f14a49112ddeb68ffc4693a.tar.lz MultiMC-183a7351456940d01f14a49112ddeb68ffc4693a.tar.xz MultiMC-183a7351456940d01f14a49112ddeb68ffc4693a.zip |
Runnable 1.6 instances!
Diffstat (limited to 'backend/tasks')
-rw-r--r-- | backend/tasks/LoginTask.cpp | 12 | ||||
-rw-r--r-- | backend/tasks/LoginTask.h | 6 | ||||
-rw-r--r-- | backend/tasks/Task.cpp | 16 | ||||
-rw-r--r-- | backend/tasks/Task.h | 10 |
4 files changed, 22 insertions, 22 deletions
diff --git a/backend/tasks/LoginTask.cpp b/backend/tasks/LoginTask.cpp index 88cdbacc..30e97ca9 100644 --- a/backend/tasks/LoginTask.cpp +++ b/backend/tasks/LoginTask.cpp @@ -27,16 +27,14 @@ LoginTask::LoginTask( const UserInfo& uInfo, QObject* parent ) : Task(parent), uInfo(uInfo) { - + netMgr.reset(new QNetworkAccessManager()); } void LoginTask::executeTask() { setStatus("Logging in..."); - QNetworkAccessManager netMgr; - connect(&netMgr, SIGNAL(finished(QNetworkReply*)), - SLOT(processNetReply(QNetworkReply*))); + connect(netMgr.data(), SIGNAL(finished(QNetworkReply*)), this, SLOT(processNetReply(QNetworkReply*))); QUrl loginURL("https://login.minecraft.net/"); QNetworkRequest netRequest(loginURL); @@ -47,8 +45,7 @@ void LoginTask::executeTask() params.addQueryItem("password", uInfo.password); params.addQueryItem("version", "13"); - netReply = netMgr.post(netRequest, params.query(QUrl::EncodeSpaces).toUtf8()); - exec(); + netReply = netMgr->post(netRequest, params.query(QUrl::EncodeSpaces).toUtf8()); } void LoginTask::processNetReply(QNetworkReply *reply) @@ -115,6 +112,5 @@ void LoginTask::processNetReply(QNetworkReply *reply) emit loginFailed("Login failed: " + reply->errorString()); break; } - - quit(); + emitEnded(); } diff --git a/backend/tasks/LoginTask.h b/backend/tasks/LoginTask.h index 3f72bb0b..e2f72f9e 100644 --- a/backend/tasks/LoginTask.h +++ b/backend/tasks/LoginTask.h @@ -17,7 +17,7 @@ #define LOGINTASK_H #include "Task.h" - +#include <QSharedPointer> #include "libmmc_config.h" struct UserInfo @@ -33,7 +33,7 @@ struct LoginResponse qint64 latestVersion; }; -//class QNetworkAccessManager; +class QNetworkAccessManager; class QNetworkReply; class LIBMULTIMC_EXPORT LoginTask : public Task @@ -54,6 +54,8 @@ protected: QNetworkReply* netReply; UserInfo uInfo; +private: + QSharedPointer<QNetworkAccessManager> netMgr; }; #endif // LOGINTASK_H diff --git a/backend/tasks/Task.cpp b/backend/tasks/Task.cpp index 7831ee58..30dd2d10 100644 --- a/backend/tasks/Task.cpp +++ b/backend/tasks/Task.cpp @@ -16,7 +16,7 @@ #include "Task.h" Task::Task(QObject *parent) : - QThread(parent) + QObject(parent) { } @@ -50,28 +50,30 @@ void Task::setProgress(int progress) void Task::startTask() { - start(); -} - -void Task::run() -{ emitStarted(); executeTask(); - emitEnded(); } void Task::emitStarted() { + running = true; emit started(); emit started(this); } void Task::emitEnded() { + running = false; emit ended(); emit ended(this); } +bool Task::isRunning() const +{ + return running; +} + + void Task::emitStatusChange(const QString &status) { emit statusChanged(status); diff --git a/backend/tasks/Task.h b/backend/tasks/Task.h index c8c12c02..bbe27ae1 100644 --- a/backend/tasks/Task.h +++ b/backend/tasks/Task.h @@ -17,12 +17,11 @@ #define TASK_H #include <QObject> -#include <QThread> #include <QString> #include "libmmc_config.h" -class LIBMULTIMC_EXPORT Task : public QThread +class LIBMULTIMC_EXPORT Task : public QObject { Q_OBJECT public: @@ -34,6 +33,8 @@ public: QString getStatus() const; int getProgress() const; + bool isRunning() const; + /*! * \brief Calculates and sets the task's progress based on the number of parts completed out of the total number to complete. * This is essentially just shorthand for setProgress((parts / whole) * 100); @@ -43,7 +44,7 @@ public: */ void calcProgress(int parts, int whole); -public slots: +protected slots: void setStatus(const QString& status); void setProgress(int progress); @@ -54,7 +55,6 @@ signals: void started(); void ended(); - void statusChanged(Task* task, const QString& status); void progressChanged(Task* task, int progress); @@ -62,7 +62,6 @@ signals: void progressChanged(int progress); protected: - virtual void run(); virtual void executeTask() = 0; virtual void emitStarted(); @@ -73,6 +72,7 @@ protected: QString status; int progress; + bool running = false; }; #endif // TASK_H |