summaryrefslogtreecommitdiffstats
path: root/backend/tasks
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2013-08-05 03:29:50 +0200
committerPetr Mrázek <peterix@gmail.com>2013-08-05 03:29:50 +0200
commit183a7351456940d01f14a49112ddeb68ffc4693a (patch)
tree579aeb0b8670e634de4f083e54b3c826bf548ec9 /backend/tasks
parent005a010ee6a67191ec24583780310fcf217ff30c (diff)
downloadMultiMC-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.cpp12
-rw-r--r--backend/tasks/LoginTask.h6
-rw-r--r--backend/tasks/Task.cpp16
-rw-r--r--backend/tasks/Task.h10
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