Move "manage accounts" to right, use player skin when available
This commit is contained in:
@ -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<MojangAccountPtr>();
|
||||
m_accounts->setActiveAccount(account->username());
|
||||
}
|
||||
|
||||
emit activeAccountChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void AccountListDialog::on_closeBtnBox_rejected()
|
||||
|
@ -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<MojangAccountList> m_accounts;
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include "keyring.h"
|
||||
#include "gui/Platform.h"
|
||||
#include "MultiMC.h"
|
||||
#include "logic/SkinUtils.h"
|
||||
|
||||
#include <QFile>
|
||||
#include <QJsonObject>
|
||||
@ -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();
|
||||
}
|
||||
QPixmap face = SkinUtils::getFaceFromCache(user);
|
||||
gotFace = !face.isNull();
|
||||
|
||||
QJsonParseError jsonError;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &jsonError);
|
||||
QJsonObject root = jsonDoc.object();
|
||||
QJsonObject mappings = root.value("mappings").toObject();
|
||||
|
||||
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);
|
||||
|
Reference in New Issue
Block a user