+void MainWindow::formation_double_clicked(bool offense, unsigned row)
+{
+ FormationsModel *formations = offense ? offensive_formations : defensive_formations;
+ int id = formations->get_formation_id(row);
+ if (id == -1) { // “Add new” clicked.
+ bool ok;
+ QString new_formation_str = QInputDialog::getText(this, "New formation", "Choose name for new formation:", QLineEdit::Normal, "", &ok);
+ if (!ok || new_formation_str.isEmpty()) {
+ return;
+ }
+
+ id = formations->insert_new(new_formation_str.toStdString());
+ QListView *view = offense ? ui->offensive_formation_view : ui->defensive_formation_view;
+ view->selectionModel()->select(formations->index(formations->get_row_from_id(id), 0), QItemSelectionModel::ClearAndSelect);
+ events->inserted_new_formation(id, new_formation_str.toStdString());
+ } else {
+ events->set_formation_at(video->position(), offense, id);
+ }
+}
+