X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=main.cpp;h=0f66603d015e600d520080393816652d3f598cf8;hb=b43930ea43a1ddd27d607b859a8539edc61bb994;hp=460ddd8dc6aff2329520aaf40417f814e986b021;hpb=d07e18691a504a8dfeb77613dfd2894047807bfe;p=pkanalytics diff --git a/main.cpp b/main.cpp index 460ddd8..0f66603 100644 --- a/main.cpp +++ b/main.cpp @@ -71,27 +71,13 @@ MainWindow::MainWindow() ui->play_pause->setShortcut(QCoreApplication::translate("MainWindow", "Space", nullptr)); }); - connect(ui->player_1, &QPushButton::clicked, [this]() { - ui->event_view->selectRow(model->insert_event(player->position(), 1)); - }); - connect(ui->player_2, &QPushButton::clicked, [this]() { - ui->event_view->selectRow(model->insert_event(player->position(), 2)); - }); - connect(ui->player_3, &QPushButton::clicked, [this]() { - ui->event_view->selectRow(model->insert_event(player->position(), 3)); - }); - connect(ui->player_4, &QPushButton::clicked, [this]() { - ui->event_view->selectRow(model->insert_event(player->position(), 4)); - }); - connect(ui->player_5, &QPushButton::clicked, [this]() { - ui->event_view->selectRow(model->insert_event(player->position(), 5)); - }); - connect(ui->player_6, &QPushButton::clicked, [this]() { - ui->event_view->selectRow(model->insert_event(player->position(), 6)); - }); - connect(ui->player_7, &QPushButton::clicked, [this]() { - ui->event_view->selectRow(model->insert_event(player->position(), 7)); - }); + connect(ui->player_1, &QPushButton::clicked, [this]() { insert_event(1); }); + connect(ui->player_2, &QPushButton::clicked, [this]() { insert_event(2); }); + connect(ui->player_3, &QPushButton::clicked, [this]() { insert_event(3); }); + connect(ui->player_4, &QPushButton::clicked, [this]() { insert_event(4); }); + connect(ui->player_5, &QPushButton::clicked, [this]() { insert_event(5); }); + connect(ui->player_6, &QPushButton::clicked, [this]() { insert_event(6); }); + connect(ui->player_7, &QPushButton::clicked, [this]() { insert_event(7); }); // TODO: disable if nothing is selected connect(ui->catch_, &QPushButton::clicked, [this]() { set_current_event_type("catch"); }); @@ -125,6 +111,10 @@ void MainWindow::setModel(EventsModel *model) { ui->event_view->setModel(model); this->model = model; + connect(ui->event_view->selectionModel(), &QItemSelectionModel::currentRowChanged, + [this, model](const QModelIndex ¤t, const QModelIndex &previous) { + player->setPosition(model->get_time(current.row())); + }); } void MainWindow::seek(int64_t delta_ms) @@ -138,6 +128,13 @@ void MainWindow::seek(int64_t delta_ms) } } +void MainWindow::insert_event(int button_id) +{ + ui->event_view->selectionModel()->blockSignals(true); + ui->event_view->selectRow(model->insert_event(player->position(), button_id)); + ui->event_view->selectionModel()->blockSignals(false); +} + void MainWindow::set_current_event_type(const string &type) { QItemSelectionModel *select = ui->event_view->selectionModel(); @@ -156,7 +153,9 @@ void MainWindow::delete_current_event() return; } int row = select->selectedRows().front().row(); // Should only be one, due to our selection behavior. + ui->event_view->selectionModel()->blockSignals(true); model->delete_event(row); + ui->event_view->selectionModel()->blockSignals(false); update_status(); }