libfuoten  0.8.2
Qt based library to access the Nextcloud News App API.
Properties | Public Member Functions | Signals | Protected Member Functions | List of all members
Fuoten::BaseItem Class Reference

Abstract base class for Folder, Feed and Article. More...

#include <Fuoten/BaseItem>

Inheritance diagram for Fuoten::BaseItem:
QObject Fuoten::Article Fuoten::Feed Fuoten::Folder

Properties

Fuoten::Error error
 Pointer to an Error object, if an error occurred, otherwise returns a nullptr. More...
 
qint64 id
 Database ID of the Article, Feed or Folder. More...
 
bool inOperation
 Returns true while there is an operation running on the item. More...
 

Public Member Functions

 BaseItem (QObject *parent=nullptr)
 Constructs an empty base item with the given parent. More...
 
 ~BaseItem () override
 Deconstructs the base item. More...
 
Q_INVOKABLE void clearError ()
 Removes the current Error object and sets a nullptr. More...
 
virtual void copy (BaseItem *other)
 Makes a deep copy of other into this object. More...
 
Errorerror () const
 Returns a pointer to an Error object, if any error occurred, otherwise a nullptr. More...
 
qint64 id () const
 Returns the ID of the item. More...
 
bool inOperation () const
 Returns true while there is some operation ongoing directly on the item. More...
 
void setId (qint64 nId)
 Sets the database ID of the item/feed/folder. More...
 

Signals

void errorChanged (Fuoten::Error *error)
 This signal will be emitted whenever the error property changes. May return a nullptr. More...
 
void idChanged (qint64 id)
 This signal will be emitted whenever the id property changes. More...
 
void inOperationChanged (bool inOperation)
 This signal will be emitted whenever the inOperation property changes. More...
 

Protected Member Functions

Componentcomponent () const
 Returns the pointer to the currently active Component. More...
 
void setComponent (Component *nComp)
 Sets the API component to perform an internal API request. More...
 
void setError (Error *nError)
 Sets the Error object of the error property. More...
 

Detailed Description

Abstract base class for Folder, Feed and Article.

Provides some basic properties used by other items. You have to derive this class and implement the pure virtual funtions.

Usage in models

If you are using a class that derives from BaseItem as the content object in a model, do not set the model as parent of the item if you intent to use item internal operations like remove, rename, etc. Setting the model as parent will delete the item when the model will be destructed.

Delete the model items manually in the model's destructor and check for items that are still inOperation(), use QObject::deleteLater() to delete these items so that they can finish the ongoing operation.

while (!folders.isEmpty()) {
Folder *f = folders.takeFirst();
if (f->inOperation()) {
f->deleteLater();
} else {
delete f;
}
}

Property Documentation

◆ error

Error * BaseItem::error
read

Pointer to an Error object, if an error occurred, otherwise returns a nullptr.

Access functions:
Error*error() const
Notifier signal:
voiderrorChanged(Error *error)
See also
setError()

◆ id

qint64 BaseItem::id
read

Database ID of the Article, Feed or Folder.

Access functions:
qint64id() const
Notifier signal:
voididChanged(qint64 id)
See also
setId()

◆ inOperation

bool BaseItem::inOperation
read

Returns true while there is an operation running on the item.

This is used for operations that are directly invoked by methods from the item, not from outside classes.

Access functions:
boolinOperation() const
Notifier signal:
voidinOperationChanged(bool inOperation)

Constructor & Destructor Documentation

◆ BaseItem()

BaseItem::BaseItem ( QObject parent = nullptr)
explicit

Constructs an empty base item with the given parent.

◆ ~BaseItem()

BaseItem::~BaseItem ( )
override

Deconstructs the base item.

Member Function Documentation

◆ clearError()

void BaseItem::clearError ( )

Removes the current Error object and sets a nullptr.

◆ component()

Component * BaseItem::component ( ) const
protected

Returns the pointer to the currently active Component.

If no component is active, a nullptr will be returned.

See also
setComponent()

◆ copy()

void BaseItem::copy ( BaseItem other)
virtual

Makes a deep copy of other into this object.

The default implementation does nothing. When reimplementing, do a qobject_cast to the derived type.

Reimplemented in Fuoten::Article, Fuoten::Feed, and Fuoten::Folder.

◆ error()

Error* Fuoten::BaseItem::error ( ) const

Returns a pointer to an Error object, if any error occurred, otherwise a nullptr.

See also
BaseItem::error

◆ errorChanged

void Fuoten::BaseItem::errorChanged ( Fuoten::Error error)
signal

This signal will be emitted whenever the error property changes. May return a nullptr.

See also
BaseItem::error

◆ id()

qint64 Fuoten::BaseItem::id ( ) const

Returns the ID of the item.

See also
BaseItem::id

◆ idChanged

void Fuoten::BaseItem::idChanged ( qint64  id)
signal

This signal will be emitted whenever the id property changes.

See also
BaseItem::id

◆ inOperation()

bool Fuoten::BaseItem::inOperation ( ) const

Returns true while there is some operation ongoing directly on the item.

See also
BaseItem::inOperation

◆ inOperationChanged

void Fuoten::BaseItem::inOperationChanged ( bool  inOperation)
signal

This signal will be emitted whenever the inOperation property changes.

See also
BaseItem::inOperation

◆ setComponent()

void BaseItem::setComponent ( Component nComp)
protected

Sets the API component to perform an internal API request.

This has to be a subclass of Component. Failed requests are handled automatically by connecting to the Component::failed() signal. It will set the BaseItem::error property and will delete the component as well setting the internal pointer to a nullptr.

Handling of succeeded API requests should be handled in the implementation.

Example
void Folder::remove(AbstractConfiguration *config, AbstractStorage *storage)
{
if (!config) {
qWarning("Can not delete the folder. No AbstractConfiguration available.");
return;
}
DeleteFolder *df = new DeleteFolder(this);
df->setConfiguration(config);
df->setStorage(storage);
df->setFolderId(id());
}
See also
component()

◆ setError()

void BaseItem::setError ( Error nError)
protected

Sets the Error object of the error property.

See also
error

◆ setId()

void BaseItem::setId ( qint64  nId)

Sets the database ID of the item/feed/folder.

See also
id

The documentation for this class was generated from the following files: