Implement account list and account list dialog
This commit is contained in:
@ -26,7 +26,7 @@
|
||||
|
||||
#include "logger/QsLog.h"
|
||||
|
||||
AuthenticateTask::AuthenticateTask(MojangAccount* account, const QString& password, QObject* parent) :
|
||||
AuthenticateTask::AuthenticateTask(MojangAccountPtr account, const QString& password, QObject* parent) :
|
||||
YggdrasilTask(account, parent), m_password(password)
|
||||
{
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ class AuthenticateTask : public YggdrasilTask
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
AuthenticateTask(MojangAccount* account, const QString& password, QObject* parent=0);
|
||||
AuthenticateTask(MojangAccountPtr account, const QString& password, QObject* parent=0);
|
||||
|
||||
protected:
|
||||
virtual QJsonObject getRequestContent() const;
|
||||
|
@ -41,6 +41,16 @@ MojangAccount::MojangAccount(const QString& username, const QString& clientToken
|
||||
m_currentProfile = -1;
|
||||
}
|
||||
|
||||
MojangAccount::MojangAccount(const MojangAccount& other, QObject* parent)
|
||||
{
|
||||
m_username = other.username();
|
||||
m_clientToken = other.clientToken();
|
||||
m_accessToken = other.accessToken();
|
||||
|
||||
m_profiles = other.m_profiles;
|
||||
m_currentProfile = other.m_currentProfile;
|
||||
}
|
||||
|
||||
|
||||
QString MojangAccount::username() const
|
||||
{
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include <QString>
|
||||
#include <QList>
|
||||
|
||||
#include <memory>
|
||||
|
||||
/**
|
||||
* Class that represents a profile within someone's Mojang account.
|
||||
@ -65,6 +66,11 @@ public:
|
||||
*/
|
||||
explicit MojangAccount(const QString& username, const QString& clientToken, const QString& accessToken, QObject* parent = 0);
|
||||
|
||||
/**
|
||||
* Constructs a new MojangAccount matching the given account.
|
||||
*/
|
||||
MojangAccount(const MojangAccount& other, QObject* parent);
|
||||
|
||||
|
||||
/**
|
||||
* This MojangAccount's username. May be an email address if the account is migrated.
|
||||
@ -124,3 +130,6 @@ protected:
|
||||
ProfileList m_profiles; // List of available profiles.
|
||||
};
|
||||
|
||||
typedef std::shared_ptr<MojangAccount> MojangAccountPtr;
|
||||
Q_DECLARE_METATYPE(MojangAccountPtr)
|
||||
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include <MultiMC.h>
|
||||
#include <logic/auth/MojangAccount.h>
|
||||
|
||||
YggdrasilTask::YggdrasilTask(MojangAccount* account, QObject* parent) : Task(parent)
|
||||
YggdrasilTask::YggdrasilTask(MojangAccountPtr account, QObject* parent) : Task(parent)
|
||||
{
|
||||
m_error = nullptr;
|
||||
m_account = account;
|
||||
@ -175,7 +175,7 @@ YggdrasilTask::Error *YggdrasilTask::getError() const
|
||||
return this->m_error;
|
||||
}
|
||||
|
||||
MojangAccount* YggdrasilTask::getMojangAccount() const
|
||||
MojangAccountPtr YggdrasilTask::getMojangAccount() const
|
||||
{
|
||||
return this->m_account;
|
||||
}
|
||||
|
@ -20,8 +20,7 @@
|
||||
#include <QString>
|
||||
#include <QJsonObject>
|
||||
|
||||
|
||||
class MojangAccount;
|
||||
#include "logic/auth/MojangAccount.h"
|
||||
|
||||
class QNetworkReply;
|
||||
|
||||
@ -33,7 +32,7 @@ class YggdrasilTask : public Task
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit YggdrasilTask(MojangAccount* account, QObject* parent=0);
|
||||
explicit YggdrasilTask(MojangAccountPtr account, QObject* parent=0);
|
||||
~YggdrasilTask();
|
||||
|
||||
/**
|
||||
@ -61,7 +60,7 @@ public:
|
||||
/**
|
||||
* Gets the Mojang account that this task is operating on.
|
||||
*/
|
||||
virtual MojangAccount* getMojangAccount() const;
|
||||
virtual MojangAccountPtr getMojangAccount() const;
|
||||
|
||||
/**
|
||||
* Returns a pointer to a YggdrasilTask::Error object if an error has occurred.
|
||||
@ -117,7 +116,7 @@ protected:
|
||||
*/
|
||||
virtual QString getStateMessage(const State state) const;
|
||||
|
||||
MojangAccount* m_account;
|
||||
MojangAccountPtr m_account;
|
||||
|
||||
QNetworkReply* m_netReply;
|
||||
|
||||
|
Reference in New Issue
Block a user