]> git.sesse.net Git - pkanalytics/blobdiff - mainwindow.cpp
Goals were double-counted as touches.
[pkanalytics] / mainwindow.cpp
index bb6883f7cf58918f50f4e1e6f0a8c7c7ce77140a..74b6eed5f58cdfa0b61523b958b91782196a0955 100644 (file)
@@ -12,6 +12,7 @@
 #include <optional>
 #include <sqlite3.h>
 #include "mainwindow.h"
+#include "edit_player_dialog.h"
 #include "ui_mainwindow.h"
 #include "events.h"
 #include "players.h"
@@ -344,6 +345,9 @@ MainWindow::MainWindow(EventsModel *events, PlayersModel *players,
        connect(ui->clear_player_list, &QPushButton::clicked, [this] {
                ui->player_view->selectionModel()->clear();
        });
+       connect(ui->player_view, &QTableView::doubleClicked, [this](const QModelIndex &index) {
+               open_edit_player_dialog(index.row());
+       });
        connect(ui->player_view->selectionModel(), &QItemSelectionModel::selectionChanged, [this] {
                update_gender_ratio(ui->video->get_position());
        });
@@ -895,3 +899,19 @@ void MainWindow::formation_double_clicked(bool offense, unsigned row)
        update_ui_from_time(ui->video->get_position());
 }
 
+void MainWindow::open_edit_player_dialog(unsigned row)
+{
+       int player_id = players->get_player_id(row);
+       string number = players->get_player_number(row);
+       string gender = players->get_player_gender(row);
+       string name = players->get_player_name(row);
+
+       EditPlayerDialog *dialog = new EditPlayerDialog(number, gender, name);
+       connect(dialog, &QDialog::finished, [this, dialog, player_id](int result) {
+               if (result == QDialog::Accepted) {
+                       players->edit_player(player_id, dialog->number(), dialog->gender(), dialog->name());
+                       update_ui_from_time(ui->video->get_position());
+               }
+       });
+       dialog->show();
+}