void MainWindow::insert_event(int button_id)
{
+ uint64_t t = video->position();
+ set<int> team = events->get_team_at(t);
+ if (button_id >= team.size()) {
+ return;
+ }
+ int player_id = *next(team.begin(), button_id - 1);
+
ui->event_view->selectionModel()->blockSignals(true);
- ui->event_view->selectRow(events->insert_event(video->position(), button_id));
+ ui->event_view->selectRow(events->insert_event(t, player_id));
ui->event_view->selectionModel()->blockSignals(false);
}
void MainWindow::update_status()
{
- EventsModel::Status s = events->get_status_at(video->position());
+ uint64_t t = video->position();
+ EventsModel::Status s = events->get_status_at(t);
char buf[256];
snprintf(buf, sizeof(buf), "%d–%d | %s | %d passes, %d sec possession",
s.our_score, s.their_score, s.offense ? "offense" : "defense", s.num_passes, s.possession_sec);
ui->status->setText(buf);
+
+ // FIXME: sort by number, instead of by internal ID
+ QPushButton *buttons[] = {
+ ui->player_1,
+ ui->player_2,
+ ui->player_3,
+ ui->player_4,
+ ui->player_5,
+ ui->player_6,
+ ui->player_7
+ };
+ const char shortcuts[] = "qweasdf";
+ int num_players = 0;
+ for (int player_id : events->get_team_at(t)) {
+ QPushButton *btn = buttons[num_players];
+ string label = players->get_player_name_by_id(player_id) + " (&" + shortcuts[num_players] + ")";
+ char shortcut[2] = "";
+ shortcut[0] = toupper(shortcuts[num_players]);
+ btn->setText(QString::fromUtf8(label));
+ btn->setShortcut(QCoreApplication::translate("MainWindow", shortcut, nullptr));
+ btn->setEnabled(true);
+ if (++num_players == 7) {
+ break;
+ }
+ }
+ for (int i = num_players; i < 7; ++i) {
+ QPushButton *btn = buttons[i];
+ btn->setText("No player");
+ btn->setEnabled(false);
+ }
}
sqlite3 *open_db(const char *filename)