From 70973d111a35c65072b9431420d3d854bd82e8f5 Mon Sep 17 00:00:00 2001 From: Sky Date: Wed, 27 Nov 2013 22:47:15 +0000 Subject: [PATCH] Use player face in accounts dropdown, grab all valid account skins on startup --- gui/MainWindow.cpp | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp index 5295a8a5b..2917bf953 100644 --- a/gui/MainWindow.cpp +++ b/gui/MainWindow.cpp @@ -191,23 +191,29 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi ui->mainToolBar->addAction(accountMenuButtonAction); - MojangAccountPtr account = MMC->accounts()->activeAccount(); - if(account != nullptr) + std::shared_ptr accounts = MMC->accounts(); + + // TODO: Nicer way to iterate? + for(int i = 0; i < accounts->count(); i++) { - auto job = new NetJob("Startup player skins: " + account->username()); - - for(AccountProfile profile : account->profiles()) + MojangAccountPtr account = accounts->at(i); + if(account != nullptr) { - auto meta = MMC->metacache()->resolveEntry("skins", profile.name() + ".png"); - auto action = CacheDownload::make( - QUrl("http://skins.minecraft.net/MinecraftSkins/" + profile.name() + ".png"), - meta); - job->addNetAction(action); - meta->stale = true; - } + auto job = new NetJob("Startup player skins: " + account->username()); - connect(job, SIGNAL(succeeded()), SLOT(activeAccountChanged())); - job->start(); + for(AccountProfile profile : account->profiles()) + { + auto meta = MMC->metacache()->resolveEntry("skins", profile.name() + ".png"); + auto action = CacheDownload::make( + QUrl("http://skins.minecraft.net/MinecraftSkins/" + profile.name() + ".png"), + meta); + job->addNetAction(action); + meta->stale = true; + } + + connect(job, SIGNAL(succeeded()), SLOT(activeAccountChanged())); + job->start(); + } } // run the things that load and download other things... FIXME: this is NOT the place @@ -285,6 +291,7 @@ void MainWindow::repopulateAccountsMenu() action->setChecked(true); } + action->setIcon(SkinUtils::getFaceFromCache(profile.name())); accountMenu->addAction(action); connect(action, SIGNAL(triggered(bool)), SLOT(changeActiveAccount())); }