QVariant AnimeModel::data(const QModelIndex &index, int role) const { if (index.row() < 0 || index.row() >= m_list.count() || role != Qt::DisplayRole) { return QVariant(); } AnimePtr anime = m_list.at(index.row()); if (index.column() == ListRoles::ID) return anime->id(); if (index.column() == ListRoles::Title) return anime->title(); if (index.column() == ListRoles::RomajiTitle) return anime->titleRomaji(); if (index.column() == ListRoles::JapaneseTitle) return anime->titleJapanese(); if (index.column() == ListRoles::EnglishTitle) return anime->titleEnglish(); if (index.column() == ListRoles::Progress) return QString::number(anime->episodesWatched()) + " / " + QString::number(anime->totalEpisodes()); if (index.column() == ListRoles::Score) return anime->score(); if (index.column() == ListRoles::Status) return User::sharedUser()->trList(anime->listStatus()); if (index.column() == ListRoles::AiringStatus) return User::sharedUser()->trStatus(anime->airingStatus()); if (index.column() == ListRoles::Type) return User::sharedUser()->trType(anime->type()); if (index.column() == ListRoles::Notes) return anime->notes(); return QVariant(); }