X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=players.cpp;h=1854408d1bac295bce03337b5e4e28405375a721;hb=415442b56355392b207551b2cc84e663d8d7f914;hp=fce3f7c30e010d2a5172becac07ad9720ab92b1e;hpb=88759450f6435024a0952783046d10cffffe7f88;p=pkanalytics diff --git a/players.cpp b/players.cpp index fce3f7c..1854408 100644 --- a/players.cpp +++ b/players.cpp @@ -22,6 +22,8 @@ QVariant PlayersModel::headerData(int section, Qt::Orientation orientation, int if (section == 0) { return "#"; } else if (section == 1) { + return ""; // Gender + } else if (section == 2) { return "Name"; } else { return QVariant(); @@ -33,24 +35,41 @@ QVariant PlayersModel::headerData(int section, Qt::Orientation orientation, int QVariant PlayersModel::data(const QModelIndex &index, int role) const { + if (role == Qt::TextAlignmentRole) { + if (index.column() == 0) { + return (Qt::AlignHCenter | Qt::AlignVCenter).toInt(); + } else if (index.column() == 1) { + return (Qt::AlignHCenter | Qt::AlignVCenter).toInt(); + } else { + return (Qt::AlignLeft | Qt::AlignVCenter).toInt(); + } + } if (role != Qt::DisplayRole) { return QVariant(); } if (index.column() == 0) { return QString::fromUtf8(players[index.row()].number); } else if (index.column() == 1) { + return QString::fromUtf8(players[index.row()].gender); + } else if (index.column() == 2) { return QString::fromUtf8(players[index.row()].name); } return QVariant(); } +string PlayersModel::get_player_name_by_id(unsigned player_id) +{ + auto it = find_if(players.begin(), players.end(), [player_id](const Player &p) { return p.player_id == player_id; }); + return it->name; +} + void PlayersModel::load_data() { players.clear(); // Read the players. sqlite3_stmt *stmt; - int ret = sqlite3_prepare_v2(db, "SELECT player, number, name FROM player ORDER BY (number+0), number", -1, &stmt, 0); + int ret = sqlite3_prepare_v2(db, "SELECT player, number, name, gender FROM player ORDER BY (number+0), number", -1, &stmt, 0); if (ret != SQLITE_OK) { fprintf(stderr, "SELECT prepare: %s\n", sqlite3_errmsg(db)); abort(); @@ -61,7 +80,8 @@ void PlayersModel::load_data() Player p; p.player_id = sqlite3_column_int(stmt, 0); p.number = (const char *)sqlite3_column_text(stmt, 1); - p.name = (const char *) sqlite3_column_text(stmt, 2); + p.name = (const char *)sqlite3_column_text(stmt, 2); + p.gender = (const char *)sqlite3_column_text(stmt, 3); players.push_back(p); } else if (ret == SQLITE_DONE) { break;