if (section == 0) {
return "#";
} else if (section == 1) {
+ return ""; // Gender
+ } else if (section == 2) {
return "Name";
} else {
return QVariant();
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 == int(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();
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;