libfuoten 0.8.2
Qt based library to access the Nextcloud News App API.
Loading...
Searching...
No Matches
Fuoten::AbstractFolderModel Class Reference

Abstract folder model that provides basic functionalities for folder models. More...

#include <Fuoten/Model/AbstractFolderModel>

Inheritance diagram for Fuoten::AbstractFolderModel:
Fuoten::BaseModel QAbstractItemModel QObject Fuoten::FolderListModel

Public Member Functions

 AbstractFolderModel (QObject *parent=nullptr)
 Constructs a new empty abstract folder model with the given parent.
 ~AbstractFolderModel () override
 Destroys the AbstractFolderModel object.
QModelIndex findByID (qint64 id) const override
 Returns the model index of the folder identified by id.
Public Member Functions inherited from Fuoten::BaseModel
 BaseModel (QObject *parent=nullptr)
 Constructs a new BaseModel object.
 ~BaseModel () override
 Deconstructs the BaseModel object.
double doubleParentId () const
 Returns the currently set parent ID as double. This function is for use in QML, that does not support 64bit integers. It performs a static cast from the saved qint64 parent ID to double.
virtual QHash< qint64, QModelIndexfindByIDs (const IdList &ids) const
 Returns a hash-table containing IDs and their model index fount in the model.
bool inOperation () const
 Returns true while the model is loading data.
int limit () const
 Getter function for the limit property.
bool loaded () const
 Getter function for the loaded property. *.
qint64 parentId () const
 Returns the currently set parent ID.
void setDoubleParentId (double nDoubleParentId)
 Sets the parent ID via a double. This function is for use in QML, that does not support 64bit integers. It performs a static cast from the double to a qint64 to save it.
void setLimit (int nLimit)
 Setter function for the limit property. Emits the limitChanged() signal if nLimit is not equal to the stored value.
void setParentId (qint64 nParentId)
 Set the parent ID.
void setSortingRole (FuotenEnums::SortingRole nSortingRole)
 Setter function for the sortingRole property. Emits the sortingRoleChanged() signal if nSortingRole is not equal to the stored value.
void setSortOrder (Qt::SortOrder nSortOrder)
 Setter function for the sortOrder property. Emits the sortOrderChanged() signal if nSortOrder is not equal to the stored value.
void setStorage (AbstractStorage *nStorage)
 Sets the pointer to the local storage handler.
void setUnreadOnly (bool nUnreadOnly)
 Setter function for the unreadOnly property. Emits the unreadOnlyChanged() signal if nUnreadOnly is not equal to the stored value.
FuotenEnums::SortingRole sortingRole () const
 Getter function for the sortingRole property.
Qt::SortOrder sortOrder () const
 Getter function for the sortOrder property.
AbstractStoragestorage () const
 Returns the pointer to the currently set local storage.
bool unreadOnly () const
 Getter function for the unreadOnly property.

Public Slots

void load () override
 Populates the mode with data from the local storage.
Public Slots inherited from Fuoten::BaseModel
virtual void load ()=0
 Loads the model data.
virtual void reload ()
 Reloads the complete model.

Protected Slots

void feedCreated (qint64 feedId, qint64 folderId)
 Takes and processes data after a new feed has been created.
void feedMarkedRead (qint64 id)
 Takes and processes data after a feed has been created.
void feedsRequested (const Fuoten::IdList &updatedFeeds, const Fuoten::IdList &newFeeds, const Fuoten::IdList &deletedFeeds)
 Takes and processes data after the feeds have been requeste from the server.
void folderCreated (qint64 id, const QString &name)
 Takes and processes data after a folder has been created.
void folderDeleted (qint64 id)
 Takes and processes data after a folder has been delted.
void folderMarkedRead (qint64 id, qint64 newestItem)
 Takes and processes data after a folder has been marked as read.
void folderRenamed (qint64 id, const QString &newName)
 Takes and processes data after a folder has been renamed.
void foldersRequested (const QList< QPair< qint64, QString > > &updatedFolders, const QList< QPair< qint64, QString > > &newFolders, const Fuoten::IdList &deletedFolders)
 Takes and processes data after folders have been requested.
void itemMarked (qint64 itemId, bool unread)
 Takes and processes data after an item/article has been marked as read.
void updateCountValues ()
 Will reload feedCount and unreadCount for every folder.

Protected Member Functions

void clear () override
 Clears the complete model and will destroy all Folder objects.
QList< Folder * > folders () const
 Returns the list of Folder objects in the model.
void handleStorageChanged (AbstractStorage *old) override
 Connetcs the folder related signals of AbstractStorage to the model's slots.
Protected Member Functions inherited from Fuoten::BaseModel
void setInOperation (bool nInOperation)
 Sets the inOperation property.
void setLoaded (bool loaded)
 Set this to true if the model has initially loaded its data.

Additional Inherited Members

Properties inherited from Fuoten::BaseModel
double doubleParentId
 Stores the parent ID as double to make it accesseable from QML.
bool inOperation
 Returns true while the model is loading data.
int limit
 Limits the result to the specified number of objects.
bool loaded
 This property holds true if the model has initially loaded the data.
qint64 parentId
 Sets the parent database ID to load feeds/items for.
Fuoten::FuotenEnums::SortingRole sortingRole
 The role/value used to sort the result.
Qt::SortOrder sortOrder
 The sorting order.
Fuoten::AbstractStoragestorage
 Pointer to a class derived from AbstractStorage.
bool unreadOnly
 If true, only unread articles, feeds or folders are returned.
Signals inherited from Fuoten::BaseModel
void doubleParentIdChanged (double doubleParentId)
 This signal is emitted if the parent ID changes.
void inOperationChanged (bool inOperation)
 This signal is emitted if the operational state of the model changes.
void limitChanged (int limit)
 This is emitted if the value of the limit property changes.
void loadedChanged (bool loaded)
 This is emitted if the value of the loaded property changes.
void parentIdChanged (qint64 parentId)
 This signal is emitted if the parent ID changes.
void sortingRoleChanged (FuotenEnums::SortingRole sortingRole)
 This is emitted if the value of the sortingRole property changes.
void sortOrderChanged (Qt::SortOrder sortOrder)
 This is emitted if the value of the sortOrder property changes.
void storageChanged (Fuoten::AbstractStorage *storage)
 This signal is emitted if the poiner to the local storage changes.
void unreadOnlyChanged (bool unreadOnly)
 This is emitted if the value of the unreadOnly property changes.

Detailed Description

Abstract folder model that provides basic functionalities for folder models.

Constructor & Destructor Documentation

◆ AbstractFolderModel()

AbstractFolderModel::AbstractFolderModel ( QObject * parent = nullptr)
explicit

Constructs a new empty abstract folder model with the given parent.

◆ ~AbstractFolderModel()

AbstractFolderModel::~AbstractFolderModel ( )
override

Destroys the AbstractFolderModel object.

Member Function Documentation

◆ clear()

void AbstractFolderModel::clear ( )
overrideprotectedvirtual

Clears the complete model and will destroy all Folder objects.

Implements Fuoten::BaseModel.

◆ feedCreated

void AbstractFolderModel::feedCreated ( qint64 feedId,
qint64 folderId )
protectedslot

Takes and processes data after a new feed has been created.

handleStorageChanged() will connect the AbstractStorage::createdFeed() signal to this slot.

◆ feedMarkedRead

void AbstractFolderModel::feedMarkedRead ( qint64 id)
protectedslot

Takes and processes data after a feed has been created.

handleStorageChanged() will connect the AbstractStorage::markedReadFeed() and AbstractStorage::markedReadFeedInQueue() signals to this slot.

◆ feedsRequested

void AbstractFolderModel::feedsRequested ( const Fuoten::IdList & updatedFeeds,
const Fuoten::IdList & newFeeds,
const Fuoten::IdList & deletedFeeds )
protectedslot

Takes and processes data after the feeds have been requeste from the server.

handleStorageChanged() will connect the AbstractStorage::requestedFeeds() signal to this slot.

◆ findByID()

QModelIndex AbstractFolderModel::findByID ( qint64 id) const
overridevirtual

Returns the model index of the folder identified by id.

Reimplemented from Fuoten::BaseModel.

◆ folderCreated

void AbstractFolderModel::folderCreated ( qint64 id,
const QString & name )
protectedslot

Takes and processes data after a folder has been created.

Will add the new folder to the model. handleStorageChanged() will connect AbstractStorage::createdFolder() to this slot.

◆ folderDeleted

void AbstractFolderModel::folderDeleted ( qint64 id)
protectedslot

Takes and processes data after a folder has been delted.

Will delete the folder identified by id from the model. handleStorageChanged() will connect AbstractStorage::deletedFolder() to this slot.

◆ folderMarkedRead

void AbstractFolderModel::folderMarkedRead ( qint64 id,
qint64 newestItem )
protectedslot

Takes and processes data after a folder has been marked as read.

Will set the unreadCount of the folder identified by id to 0. handleStorageChanged() will connect the AbstractStorage::markedReadFolder() and AbstractStorage::markedReadFolderInQueue() signals to this slot.

◆ folderRenamed

void AbstractFolderModel::folderRenamed ( qint64 id,
const QString & newName )
protectedslot

Takes and processes data after a folder has been renamed.

handleStorageChanged() will connect AbstractStorage::renamedFolder() signal to this slot.

◆ folders()

QList< Folder * > AbstractFolderModel::folders ( ) const
protected

Returns the list of Folder objects in the model.

◆ foldersRequested

void AbstractFolderModel::foldersRequested ( const QList< QPair< qint64, QString > > & updatedFolders,
const QList< QPair< qint64, QString > > & newFolders,
const Fuoten::IdList & deletedFolders )
protectedslot

Takes and processes data after folders have been requested.

handleStorageChanged() will connect AbstractStorage::requestedFolders() signal to this slot.

◆ handleStorageChanged()

void AbstractFolderModel::handleStorageChanged ( Fuoten::AbstractStorage * old)
overrideprotectedvirtual

Connetcs the folder related signals of AbstractStorage to the model's slots.

Reimplemented from Fuoten::BaseModel.

◆ itemMarked

void AbstractFolderModel::itemMarked ( qint64 itemId,
bool unread )
protectedslot

Takes and processes data after an item/article has been marked as read.

handleStorageChanged() will connnect the AbstractStorage::markedItem() signal to this slot.

Parameters
itemIdID of the item/article that has been marked as read or unread
unreadtrue if the article has been marked as unread, false if it has been marked as read

◆ load

void AbstractFolderModel::load ( )
overrideslot

Populates the mode with data from the local storage.

Uses AbstractStorage::getFolders() to get Folder objects from the local storage that will be added to the model.

◆ updateCountValues

void AbstractFolderModel::updateCountValues ( )
protectedslot

The documentation for this class was generated from the following files:
  • Fuoten/Models/abstractfoldermodel.h
  • Fuoten/Models/abstractfoldermodel.cpp