4 #include "formations.h"
8 FormationsModel::FormationsModel(sqlite3 *db, bool offense) : db(db), offense(offense)
13 QVariant FormationsModel::headerData(int section, Qt::Orientation orientation, int role) const
15 if (role != Qt::DisplayRole) {
18 if (orientation == Qt::Horizontal) {
29 QVariant FormationsModel::data(const QModelIndex &index, int role) const
31 if (role == Qt::TextAlignmentRole) {
32 return (Qt::AlignLeft | Qt::AlignVCenter).toInt();
34 if (role != Qt::DisplayRole) {
37 if (index.column() == 0) {
38 if (index.row() == 0) {
39 return QString::fromUtf8("(None/unknown)");
40 } else if (index.row() == formations.size() + 1) {
41 return QString::fromUtf8("Add new…");
43 return QString::fromUtf8(formations[index.row() - 1].name);
49 void FormationsModel::load_data()
53 // Read the formations.
55 int ret = sqlite3_prepare_v2(db, "SELECT formation, name FROM formation WHERE offense=? ORDER BY name", -1, &stmt, 0);
56 if (ret != SQLITE_OK) {
57 fprintf(stderr, "SELECT prepare: %s\n", sqlite3_errmsg(db));
60 sqlite3_bind_int(stmt, 1, offense);
62 ret = sqlite3_step(stmt);
63 if (ret == SQLITE_ROW) {
65 f.formation_id = sqlite3_column_int(stmt, 0);
66 f.name = (const char *)sqlite3_column_text(stmt, 1);
67 formations.push_back(f);
68 } else if (ret == SQLITE_DONE) {
71 fprintf(stderr, "SELECT step: %s\n", sqlite3_errmsg(db));
75 ret = sqlite3_finalize(stmt);
76 if (ret != SQLITE_OK) {
77 fprintf(stderr, "SELECT finalize: %s\n", sqlite3_errmsg(db));