From: APTX Date: Mon, 23 Jul 2012 23:29:15 +0000 (+0200) Subject: Order episodes by the new episode type X-Git-Url: https://gitweb.tyo.aptx.org/?a=commitdiff_plain;h=79cfa9899b6d1b956d52a73e09f5b1713b87875a;p=localmylist.git Order episodes by the new episode type --- diff --git a/localmylist/mylistnode.cpp b/localmylist/mylistnode.cpp index dd256c9..8160f95 100644 --- a/localmylist/mylistnode.cpp +++ b/localmylist/mylistnode.cpp @@ -100,9 +100,19 @@ bool MyListNode::canFetchMore() const int MyListNode::fetchMore() { - qDebug() << "fetching some more for root"; QSqlQuery &q = LocalMyList::instance()->database()->prepare( - "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 " + "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 :limit " "OFFSET :offset "); q.bindValue(":limit", LIMIT); @@ -164,16 +174,31 @@ QString MyListAnimeNode::totalRowCountSql() const int MyListAnimeNode::fetchMore() { qDebug() << "fetching some more for aid" << m_id; - QSqlQuery q(LocalMyList::instance()->database()->connection()); + QSqlQuery &q = LocalMyList::instance()->database()->prepare( + "SELECT e.eid, e.title_english, e.epno, e.rating, e.my_vote, " + " (SELECT MIN(my_watched) " + " FROM " + " (SELECT my_watched " + " FROM file " + " WHERE eid = e.eid " + " AND my_watched IS NOT NULL " + " UNION " + " SELECT f.my_watched " + " FROM file f " + " JOIN file_episode_rel fer ON (fer.fid = f.fid) " + " WHERE fer.eid = e.eid " + " AND my_watched IS NOT NULL) AS sq) AS my_watched " + " FROM episode e " + " JOIN episode_type et ON (et.type = e.type)" + " WHERE e.aid = :aid " + " ORDER BY et.ordering ASC, e.epno ASC " + " LIMIT :limit " + " OFFSET :offset "); + q.bindValue(":aid", m_id); + q.bindValue(":limit", LIMIT); + q.bindValue(":offset", childCount()); - if (!q.exec("SELECT eid, title_english, epno, rating, my_vote, " - " (SELECT MIN(my_watched) FROM " - " (SELECT my_watched FROM file WHERE eid = episode.eid AND my_watched IS NOT NULL " - " UNION SELECT f.my_watched FROM file f JOIN file_episode_rel fer ON (fer.fid = f.fid) WHERE fer.eid = episode.eid AND my_watched IS NOT NULL) AS sq) AS my_watched " - " FROM episode WHERE aid = " + QString::number(m_id) - + " ORDER BY epno ASC " - "LIMIT " + QString::number(LIMIT) + " " - "OFFSET " + QString::number(childCount()))) + if (!LocalMyList::instance()->database()->exec(q)) return 0; while (q.next())