diff options
Diffstat (limited to 'gui/MainWindow.cpp')
-rw-r--r-- | gui/MainWindow.cpp | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp index 5295a8a5..2917bf95 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) - { - auto job = new NetJob("Startup player skins: " + account->username()); + std::shared_ptr<MojangAccountList> accounts = MMC->accounts(); - for(AccountProfile profile : account->profiles()) + // TODO: Nicer way to iterate? + for(int i = 0; i < accounts->count(); i++) + { + 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())); } |