9 string format_timestamp(uint64_t pos);
11 PlayersModel::PlayersModel(sqlite3 *db) : db(db)
16 QVariant PlayersModel::headerData(int section, Qt::Orientation orientation, int role) const
18 if (role != Qt::DisplayRole) {
21 if (orientation == Qt::Horizontal) {
24 } else if (section == 1) {
26 } else if (section == 2) {
36 QVariant PlayersModel::data(const QModelIndex &index, int role) const
38 if (role != Qt::DisplayRole) {
41 if (index.column() == 0) {
42 return QString::fromUtf8(players[index.row()].number);
43 } else if (index.column() == 1) {
44 return QString::fromUtf8(players[index.row()].gender);
45 } else if (index.column() == 2) {
46 return QString::fromUtf8(players[index.row()].name);
51 string PlayersModel::get_player_name_by_id(unsigned player_id)
53 auto it = find_if(players.begin(), players.end(), [player_id](const Player &p) { return p.player_id == player_id; });
57 void PlayersModel::load_data()
63 int ret = sqlite3_prepare_v2(db, "SELECT player, number, name, gender FROM player ORDER BY (number+0), number", -1, &stmt, 0);
64 if (ret != SQLITE_OK) {
65 fprintf(stderr, "SELECT prepare: %s\n", sqlite3_errmsg(db));
69 ret = sqlite3_step(stmt);
70 if (ret == SQLITE_ROW) {
72 p.player_id = sqlite3_column_int(stmt, 0);
73 p.number = (const char *)sqlite3_column_text(stmt, 1);
74 p.name = (const char *)sqlite3_column_text(stmt, 2);
75 p.gender = (const char *)sqlite3_column_text(stmt, 3);
77 } else if (ret == SQLITE_DONE) {
80 fprintf(stderr, "SELECT step: %s\n", sqlite3_errmsg(db));
84 ret = sqlite3_finalize(stmt);
85 if (ret != SQLITE_OK) {
86 fprintf(stderr, "SELECT finalize: %s\n", sqlite3_errmsg(db));