return buf;
}
-MainWindow::MainWindow()
+MainWindow::MainWindow(EventsModel *events) : events(events)
{
player = new QMediaPlayer;
//player->setSource(QUrl::fromLocalFile("/home/sesse/dev/stats/ultimate.mkv"));
ui = new Ui::MainWindow;
ui->setupUi(this);
+ ui->event_view->setModel(events);
+ connect(ui->event_view->selectionModel(), &QItemSelectionModel::currentRowChanged,
+ [this, events](const QModelIndex ¤t, const QModelIndex &previous) {
+ player->setPosition(events->get_time(current.row()));
+ });
+
connect(player, &QMediaPlayer::positionChanged, [this](uint64_t pos) {
position_changed(pos);
});
update_status();
}
-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)
{
int64_t current_pos = buffered_seek ? *buffered_seek : player->position();
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->selectRow(events->insert_event(player->position(), button_id));
ui->event_view->selectionModel()->blockSignals(false);
}
return;
}
int row = select->selectedRows().front().row(); // Should only be one, due to our selection behavior.
- model->set_event_type(row, type);
+ events->set_event_type(row, type);
update_status();
}
}
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);
+ events->delete_event(row);
ui->event_view->selectionModel()->blockSignals(false);
update_status();
}
void MainWindow::update_status()
{
- EventsModel::Status s = model->get_status_at(player->position());
+ EventsModel::Status s = events->get_status_at(player->position());
char buf[256];
snprintf(buf, sizeof(buf), "%d–%d | %s | %d passes, %d sec possession",
s.our_score, s.their_score, s.offense ? "offense" : "defense", s.num_passes, s.possession_sec);
QApplication app(argc, argv);
sqlite3 *db = open_db("ultimate.db");
- MainWindow mainWindow;
- mainWindow.setModel(new EventsModel(db));
+ MainWindow mainWindow(new EventsModel(db));
mainWindow.resize(QSize(1280, 720));
mainWindow.show();