connect(ui->player_6, &QPushButton::clicked, [this]() { insert_event(6); });
connect(ui->player_7, &QPushButton::clicked, [this]() { insert_event(7); });
+ // Offensive events
// TODO: disable if nothing is selected
connect(ui->catch_, &QPushButton::clicked, [this]() { set_current_event_type("catch"); });
connect(ui->throwaway, &QPushButton::clicked, [this]() { set_current_event_type("throwaway"); });
connect(ui->pull, &QPushButton::clicked, [this]() { set_current_event_type("pull"); });
connect(ui->pull_landed, &QPushButton::clicked, [this]() { set_current_event_type("pull_landed"); });
+ // Defensive events (TODO add more)
+ connect(ui->their_throwaway, &QPushButton::clicked, [this]() { insert_noplayer_event("their_throwaway"); });
+ connect(ui->their_goal, &QPushButton::clicked, [this]() { insert_noplayer_event("their_goal"); });
+ connect(ui->their_pull, &QPushButton::clicked, [this]() { insert_noplayer_event("their_pull"); });
+ connect(ui->our_defense, &QPushButton::clicked, [this]() { set_current_event_type("defense"); }); // TODO: player-connected
+ connect(ui->defensive_soft_plus, &QPushButton::clicked, [this]() { set_current_event_type("defensive_soft_plus"); }); // TODO: player-connected
+ connect(ui->defensive_soft_minus, &QPushButton::clicked, [this]() { set_current_event_type("defensive_soft_minus"); }); // TODO: player-connected
+
+ // Misc. events
connect(ui->substitution, &QPushButton::clicked, [this]() { make_substitution(); });
+ connect(ui->stoppage, &QPushButton::clicked, [this]() { insert_noplayer_event("stoppage"); }); // FIXME needs a way to restart
+ connect(ui->unknown, &QPushButton::clicked, [this]() { insert_noplayer_event("unknown"); });
QShortcut *key_delete = new QShortcut(QKeySequence(Qt::Key_Delete), this);
connect(key_delete, &QShortcut::activated, [this]() { ui->delete_->animateClick(); });
{
uint64_t t = video->position();
set<int> team = events->get_team_at(t);
- if (button_id >= team.size()) {
+ if (button_id > team.size()) {
return;
}
int player_id = *next(team.begin(), button_id - 1);
ui->event_view->selectionModel()->blockSignals(false);
}
+void MainWindow::insert_noplayer_event(const string &type)
+{
+ uint64_t t = video->position();
+
+ ui->event_view->selectionModel()->blockSignals(true);
+ ui->event_view->selectRow(events->insert_event(t, nullopt, type));
+ ui->event_view->selectionModel()->blockSignals(false);
+}
+
void MainWindow::set_current_event_type(const string &type)
{
QItemSelectionModel *select = ui->event_view->selectionModel();