MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / repopulateAccountsMenu

Method repopulateAccountsMenu

launcher/ui/MainWindow.cpp:1317–1407  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1315}
1316
1317void MainWindow::repopulateAccountsMenu()
1318{
1319 accountMenu->clear();
1320 ui->profileMenu->clear();
1321
1322 auto accounts = APPLICATION->accounts();
1323 MinecraftAccountPtr defaultAccount = accounts->defaultAccount();
1324
1325 QString active_profileId = "";
1326 if (defaultAccount)
1327 {
1328 // this can be called before accountMenuButton exists
1329 if (accountMenuButton)
1330 {
1331 auto profileLabel = profileInUseFilter(defaultAccount->profileName(), defaultAccount->isInUse());
1332 accountMenuButton->setText(profileLabel);
1333 }
1334 }
1335
1336 if (accounts->count() <= 0)
1337 {
1338 ui->all_actions.removeAll(&ui->actionNoAccountsAdded);
1339 ui->actionNoAccountsAdded = TranslatedAction(this);
1340 ui->actionNoAccountsAdded->setObjectName(QStringLiteral("actionNoAccountsAdded"));
1341 ui->actionNoAccountsAdded.setTextId(QT_TRANSLATE_NOOP("MainWindow", "No accounts added!"));
1342 ui->actionNoAccountsAdded->setEnabled(false);
1343 accountMenu->addAction(ui->actionNoAccountsAdded);
1344 ui->profileMenu->addAction(ui->actionNoAccountsAdded);
1345 ui->all_actions.append(&ui->actionNoAccountsAdded);
1346 }
1347 else
1348 {
1349 // TODO: Nicer way to iterate?
1350 for (int i = 0; i < accounts->count(); i++)
1351 {
1352 MinecraftAccountPtr account = accounts->at(i);
1353 auto profileLabel = profileInUseFilter(account->profileName(), account->isInUse());
1354 QAction *action = new QAction(profileLabel, this);
1355 action->setData(i);
1356 action->setCheckable(true);
1357 if (defaultAccount == account)
1358 {
1359 action->setChecked(true);
1360 }
1361
1362 auto face = account->getFace();
1363 if(!face.isNull()) {
1364 action->setIcon(face);
1365 }
1366 else {
1367 action->setIcon(APPLICATION->getThemedIcon("noaccount"));
1368 }
1369
1370 const int highestNumberKey = 9;
1371 if(i<highestNumberKey)
1372 {
1373 action->setShortcut(QKeySequence(tr("Ctrl+%1").arg(i + 1)));
1374 }

Callers

nothing calls this directly

Calls 15

profileInUseFilterFunction · 0.85
accountsMethod · 0.80
defaultAccountMethod · 0.80
isInUseMethod · 0.80
setTextIdMethod · 0.80
setEnabledMethod · 0.80
addActionMethod · 0.80
appendMethod · 0.80
getFaceMethod · 0.80
getThemedIconMethod · 0.80
addSeparatorMethod · 0.80
clearMethod · 0.45

Tested by

no test coverage detected