//emit dataChanged(QModelIndex(
}
-int EventsModel::insert_event(uint64_t t, int player_id)
+unsigned 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);
+ unsigned pos = distance(events.begin(), it);
beginInsertRows(QModelIndex(), pos, pos);
Event e;
return pos;
}
+void EventsModel::delete_event(unsigned pos)
+{
+ int event_id = events[pos].event_id;
+
+ beginRemoveRows(QModelIndex(), pos, pos);
+ events.erase(events.begin() + pos);
+ endRemoveRows();
+
+ // Delete the row from the database.
+ sqlite3_stmt *stmt;
+ int ret = sqlite3_prepare_v2(db, "DELETE FROM event WHERE event=?", -1, &stmt, 0);
+ if (ret != SQLITE_OK) {
+ fprintf(stderr, "DELETE prepare: %s\n", sqlite3_errmsg(db));
+ abort();
+ }
+
+ sqlite3_bind_int64(stmt, 1, event_id);
+
+ ret = sqlite3_step(stmt);
+ if (ret == SQLITE_ROW) {
+ fprintf(stderr, "DELETE step: %s\n", sqlite3_errmsg(db));
+ abort();
+ }
+
+ ret = sqlite3_finalize(stmt);
+ if (ret != SQLITE_OK) {
+ fprintf(stderr, "DELETE finalize: %s\n", sqlite3_errmsg(db));
+ abort();
+ }
+}
+
void EventsModel::set_event_type(unsigned pos, const string &type)
{
events[pos].type = type;