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