Stellarium  0.20.4
Data Structures | Signals | Public Member Functions
StelModuleMgr Class Reference

Manage a collection of StelModules including both core and plugin modules. More...

#include <StelModuleMgr.hpp>

Data Structures

struct  PluginDescriptor
 Contains the information read from the module.ini file. More...
 

Signals

void extensionsAdded (QObjectList newExtensions)
 Called whenever new plugin extensions are added.
 

Public Member Functions

void update ()
 Regenerate calling lists if necessary.
 
void registerModule (StelModule *m, bool generateCallingLists=false)
 Register a new StelModule to the list The module is later referenced by its QObject name. More...
 
void unloadModule (const QString &moduleID, bool alsoDelete=true)
 Unregister and delete a StelModule. More...
 
StelModuleloadPlugin (const QString &moduleID)
 Load dynamically a module. More...
 
QObjectList loadExtensions (const QString &moduleID)
 
void unloadAllPlugins ()
 Unload all plugins.
 
void setPluginLoadAtStartup (const QString &key, bool b)
 Define whether a plugin should be loaded at startup. More...
 
bool isPluginLoaded (const QString &moduleID)
 
StelModulegetModule (const QString &moduleID, bool noWarning=false) const
 Get the corresponding module or Q_NULLPTR if can't find it. More...
 
QList< StelModule * > getAllModules () const
 Get the list of all the currently registered modules.
 
const QList< StelModule * > & getCallOrders (StelModule::StelModuleActionName action)
 Get the list of modules in the correct order for calling the given action.
 
QList< PluginDescriptorgetPluginsList ()
 Return the list of all the external module found in the modules directories.
 
QObjectList getExtensionList () const
 Returns the list of all currently registered extensions. More...
 

Detailed Description

The order in which some actions like draw or update are called for each module can be retrieved with the getCallOrders() method.

Member Function Documentation

◆ getExtensionList()

QObjectList StelModuleMgr::getExtensionList ( ) const
inline

If using this method, you probably also want to subscribe to the extensionsAdded() signal to handle all possible initialization orders.

◆ getModule()

StelModule* StelModuleMgr::getModule ( const QString &  moduleID,
bool  noWarning = false 
) const
Parameters
moduleIDthe QObject name of the module instance, by convention it is equal to the class name.
noWarningif true, don't display any warning if the module is not found.

◆ loadPlugin()

StelModule* StelModuleMgr::loadPlugin ( const QString &  moduleID)
Parameters
moduleIDthe name of the module = name of the dynamic library file without extension (e.g "mymodule" for mymodule.so or mymodule.dll)
Returns
the loaded module or Q_NULLPTR in case of error. The returned Stelmodule still needs to be initialized

◆ registerModule()

void StelModuleMgr::registerModule ( StelModule m,
bool  generateCallingLists = false 
)

◆ setPluginLoadAtStartup()

void StelModuleMgr::setPluginLoadAtStartup ( const QString &  key,
bool  b 
)
Parameters
keythe key of the plugin as in the PluginDescriptor class.
bthe value to set.

◆ unloadModule()

void StelModuleMgr::unloadModule ( const QString &  moduleID,
bool  alsoDelete = true 
)

The program will hang if other modules depend on the removed one

Parameters
moduleIDthe unique ID of the module, by convention equal to the class name
alsoDeleteif true also delete the StelModule instance, otherwise it has to be deleted by external code.