LCOV - code coverage report
Current view: top level - src/operations - LoadAllNewsOperation.cpp (source / functions) Coverage Total Hit
Test: coverage.info.cleaned Lines: 100.0 % 20 20
Test Date: 2026-04-19 00:35:54 Functions: 100.0 % 5 5

            Line data    Source code
       1              : #include "LoadAllNewsOperation.h"
       2              : 
       3           18 : LoadAllNewsOperation::LoadAllNewsOperation(OperationManager *parent, AllNewsFeedItem *feedItem, LoadMode mode, int loadLimit) :
       4           18 :     LisvelLoadNewsOperation(parent, feedItem, mode, loadLimit, true)
       5              : {
       6           18 : }
       7              : 
       8              : 
       9           18 : qint64 LoadAllNewsOperation::getFirstNewsID()
      10              : {
      11           18 :     const QString queryString = "SELECT id FROM NewsItemTable ORDER BY timestamp ASC, id ASC LIMIT 1";
      12              : 
      13           18 :     QSqlQuery query(db());
      14           18 :     query.prepare(queryString);
      15              : 
      16           18 :     if (!query.exec() || !query.next()) {
      17              :         // No news yet!
      18            1 :         return -1;
      19              :     }
      20              : 
      21           17 :     return query.value("id").toULongLong();
      22           18 : }
      23              : 
      24           14 : QString LoadAllNewsOperation::appendNewQueryString()
      25              : {
      26              :     return "SELECT * FROM NewsItemTable N where id > (SELECT bookmark_id from "
      27           28 :            "FeedItemTable WHERE id = N.feed_id) AND id NOT IN (" + getLoadedIDString() +
      28           28 :            ") ORDER BY timestamp ASC, id ASC LIMIT :load_limit";
      29              : }
      30              : 
      31           14 : QString LoadAllNewsOperation::prependNewQueryString()
      32              : {
      33              :     return "SELECT * FROM NewsItemTable N where id <= (SELECT bookmark_id from "
      34           28 :            "FeedItemTable WHERE id = N.feed_id) AND id NOT IN (" + getLoadedIDString() +
      35           28 :            ") ORDER BY timestamp DESC, id DESC LIMIT :load_limit";
      36              : }
      37              : 
      38            3 : QString LoadAllNewsOperation::appendAfterPositionQueryString()
      39              : {
      40              :     // Load items chronologically after a given position, regardless of bookmark.
      41              :     // Used to reload trimmed items when scrolling back down through read items.
      42              :     return "SELECT * FROM NewsItemTable N WHERE "
      43              :            "(timestamp > :last_timestamp OR (timestamp = :last_timestamp AND id > :last_id)) "
      44            6 :            "AND id NOT IN (" + getLoadedIDString() + ") "
      45            6 :            "ORDER BY timestamp ASC, id ASC LIMIT :load_limit";
      46              : }
        

Generated by: LCOV version 2.0-1