MCPcopy Create free account
hub / github.com/FreesmTeam/FreesmLauncher / repopulateAccountsMenu

Method repopulateAccountsMenu

launcher/ui/MainWindow.cpp:617–691  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

615}
616
617void MainWindow::repopulateAccountsMenu()
618{
619 ui->accountsMenu->clear();
620
621 // NOTE: this is done so the accounts button text is not set to the accounts menu title
622 QMenu* accountsButtonMenu = ui->actionAccountsButton->menu();
623 if (accountsButtonMenu) {
624 accountsButtonMenu->clear();
625 } else {
626 accountsButtonMenu = new QMenu(this);
627 ui->actionAccountsButton->setMenu(accountsButtonMenu);
628 }
629
630 auto accounts = APPLICATION->accounts();
631 MinecraftAccountPtr defaultAccount = accounts->defaultAccount();
632
633 QString active_profileId = "";
634 if (defaultAccount) {
635 // this can be called before accountMenuButton exists
636 if (ui->actionAccountsButton) {
637 auto profileLabel = profileInUseFilter(defaultAccount->profileName(), defaultAccount->isInUse());
638 ui->actionAccountsButton->setText(profileLabel);
639 }
640 }
641
642 QActionGroup* accountsGroup = new QActionGroup(this);
643
644 if (accounts->count() <= 0) {
645 ui->actionNoAccountsAdded->setEnabled(false);
646 ui->accountsMenu->addAction(ui->actionNoAccountsAdded);
647 } else {
648 // TODO: Nicer way to iterate?
649 for (int i = 0; i < accounts->count(); i++) {
650 MinecraftAccountPtr account = accounts->at(i);
651 auto profileLabel = profileInUseFilter(account->profileName(), account->isInUse());
652 QAction* action = new QAction(profileLabel, this);
653 action->setData(i);
654 action->setCheckable(true);
655 action->setActionGroup(accountsGroup);
656 if (defaultAccount == account) {
657 action->setChecked(true);
658 }
659
660 auto face = account->getFace();
661 if (!face.isNull()) {
662 action->setIcon(face);
663 } else {
664 action->setIcon(APPLICATION->getThemedIcon("noaccount"));
665 }
666
667 const int highestNumberKey = 9;
668 if (i < highestNumberKey) {
669 action->setShortcut(QKeySequence(tr("Ctrl+%1").arg(i + 1)));
670 }
671
672 ui->accountsMenu->addAction(action);
673 connect(action, SIGNAL(triggered(bool)), SLOT(changeActiveAccount()));
674 }

Callers

nothing calls this directly

Calls 15

profileInUseFilterFunction · 0.85
accountsMethod · 0.80
defaultAccountMethod · 0.80
isInUseMethod · 0.80
setEnabledMethod · 0.80
addActionMethod · 0.80
getFaceMethod · 0.80
getThemedIconMethod · 0.80
addSeparatorMethod · 0.80
clearMethod · 0.45
profileNameMethod · 0.45
setTextMethod · 0.45

Tested by

no test coverage detected