Stellarium  HEAD
Public Types | Signals | Public Member Functions
StelPropertyMgr Class Reference

Manages the registration of specific object properties with the StelProperty system. More...

#include <StelPropertyMgr.hpp>

Public Types

typedef QMap< QString, StelProperty * > StelPropertyMap
 

Signals

void stelPropertyChanged (StelProperty *prop, const QVariant &value)
 Emitted when any registered StelProperty has been changed. More...
 

Public Member Functions

 StelPropertyMgr ()
 Use StelApp::getStelPropertyManager to get the global instance.
 
StelPropertyregisterProperty (const QString &id, QObject *target, const char *propertyName)
 Manually register a new StelProperty. More...
 
void registerObject (QObject *obj)
 Registers all Q_PROPERTY definitions on this object as StelProperty. More...
 
QStringList getPropertyList () const
 Returns the keys of all registered StelProperties.
 
QList< StelProperty * > getAllProperties () const
 Returns all currently registered StelProperty instances.
 
const StelPropertyMap & getPropertyMap () const
 Returns a map from property IDs to StelProperty objects.
 
StelPropertygetProperty (const QString &id, const bool noWarning=false) const
 Returns the StelProperty with the specified ID, or Q_NULLPTR if not registered. More...
 
QVariant getStelPropertyValue (const QString &id, const bool noWarning=false) const
 Retrieves the current value of the given StelProperty, without requiring the retrieval of its object first. More...
 
bool setStelPropertyValue (const QString &id, const QVariant &value) const
 Sets the value of the given StelProperty, without requiring the retrieval of its object first. More...
 
QMetaProperty getMetaProperty (const QString &id) const
 Returns the QMetaProperty information for the given id.
 

Detailed Description

Manages the registration of specific object properties with the StelProperty system.

A shortcut exists through StelModule::registerProperty. For more information on how to use this system, see the StelProperty class.

Member Function Documentation

◆ getProperty()

StelProperty* StelPropertyMgr::getProperty ( const QString &  id,
const bool  noWarning = false 
) const

Returns the StelProperty with the specified ID, or Q_NULLPTR if not registered.

If not registered, a warning is written to logfile unless noWarning is true. This may be useful to suppress warnings about plugin module properties when these are not loaded, but should else be left true.

◆ getStelPropertyValue()

QVariant StelPropertyMgr::getStelPropertyValue ( const QString &  id,
const bool  noWarning = false 
) const

Retrieves the current value of the given StelProperty, without requiring the retrieval of its object first.

Returns
the current value of the StelProperty with the ID id, or an invalid QVariant when no property with the given ID is found. If not found, a warning is written to logfile unless noWarning is true. This may be useful to suppress warnings about plugin module properties when these are not loaded, but should else be left true.

◆ registerObject()

void StelPropertyMgr::registerObject ( QObject *  obj)

Registers all Q_PROPERTY definitions on this object as StelProperty.

The object must have an unique QObject::objectName, and this name should never change after registering. For all properties on this object, a StelProperty with an ID in the format <objectName>.<propertyName> is generated.

◆ registerProperty()

StelProperty* StelPropertyMgr::registerProperty ( const QString &  id,
QObject *  target,
const char *  propertyName 
)

Manually register a new StelProperty.

Parameters
idThe identifier of the property. Must be unique, app will exit otherwise. It should follow the naming conventions as described in StelProperty.
targetThe QObject which contains the property.
propertyNameThe name of the Q_PROPERTY on the target which should be linked
Returns
a new StelProperty linking to the property with name propertyName on the target object

◆ setStelPropertyValue()

bool StelPropertyMgr::setStelPropertyValue ( const QString &  id,
const QVariant &  value 
) const

Sets the value of the given StelProperty, without requiring the retrieval of its object first.

Returns
true when the value of the StelProperty with the ID id has been successfully changed, and false if the value change failed or when no property with the given ID is found.

◆ stelPropertyChanged

void StelPropertyMgr::stelPropertyChanged ( StelProperty prop,
const QVariant &  value 
)
signal

Emitted when any registered StelProperty has been changed.

Parameters
propThe property that was changed
valueThe new value of the property