Computer Assited Medical Intervention Tool Kit  version 5.0
camitk::PropertyObject Class Reference

This class describes a property object. More...

#include <PropertyObject.h>

+ Inheritance diagram for camitk::PropertyObject:
+ Collaboration diagram for camitk::PropertyObject:

Public Member Functions

virtual bool addProperty (Property *)
 Tag a new CamiTK property to this object. More...
 
virtual unsigned int getNumberOfProperties () const
 get the current number of property More...
 
virtual Q_INVOKABLE camitk::PropertygetProperty (QString name)
 Get a Property given its name. More...
 
virtual QString getPropertyName (unsigned int index) const
 get the name of the property at the given index, null string if index is out of bounds (i.e., isNull() == true) More...
 
virtual QVariant getPropertyValue (const QString name)
 conveniant method to get the value of a given property, returns a non valid QVariant if no property with that name exists More...
 
virtual QVariant getPropertyValue (unsigned int index)
 get the value of the property at the given index, a non valid QVariant if the index is out of bounds (i.e., isValid() == false) More...
 
void loadFromSettings (const QString &settingGroupName)
 initializes all property values from setting values found in the given group name More...
 
 PropertyObject (QString name)
 Default constructor. More...
 
virtual void removeProperty (Property *)
 Remove a CamiTK property of this object. More...
 
void saveToSettings (const QString &settingGroupName)
 save setting in the given group name using all the property values More...
 
 ~PropertyObject () override
 Destructor. More...
 

Static Public Member Functions

static QString toCamelCase (const QString &)
 utility method to transform property name to camel case. Quite useful to make sure all settings are stored as lowerCamelCase More...
 

Private Attributes

Property management

list of CamiTK properties decorating the object

QMap< QString, Property * > propertiesMap
 

Detailed Description

This class describes a property object.

A property object is simply a QObject tagged with some CamiTK Properties The idea is to have an object which implements all the necessary methods to take advantages of the CamiTK Properties within the ObjectController

PropertyObject can be saved/loaded from settings. A typical use in this case is to

// set default value
propertyObject->addProperty(...);
propertyObject->addProperty(...);
propertyObject->addProperty(...);
// load values from settings
loadFromSettings("mySection");
...
saveToSettings("mySection")

See the Application class for an example of a property object load/save to settings.

See also
ObjectController, Property

Constructor & Destructor Documentation

◆ PropertyObject()

camitk::PropertyObject::PropertyObject ( QString  name)

Default constructor.

Parameters
nameThe name of the PropertyObject instance. This one would be displayed in any SettingsDialog entries.

◆ ~PropertyObject()

camitk::PropertyObject::~PropertyObject ( )
override

Destructor.

References camitk::Property::getName().

+ Here is the call graph for this function:

Member Function Documentation

◆ addProperty()

bool camitk::PropertyObject::addProperty ( Property prop)
virtual

Tag a new CamiTK property to this object.

If the property already exist, it will just change its value.

Note
The object takes ownership of the Property instance.
Returns
false if the Qt Meta Object property was added by this method (otherwise the property was already defined and true is returned if it was successfully updated)

Referenced by PropertyExplorer::createProperties(), and camitk::Application::createProperties().

+ Here is the caller graph for this function:

◆ getNumberOfProperties()

unsigned int camitk::PropertyObject::getNumberOfProperties ( ) const
virtual

get the current number of property

◆ getProperty()

Property * camitk::PropertyObject::getProperty ( QString  name)
virtual

Get a Property given its name.

Parameters
namethe property name
Returns
nullptr if the name does not match any property name
Note
This method is required so that the ObjectController can take advantage of the camitk properties.
See also
Property, ObjectController

◆ getPropertyName()

QString camitk::PropertyObject::getPropertyName ( unsigned int  index) const
virtual

get the name of the property at the given index, null string if index is out of bounds (i.e., isNull() == true)

◆ getPropertyValue() [1/2]

QVariant camitk::PropertyObject::getPropertyValue ( const QString  name)
virtual

conveniant method to get the value of a given property, returns a non valid QVariant if no property with that name exists

◆ getPropertyValue() [2/2]

QVariant camitk::PropertyObject::getPropertyValue ( unsigned int  index)
virtual

get the value of the property at the given index, a non valid QVariant if the index is out of bounds (i.e., isValid() == false)

Referenced by camitk::Action::setAutoUpdateProperties().

+ Here is the caller graph for this function:

◆ loadFromSettings()

void camitk::PropertyObject::loadFromSettings ( const QString &  settingGroupName)

initializes all property values from setting values found in the given group name

Referenced by camitk::Application::Application().

+ Here is the caller graph for this function:

◆ removeProperty()

void camitk::PropertyObject::removeProperty ( Property prop)
virtual

Remove a CamiTK property of this object.

◆ saveToSettings()

void camitk::PropertyObject::saveToSettings ( const QString &  settingGroupName)

save setting in the given group name using all the property values

Referenced by camitk::Application::eventFilter().

+ Here is the caller graph for this function:

◆ toCamelCase()

QString camitk::PropertyObject::toCamelCase ( const QString &  s)
static

utility method to transform property name to camel case. Quite useful to make sure all settings are stored as lowerCamelCase

Member Data Documentation

◆ propertiesMap

QMap<QString, Property*> camitk::PropertyObject::propertiesMap
private

The documentation for this class was generated from the following files:
camitk::PropertyObject::loadFromSettings
void loadFromSettings(const QString &settingGroupName)
initializes all property values from setting values found in the given group name
Definition: PropertyObject.cpp:142
camitk::PropertyObject::PropertyObject
PropertyObject(QString name)
Default constructor.
Definition: PropertyObject.cpp:62