QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
QVariant data(const QModelIndex &index, int role) const override;
+ int insert_event(uint64_t t, int player_id);
+
private:
struct Player {
int player_id;
//emit dataChanged(QModelIndex(
}
+int EventsModel::insert_event(uint64_t t, int player_id)
+{
+ auto it = lower_bound(events.begin(), events.end(), t,
+ [](const Event &e, uint64_t t) { return e.t < t; });
+ int pos = distance(events.begin(), it);
+ beginInsertRows(QModelIndex(), pos, pos + 1);
+
+ Event e;
+ e.t = t;
+ e.player_id = player_id;
+ e.type = "unknown";
+ events.insert(events.begin() + pos, e);
+
+ endInsertRows();
+
+ // FIXME sqlite
+
+ return pos;
+}
+
MainWindow::MainWindow()
{
player = new QMediaPlayer;
// Needs to be set anew when we modify setText(), evidently.
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));
+ });
}
-void MainWindow::setModel(QAbstractItemModel *model)
+void MainWindow::setModel(EventsModel *model)
{
ui->event_view->setModel(model);
+ this->model = model;
}
void MainWindow::seek(int64_t delta_ms)