std::vector<Robot*> TeamSelector::getSelectedRobots() const { Team* selectedTeam = getSelectedTeam(); if(selectedTeam) return selectedTeam->getSelectedPlayers(); else { Session::getInstance().log(CRITICAL, "TeamSelector: No team selected."); return std::vector<Robot*>(); } }
void TeamTableView::onTeamDoubleClicked(const QModelIndex& index) { unique_ptr<Team> selectedTeam = getSelectedTeam(); if (selectedTeam == nullptr) return; QString oldName = selectedTeam->getName(); bool isOk = false; while (!isOk) { QString newName = QInputDialog::getText(this, tr("Rename team"), tr("Enter new team name:"), QLineEdit::Normal, oldName, &isOk); if (!isOk) { return; // the user hit cancel } if (newName.isEmpty()) { QMessageBox::critical(this, tr("Rename team"), tr("The new name may not be empty!")); isOk = false; continue; } if (oldName == newName) { return; } // okay, we have a valid name. try to rename the team newName = newName.trimmed(); TeamMngr tm{db}; ERR e = tm.renameTeam(*selectedTeam, newName); if (e == INVALID_NAME) { QMessageBox::critical(this, tr("Rename team"), tr("The name you entered is invalid (e.g., too long)")); isOk = false; continue; } if (e == NAME_EXISTS) { QMessageBox::critical(this, tr("Rename team"), tr("A team of this name already exists")); isOk = false; continue; } } }
void TeamSelector::selectPlayer() { QObject* s = sender(); if(!s) return; int number = -1; for(size_t i = 0; i < selectActions.size(); ++i) if(selectActions[i] == s) number = i; if(number >= 0) { Team* t = getSelectedTeam(); t->setSelectPlayer(number, !t->isPlayerSelected(number)); teamViews[t->number]->update(number); } }