LCOV - code coverage report
Current view: top level - src/operations - LoadFolderOperation.cpp (source / functions) Coverage Total Hit
Test: coverage.info.cleaned Lines: 96.2 % 26 25
Test Date: 2026-04-19 00:35:54 Functions: 87.5 % 8 7

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

Generated by: LCOV version 2.0-1