X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=events.cpp;h=0a50f3b26de7b5d7c6ce7985ba2de3aa076da3a9;hb=1f701edba5013eedf60558b568b3c72ab81a2c08;hp=cbdb30344e21e2c221b0ae7a7ca7cbba8e76dc08;hpb=812ca0c734b4b297a5d6be8c171863491568e787;p=pkanalytics diff --git a/events.cpp b/events.cpp index cbdb303..0a50f3b 100644 --- a/events.cpp +++ b/events.cpp @@ -295,6 +295,34 @@ void EventsModel::set_event_type(unsigned pos, const string &type) } } +void EventsModel::set_event_formation(unsigned pos, int formation_id) +{ + events[pos].formation_id = formation_id; + emit dataChanged(createIndex(pos, 0), createIndex(pos, 2)); + + sqlite3_stmt *stmt; + int ret = sqlite3_prepare_v2(db, "UPDATE event SET formation=? WHERE event=?", -1, &stmt, 0); + if (ret != SQLITE_OK) { + fprintf(stderr, "INSERT prepare: %s\n", sqlite3_errmsg(db)); + abort(); + } + + sqlite3_bind_int64(stmt, 1, formation_id); + sqlite3_bind_int64(stmt, 2, events[pos].event_id); + + ret = sqlite3_step(stmt); + if (ret == SQLITE_ROW) { + fprintf(stderr, "UPDATE step: %s\n", sqlite3_errmsg(db)); + abort(); + } + + ret = sqlite3_finalize(stmt); + if (ret != SQLITE_OK) { + fprintf(stderr, "UPDATE finalize: %s\n", sqlite3_errmsg(db)); + abort(); + } +} + unsigned EventsModel::get_last_event_pos(uint64_t t) const { // upper_bound() gives first where e.t > t,