| 1315 | } |
| 1316 | |
| 1317 | void 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 | } |
nothing calls this directly
no test coverage detected