From: APTX Date: Mon, 11 Jun 2012 12:42:17 +0000 (+0200) Subject: Add Watched column to MyListModel X-Git-Url: https://gitweb.aptx.org/?a=commitdiff_plain;h=55133d07518c9b22e0b2f6d833b816f634b60487;p=localmylist.git Add Watched column to MyListModel --- diff --git a/localmylist/mylistnode.cpp b/localmylist/mylistnode.cpp index 9f6b6bf..9388c02 100644 --- a/localmylist/mylistnode.cpp +++ b/localmylist/mylistnode.cpp @@ -19,7 +19,7 @@ MyListNode::MyListNode(NodeType type, int id, const QList &data, MyLis if (m_type != Root) return; - itemData << "Title" << "Episode / Version" << "Rating / Quality" << "Vote"; + itemData << "Title" << "Episode / Version" << "Rating / Quality" << "Vote" << "Watched"; } @@ -98,7 +98,7 @@ int MyListNode::fetchMore() 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; @@ -110,7 +110,8 @@ int MyListNode::fetchMore() 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(); @@ -156,7 +157,7 @@ int MyListAnimeNode::fetchMore() 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()))) @@ -168,7 +169,8 @@ int MyListAnimeNode::fetchMore() 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); } @@ -192,14 +194,15 @@ int MyListEpisodeNode::fetchMore() 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); }