| 1023 | } |
| 1024 | |
| 1025 | void MainWindow::repopulateAccountsMenu() |
| 1026 | { |
| 1027 | accountMenu->clear(); |
| 1028 | |
| 1029 | auto accounts = APPLICATION->accounts(); |
| 1030 | MinecraftAccountPtr defaultAccount = accounts->defaultAccount(); |
| 1031 | |
| 1032 | QString active_profileId = ""; |
| 1033 | if (defaultAccount) |
| 1034 | { |
| 1035 | // this can be called before accountMenuButton exists |
| 1036 | if (accountMenuButton) |
| 1037 | { |
| 1038 | auto profileLabel = profileInUseFilter(defaultAccount->profileName(), defaultAccount->isInUse()); |
| 1039 | accountMenuButton->setText(profileLabel); |
| 1040 | } |
| 1041 | } |
| 1042 | |
| 1043 | if (accounts->count() <= 0) |
| 1044 | { |
| 1045 | QAction *action = new QAction(tr("No accounts added!"), this); |
| 1046 | action->setEnabled(false); |
| 1047 | accountMenu->addAction(action); |
| 1048 | } |
| 1049 | else |
| 1050 | { |
| 1051 | // TODO: Nicer way to iterate? |
| 1052 | for (int i = 0; i < accounts->count(); i++) |
| 1053 | { |
| 1054 | MinecraftAccountPtr account = accounts->at(i); |
| 1055 | auto profileLabel = profileInUseFilter(account->profileName(), account->isInUse()); |
| 1056 | QAction *action = new QAction(profileLabel, this); |
| 1057 | action->setData(i); |
| 1058 | action->setCheckable(true); |
| 1059 | if (defaultAccount == account) |
| 1060 | { |
| 1061 | action->setChecked(true); |
| 1062 | } |
| 1063 | |
| 1064 | auto face = account->getFace(); |
| 1065 | if(!face.isNull()) { |
| 1066 | action->setIcon(face); |
| 1067 | } |
| 1068 | else { |
| 1069 | action->setIcon(APPLICATION->getThemedIcon("noaccount")); |
| 1070 | } |
| 1071 | accountMenu->addAction(action); |
| 1072 | connect(action, SIGNAL(triggered(bool)), SLOT(changeActiveAccount())); |
| 1073 | } |
| 1074 | } |
| 1075 | |
| 1076 | accountMenu->addSeparator(); |
| 1077 | |
| 1078 | QAction *action = new QAction(tr("No Default Account"), this); |
| 1079 | action->setCheckable(true); |
| 1080 | action->setIcon(APPLICATION->getThemedIcon("noaccount")); |
| 1081 | action->setData(-1); |
| 1082 | if (!defaultAccount) { |
nothing calls this directly
no test coverage detected