From 928e0d0b151a4690a5849c2ec4a44d97338937c5 Mon Sep 17 00:00:00 2001 From: Andrew Date: Tue, 19 Nov 2013 12:53:30 -0600 Subject: Implement saving account list to file Currently it only saves when accounts are added or removed. We'll have to fix this, but we need signals for when account objects change first. --- logic/auth/MojangAccount.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'logic/auth') diff --git a/logic/auth/MojangAccount.cpp b/logic/auth/MojangAccount.cpp index 936046fb..80b88082 100644 --- a/logic/auth/MojangAccount.cpp +++ b/logic/auth/MojangAccount.cpp @@ -19,6 +19,8 @@ #include +#include + MojangAccount::MojangAccount(const QString& username, QObject* parent) : QObject(parent) { @@ -113,6 +115,34 @@ void MojangAccount::loadProfiles(const ProfileList& profiles) m_profiles.append(profile); } +MojangAccountPtr MojangAccount::loadFromJson(const QJsonObject& object) +{ + // The JSON object must at least have a username for it to be valid. + if (!object.value("username").isString()) + { + QLOG_ERROR() << "Can't load Mojang account info from JSON object. Username field is missing or of the wrong type."; + return nullptr; + } + + QString username = object.value("username").toString(""); + QString clientToken = object.value("clientToken").toString(""); + QString accessToken = object.value("accessToken").toString(""); + + // TODO: Load profiles? + + return MojangAccountPtr(new MojangAccount(username, clientToken, accessToken)); +} + +QJsonObject MojangAccount::saveToJson() +{ + QJsonObject json; + json.insert("username", username()); + json.insert("clientToken", clientToken()); + json.insert("accessToken", accessToken()); + // TODO: Save profiles? + return json; +} + AccountProfile::AccountProfile(const QString& id, const QString& name) { -- cgit v1.2.3