// 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->stoppage, &QPushButton::clicked, [this, events]() {
+ EventsModel::Status s = events->get_status_at(video->position());
+ if (s.stoppage) {
+ insert_noplayer_event("restart");
+ } else {
+ insert_noplayer_event("stoppage");
+ }
+ });
connect(ui->unknown, &QPushButton::clicked, [this]() { insert_noplayer_event("unknown"); });
QShortcut *key_delete = new QShortcut(QKeySequence(Qt::Key_Delete), this);
ui->event_view->selectRow(events->insert_event(t, player_id));
}
ui->event_view->selectionModel()->blockSignals(false);
+
+ update_ui_from_time(t);
}
void MainWindow::insert_noplayer_event(const string &type)
ui->event_view->selectionModel()->blockSignals(true);
ui->event_view->selectRow(events->insert_event(t, nullopt, type));
ui->event_view->selectionModel()->blockSignals(false);
+
+ update_ui_from_time(t);
}
void MainWindow::set_current_event_type(const string &type)
void MainWindow::update_action_buttons(uint64_t t)
{
EventsModel::Status s = events->get_status_at(t);
+
bool has_selection = false;
bool has_selection_with_player = false;
int row = select->selectedRows().front().row(); // Should only be one, due to our selection behavior.
has_selection_with_player = events->get_player_id(row).has_value();
}
+ ui->delete_->setEnabled(has_selection);
+
+ if (s.stoppage) {
+ ui->stoppage->setText("Restart (&v)");
+ ui->stoppage->setShortcut(QCoreApplication::translate("MainWindow", "V", nullptr));
+ ui->catch_->setEnabled(false);
+ ui->throwaway->setEnabled(false);
+ ui->drop->setEnabled(false);
+ ui->goal->setEnabled(false);
+ ui->offensive_soft_plus->setEnabled(false);
+ ui->offensive_soft_minus->setEnabled(false);
+ ui->pull->setEnabled(false);
+ ui->pull_landed->setEnabled(false);
+ ui->interception->setEnabled(false);
+ ui->their_throwaway->setEnabled(false);
+ ui->our_defense->setEnabled(false);
+ ui->their_goal->setEnabled(false);
+ ui->defensive_soft_plus->setEnabled(false);
+ ui->defensive_soft_minus->setEnabled(false);
+ ui->their_pull->setEnabled(false);
+ ui->our_foul->setEnabled(false);
+ return;
+ } else {
+ ui->stoppage->setText("Stoppage (&v)");
+ ui->stoppage->setShortcut(QCoreApplication::translate("MainWindow", "V", nullptr));
+ }
ui->catch_->setEnabled(s.offense && has_selection_with_player);
ui->throwaway->setEnabled(s.offense && has_selection_with_player);
ui->defensive_soft_minus->setEnabled(!s.offense && has_selection_with_player);
ui->their_pull->setEnabled(!s.offense);
ui->our_foul->setEnabled(!s.offense && has_selection_with_player);
-
- ui->delete_->setEnabled(has_selection);
}
sqlite3 *open_db(const char *filename)