From 7d7579d7f04f88013d7e4d064b2becec28cced61 Mon Sep 17 00:00:00 2001 From: Sky Date: Wed, 27 Nov 2013 16:56:15 +0000 Subject: Move "manage accounts" to right, use player skin when available --- gui/dialogs/AccountListDialog.cpp | 6 +++++- gui/dialogs/AccountListDialog.h | 3 +++ gui/dialogs/LoginDialog.cpp | 44 ++++----------------------------------- 3 files changed, 12 insertions(+), 41 deletions(-) (limited to 'gui/dialogs') diff --git a/gui/dialogs/AccountListDialog.cpp b/gui/dialogs/AccountListDialog.cpp index c685c164..81b39e4c 100644 --- a/gui/dialogs/AccountListDialog.cpp +++ b/gui/dialogs/AccountListDialog.cpp @@ -56,6 +56,8 @@ void AccountListDialog::on_rmAccountBtn_clicked() { QModelIndex selected = selection.first(); m_accounts->removeAccount(selected); + + emit activeAccountChanged(); } } @@ -72,7 +74,9 @@ void AccountListDialog::on_setActiveBtn_clicked() QModelIndex selected = selection.first(); MojangAccountPtr account = selected.data(MojangAccountList::PointerRole).value(); m_accounts->setActiveAccount(account->username()); - } + + emit activeAccountChanged(); + } } void AccountListDialog::on_closeBtnBox_rejected() diff --git a/gui/dialogs/AccountListDialog.h b/gui/dialogs/AccountListDialog.h index 17a50bec..52666e3b 100644 --- a/gui/dialogs/AccountListDialog.h +++ b/gui/dialogs/AccountListDialog.h @@ -47,6 +47,9 @@ slots: // This will be sent when the "close" button is clicked. void on_closeBtnBox_rejected(); +signals: + void activeAccountChanged(); + protected: std::shared_ptr m_accounts; diff --git a/gui/dialogs/LoginDialog.cpp b/gui/dialogs/LoginDialog.cpp index 19c6437d..28bbb1ee 100644 --- a/gui/dialogs/LoginDialog.cpp +++ b/gui/dialogs/LoginDialog.cpp @@ -18,6 +18,7 @@ #include "keyring.h" #include "gui/Platform.h" #include "MultiMC.h" +#include "logic/SkinUtils.h" #include #include @@ -168,47 +169,10 @@ void LoginDialog::userTextChanged(const QString &user) ui->rememberPasswordCheckbox->setChecked(!passwd.isEmpty()); ui->passwordTextBox->setText(passwd); - QByteArray data; - { - auto filename = - MMC->metacache()->resolveEntry("skins", "skins.json")->getFullPath(); - QFile listFile(filename); - if (!listFile.open(QIODevice::ReadOnly)) - return; - data = listFile.readAll(); - } - - QJsonParseError jsonError; - QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &jsonError); - QJsonObject root = jsonDoc.object(); - QJsonObject mappings = root.value("mappings").toObject(); + QPixmap face = SkinUtils::getFaceFromCache(user); + gotFace = !face.isNull(); - if (!mappings[user].isUndefined()) - { - QJsonArray usernames = mappings.value(user).toArray(); - if (!usernames.isEmpty()) - { - QString mapped_username = usernames[0].toString(); - - if (!mapped_username.isEmpty()) - { - QFile fskin(MMC->metacache() - ->resolveEntry("skins", mapped_username + ".png") - ->getFullPath()); - if (fskin.exists()) - { - QPixmap skin(MMC->metacache() - ->resolveEntry("skins", mapped_username + ".png") - ->getFullPath()); - QPixmap face = - skin.copy(8, 8, 8, 8).scaled(48, 48, Qt::KeepAspectRatio); - - ui->lblFace->setPixmap(face); - gotFace = true; - } - } - } - } + if(gotFace) ui->lblFace->setPixmap(face); } ui->lblFace->setVisible(gotFace); -- cgit v1.2.3