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