Пример #1
0
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();
}