Jellyfin Qt
QML Library for interacting with the Jellyfin multimedia server
Loading...
Searching...
No Matches
Jellyfin::LoaderModelLoader< T, D, R, P > Class Template Reference

#include <apimodel.h>

Inheritance diagram for Jellyfin::LoaderModelLoader< T, D, R, P >:
Jellyfin::ModelLoader< T > Jellyfin::BaseModelLoader Jellyfin::ViewModel::AbstractUserParameterLoader< T, D, R, P > Jellyfin::ViewModel::PublicUsersLoader Jellyfin::ViewModel::AlbumArtistLoader Jellyfin::ViewModel::LatestMediaLoader Jellyfin::ViewModel::LiveTvChannelsLoader Jellyfin::ViewModel::NextUpLoader Jellyfin::ViewModel::ResumeItemsLoader Jellyfin::ViewModel::ShowEpisodesLoader Jellyfin::ViewModel::ShowSeasonsLoader Jellyfin::ViewModel::UserItemsLoader Jellyfin::ViewModel::UserViewsLoader

Public Member Functions

 LoaderModelLoader (Support::Loader< R, P > *loader, QObject *parent=nullptr)
 
- Public Member Functions inherited from Jellyfin::ModelLoader< T >
 ModelLoader (QObject *parent=nullptr)
 
void reload () override
 Clears and reloads the model.
 
void loadMore ()
 
virtual bool canLoadMore () const
 
std::pair< QList< T * >, int > && result ()
 Holds the result. Moves it result to the caller and therefore can be only called once when the itemsLoaded is emitted.
 
- Public Member Functions inherited from Jellyfin::BaseModelLoader
 BaseModelLoader (QObject *parent=nullptr)
 
ApiClientapiClient () const
 
void setApiClient (ApiClient *newApiClient)
 
int limit () const
 
void setLimit (int newLimit)
 
bool autoReload () const
 
void setAutoReload (bool newAutoReload)
 
ViewModel::ModelStatus status () const
 
virtual void classBegin () override
 
virtual void componentComplete () override
 
void autoReloadIfNeeded ()
 

Protected Member Functions

void loadMore (ViewModel::ModelStatus suggestedModelStatus) override
 Loads data from the given offset with a maximum count of limit. The itemsLoaded() signal is emitted when new data is ready. Call getLoadedItems to retrieve the loaded items.
 
void loaderReady ()
 
void loaderError (QString error)
 
- Protected Member Functions inherited from Jellyfin::BaseModelLoader
void emitModelShouldClear ()
 
void emitItemsLoaded ()
 
void setStatus (ViewModel::ModelStatus newStatus)
 
virtual bool canReload () const
 Determines if this model is able to reload.
 

Protected Attributes

QScopedPointer< Support::Loader< R, P > > m_loader
 
m_parameters
 
- Protected Attributes inherited from Jellyfin::ModelLoader< T >
std::pair< QList< T * >, int > m_result
 
- Protected Attributes inherited from Jellyfin::BaseModelLoader
bool m_isBeingParsed = false
 
ApiClientm_apiClient = nullptr
 
bool m_autoReload = true
 
bool m_needsAuthentication = true
 
bool m_manualLimitSet = false
 
int m_limit = -1
 
int m_startIndex = 0
 
int m_totalRecordCount = 0
 
bool m_explicitLimitSet = false
 
const int DEFAULT_LIMIT = 100
 
ViewModel::ModelStatus m_status = ViewModel::ModelStatus::Uninitialised
 

Additional Inherited Members

- Signals inherited from Jellyfin::BaseModelLoader
void ready ()
 
void apiClientChanged (ApiClient *newApiClient)
 
void statusChanged ()
 
void limitChanged (int newLimit)
 
void autoReloadChanged (bool newAutoReload)
 
void modelShouldClear ()
 Emitted when the model should clear itself.
 
void itemsLoaded ()
 
void reloadWanted ()
 
- Properties inherited from Jellyfin::BaseModelLoader
ApiClientapiClient
 
Jellyfin::ViewModel::ModelStatusClass::Value status
 
int limit
 
bool autoReload
 

Detailed Description

template<class T, class D, class R, class P>
class Jellyfin::LoaderModelLoader< T, D, R, P >

Template for implementing a loader for the given type, response and parameters using Jellyfin::Support:Loaders.

Template Parameters
Ttype of which this loader should load a list of
Dtype of the DTO which can be converted into T using T(const D&, ApiClient*);
Rtype of the deserialized loader response
Ptype of the deserialized loader request parameters

Constructor & Destructor Documentation

◆ LoaderModelLoader()

template<class T , class D , class R , class P >
Jellyfin::LoaderModelLoader< T, D, R, P >::LoaderModelLoader ( Support::Loader< R, P > * loader,
QObject * parent = nullptr )
inlineexplicit

Member Function Documentation

◆ loaderError()

template<class T , class D , class R , class P >
void Jellyfin::LoaderModelLoader< T, D, R, P >::loaderError ( QString error)
inlineprotected

◆ loaderReady()

template<class T , class D , class R , class P >
void Jellyfin::LoaderModelLoader< T, D, R, P >::loaderReady ( )
inlineprotected

◆ loadMore()

template<class T , class D , class R , class P >
void Jellyfin::LoaderModelLoader< T, D, R, P >::loadMore ( ViewModel::ModelStatus suggestedStatus)
inlineoverrideprotectedvirtual

Loads data from the given offset with a maximum count of limit. The itemsLoaded() signal is emitted when new data is ready. Call getLoadedItems to retrieve the loaded items.

Parameters
suggestedStatusThe suggested status this model should take on if it is able to load (more). Either LOADING or LOAD_MORE.

Implements Jellyfin::ModelLoader< T >.

Member Data Documentation

◆ m_loader

template<class T , class D , class R , class P >
QScopedPointer<Support::Loader<R, P> > Jellyfin::LoaderModelLoader< T, D, R, P >::m_loader
protected

◆ m_parameters

template<class T , class D , class R , class P >
P Jellyfin::LoaderModelLoader< T, D, R, P >::m_parameters
protected

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