if (m_type != Root)
return;
- itemData << "Title" << "Episode / Version" << "Rating / Quality" << "Vote";
+ itemData << "Title" << "Episode / Version" << "Rating / Quality" << "Vote" << "Watched";
}
qDebug() << "fetching some more for" << m_id;
QSqlQuery q(LocalMyList::instance()->database()->connection());
- if (!q.exec("SELECT aid, title_romaji AS title, (SELECT COUNT(e.eid) FROM episode e WHERE e.aid = a.aid), rating, my_vote FROM anime a ORDER BY title ASC "
+ if (!q.exec("SELECT aid, title_romaji AS title, (SELECT COUNT(e.eid) FROM episode e WHERE e.aid = a.aid), rating, my_vote, (SELECT COUNT(DISTINCT f.eid) FROM episode e JOIN file f ON (f.eid = e.eid) WHERE e.aid = a.aid AND f.my_watched IS NOT NULL) FROM anime a ORDER BY title ASC "
"LIMIT " + QString::number(LIMIT) + " "
"OFFSET " + QString::number(childCount())))
return 0;
data << q.value(1) << q.value(2)
<< (q.value(3).toDouble() < 1 ? "n/a" : QString::number(q.value(3).toDouble(), 'f', 2))
- << (q.value(4).toDouble() < 1 ? "n/a" : QString::number(q.value(4).toDouble(), 'f', 2));
+ << (q.value(4).toDouble() < 1 ? "n/a" : QString::number(q.value(4).toDouble(), 'f', 2))
+ << QObject::tr("%1 of %2").arg(q.value(5).toInt()).arg(q.value(2).toInt());
childItems << new MyListAnimeNode(id, data, this);
}
return q.size();
qDebug() << "fetching some more for aid" << m_id;
QSqlQuery q(LocalMyList::instance()->database()->connection());
- if (!q.exec("SELECT eid, title_english, epno, rating, my_vote FROM episode WHERE aid = " + QString::number(m_id)
+ if (!q.exec("SELECT eid, title_english, epno, rating, my_vote, (SELECT MIN(my_watched) FROM file WHERE eid = episode.eid AND my_watched IS NOT NULL) AS my_watched FROM episode WHERE aid = " + QString::number(m_id)
+ " ORDER BY epno ASC "
"LIMIT " + QString::number(LIMIT) + " "
"OFFSET " + QString::number(childCount())))
QVariantList data;
data << q.value(1) << q.value(2)
<< (q.value(3).toDouble() < 1 ? "n/a" : QString::number(q.value(3).toDouble(), 'f', 2))
- << (q.value(4).toDouble() < 1 ? "n/a" : QString::number(q.value(4).toDouble(), 'f', 2));
+ << (q.value(4).toDouble() < 1 ? "n/a" : QString::number(q.value(4).toDouble(), 'f', 2))
+ << (q.value(5).toDateTime().isValid() ? QObject::tr("Yes, on %1").arg(q.value(5).toDateTime().toString()) : QObject::tr("No"));
childItems << new MyListEpisodeNode(id, data, this);
}
qDebug() << "fetching some more for eid" << m_id;
QSqlQuery q(LocalMyList::instance()->database()->connection());
- if (!q.exec("SELECT fid, group_name, version, quality FROM file WHERE eid = " + QString::number(m_id)))
+ if (!q.exec("SELECT fid, group_name, version, quality, my_watched FROM file WHERE eid = " + QString::number(m_id)))
return 0;
while (q.next())
{
int id = q.value(0).toInt();
QVariantList data;
- data << q.value(1) << "v" + q.value(2).toString() << q.value(3);
+ data << q.value(1) << "v" + q.value(2).toString() << q.value(3) << ""
+ << (q.value(4).toDateTime().isValid() ? QObject::tr("Yes, on %1").arg(q.value(4).toDateTime().toString()) : QObject::tr("No"));
childItems << new MyListFileNode(id, data, this);
}