diff options
author | Andrew <forkk@forkk.net> | 2013-02-26 16:47:39 -0600 |
---|---|---|
committer | Andrew <forkk@forkk.net> | 2013-02-26 16:47:39 -0600 |
commit | 36396f7c6aca9fcc61c8620e10c31ed2c8999ebd (patch) | |
tree | b5ef84aa020df1018821d66afe69ef6a53aadece /tasks | |
parent | bd64cda6726e088ebc860c3fc3ee220ed00121bd (diff) | |
download | MultiMC-36396f7c6aca9fcc61c8620e10c31ed2c8999ebd.tar MultiMC-36396f7c6aca9fcc61c8620e10c31ed2c8999ebd.tar.gz MultiMC-36396f7c6aca9fcc61c8620e10c31ed2c8999ebd.tar.lz MultiMC-36396f7c6aca9fcc61c8620e10c31ed2c8999ebd.tar.xz MultiMC-36396f7c6aca9fcc61c8620e10c31ed2c8999ebd.zip |
Massive re-organization.
Diffstat (limited to 'tasks')
-rw-r--r-- | tasks/gameupdatetask.cpp | 22 | ||||
-rw-r--r-- | tasks/gameupdatetask.h | 50 | ||||
-rw-r--r-- | tasks/logintask.cpp | 121 | ||||
-rw-r--r-- | tasks/logintask.h | 48 | ||||
-rw-r--r-- | tasks/task.cpp | 56 | ||||
-rw-r--r-- | tasks/task.h | 54 |
6 files changed, 0 insertions, 351 deletions
diff --git a/tasks/gameupdatetask.cpp b/tasks/gameupdatetask.cpp deleted file mode 100644 index c152147e..00000000 --- a/tasks/gameupdatetask.cpp +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2013 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. - */ - -#include "gameupdatetask.h" - -GameUpdateTask::GameUpdateTask(const LoginResponse &response, QObject *parent) : - QObject(parent), m_response(response) -{ - -} diff --git a/tasks/gameupdatetask.h b/tasks/gameupdatetask.h deleted file mode 100644 index b768f6f9..00000000 --- a/tasks/gameupdatetask.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2013 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. - */ - -#ifndef GAMEUPDATETASK_H -#define GAMEUPDATETASK_H - -#include <QObject> - -#include <data/loginresponse.h> - -/*! - * \brief The game update task is the task that handles downloading instances. - * Each instance type has its own class inheriting from this base game update task. - */ -class GameUpdateTask : public QObject -{ - Q_OBJECT -public: - explicit GameUpdateTask(const LoginResponse &response, QObject *parent = 0); - -signals: - /*! - * \brief Signal emitted when the game update is complete. - * \param response The login response received from login task. - */ - void gameUpdateComplete(const LoginResponse &response); - - /*! - * \brief Signal emitted if the game update fails. - * \param errorMsg An error message to be displayed to the user. - */ - void gameUpdateFailed(const QString &errorMsg); - -private: - LoginResponse m_response; -}; - -#endif // GAMEUPDATETASK_H diff --git a/tasks/logintask.cpp b/tasks/logintask.cpp deleted file mode 100644 index 71075630..00000000 --- a/tasks/logintask.cpp +++ /dev/null @@ -1,121 +0,0 @@ -/* Copyright 2013 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. - */ - -#include "logintask.h" - -#include <QStringList> - -#include <QtNetwork/QNetworkAccessManager> -#include <QtNetwork/QNetworkReply> -#include <QtNetwork/QNetworkRequest> - -#include <QUrl> -#include <QUrlQuery> - -LoginTask::LoginTask(const UserInfo &uInfo, QObject *parent) : - Task(parent), uInfo(uInfo) -{ - -} - -void LoginTask::executeTask() -{ - setStatus("Logging in..."); - - QNetworkAccessManager netMgr; - connect(&netMgr, SIGNAL(finished(QNetworkReply*)), - SLOT(processNetReply(QNetworkReply*))); - - QUrl loginURL("https://login.minecraft.net/"); - QNetworkRequest netRequest(loginURL); - netRequest.setHeader(QNetworkRequest::ContentTypeHeader, - "application/x-www-form-urlencoded"); - - QUrlQuery params; - params.addQueryItem("user", uInfo.username()); - params.addQueryItem("password", uInfo.password()); - params.addQueryItem("version", "13"); - - netReply = netMgr.post(netRequest, params.query(QUrl::EncodeSpaces).toUtf8()); - exec(); -} - -void LoginTask::processNetReply(QNetworkReply *reply) -{ - // Check for errors. - switch (reply->error()) - { - case QNetworkReply::NoError: - { - // Check the response code. - int responseCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); - - if (responseCode == 200) - { - QString responseStr(reply->readAll()); - - QStringList strings = responseStr.split(":"); - if (strings.count() >= 4) - { - bool parseSuccess; - qint64 latestVersion = strings[0].toLongLong(&parseSuccess); - if (parseSuccess) - { - // strings[1] is the download ticket. It isn't used anymore. - QString username = strings[2]; - QString sessionID = strings[3]; - - LoginResponse response(username, sessionID, latestVersion); - emit loginComplete(response); - } - else - { - emit loginFailed("Failed to parse Minecraft version string."); - } - } - else - { - if (responseStr.toLower() == "bad login") - emit loginFailed("Invalid username or password."); - else if (responseStr.toLower() == "old version") - emit loginFailed("Launcher outdated, please update."); - else - emit loginFailed("Login failed: " + responseStr); - } - } - else if (responseCode == 503) - { - emit loginFailed("The login servers are currently unavailable. " - "Check http://help.mojang.com/ for more info."); - } - else - { - emit loginFailed(QString("Login failed: Unknown HTTP error %1 occurred."). - arg(QString::number(responseCode))); - } - break; - } - - case QNetworkReply::OperationCanceledError: - emit loginFailed("Login canceled."); - break; - - default: - emit loginFailed("Login failed: " + reply->errorString()); - break; - } - - quit(); -} diff --git a/tasks/logintask.h b/tasks/logintask.h deleted file mode 100644 index d96bfec7..00000000 --- a/tasks/logintask.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright 2013 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. - */ - -#ifndef LOGINTASK_H -#define LOGINTASK_H - -#include "task.h" - -#include "data/userinfo.h" -#include "data/loginresponse.h" - -//class QNetworkAccessManager; -class QNetworkReply; - -class LoginTask : public Task -{ - Q_OBJECT -public: - explicit LoginTask(const UserInfo& uInfo, QObject *parent = 0); - -public slots: - void processNetReply(QNetworkReply* reply); - -signals: - void loginComplete(LoginResponse loginResponse); - void loginFailed(const QString& errorMsg); - -protected: - void executeTask(); - - QNetworkReply* netReply; - - UserInfo uInfo; -}; - -#endif // LOGINTASK_H diff --git a/tasks/task.cpp b/tasks/task.cpp deleted file mode 100644 index d581a1dd..00000000 --- a/tasks/task.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* Copyright 2013 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. - */ - -#include "task.h" - -Task::Task(QObject *parent) : - QThread(parent) -{ - -} - -QString Task::getStatus() const -{ - return status; -} - -void Task::setStatus(const QString &status) -{ - this->status = status; - emit statusChanged(status); -} - -int Task::getProgress() const -{ - return progress; -} - -void Task::setProgress(int progress) -{ - this->progress = progress; - emit progressChanged(progress); -} - -void Task::startTask() -{ - start(); -} - -void Task::run() -{ - emit taskStarted(this); - executeTask(); - emit taskEnded(this); -} diff --git a/tasks/task.h b/tasks/task.h deleted file mode 100644 index 0124d8cf..00000000 --- a/tasks/task.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright 2013 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. - */ - -#ifndef TASK_H -#define TASK_H - -#include <QObject> -#include <QThread> -#include <QString> - -class Task : public QThread -{ - Q_OBJECT -public: - explicit Task(QObject *parent = 0); - - // Starts the task. - void startTask(); - - QString getStatus() const; - int getProgress() const; - -public slots: - void setStatus(const QString& status); - void setProgress(int progress); - -signals: - void taskStarted(Task* task); - void taskEnded(Task* task); - - void statusChanged(const QString& status); - void progressChanged(int progress); - -protected: - virtual void run(); - virtual void executeTask() = 0; - - QString status; - int progress; -}; - -#endif // TASK_H |