![]() |
Inviwo 0.9.12-pre
Inviwo documentation
|
A property that has specified sub-properties which can be added using the graphical user interface. More...
#include <inviwo/core/properties/listproperty.h>
Public Types | |
| using | const_iterator = std::vector<std::unique_ptr<Property>>::const_iterator |
| using | iterator = std::vector<Property*>::iterator |
| Public Types inherited from inviwo::CompositeProperty | |
| enum class | CollapseAction { Collapse , Expand } |
| enum class | CollapseTarget { Current , Recursive , Children , Siblings } |
| Public Types inherited from inviwo::PropertyOwner | |
| using | const_iterator = std::vector<Property*>::const_iterator |
| using | iterator = std::vector<Property*>::iterator |
Public Member Functions | |
| void | addPrefab (std::unique_ptr< Property > p) |
add a new prefab object p to be used as template when instantiating new list elements | |
| virtual void | clear () override |
| remove all list entries | |
| virtual ListProperty * | clone () const override |
| Property * | constructProperty (size_t prefabIndex) |
| construct a list entry which is created from the respective prefab object. This function has no effect if the list size will exceed the maximum number of elements. | |
| virtual void | deserialize (Deserializer &d) override |
| virtual std::string_view | getClassIdentifier () const override |
| virtual std::string_view | getClassIdentifierForWidget () const override |
| Returns which property's widget should be used when the WidgetFactory tries to create a widget. Defaults to getClassIdentifier(), should only be overridden if a subclass want to reuse another property's widget. | |
| size_t | getMaxNumberOfElements () const |
| size_t | getPrefabCount () const |
| return number of prefab objects | |
| const std::vector< std::unique_ptr< Property > > & | getPrefabs () const |
| ListPropertyUIFlags | getUIFlags () const |
| virtual void | insertProperty (size_t index, Property *property, bool owner=true) override |
insert property in the list at position index If index is not valid, the property is appended. The type of the property must match one of the prefab objects. This function has no effect if the list size will exceed the maximum number of elements. | |
| virtual bool | isDefaultState () const override |
| ListProperty (const ListProperty &rhs) | |
| ListProperty (std::string_view identifier, std::string_view displayName, Document help={}, std::vector< std::unique_ptr< Property > > prefabs={}, size_t maxNumberOfElements=0, ListPropertyUIFlags uiFlags=ListPropertyUIFlag::Add|ListPropertyUIFlag::Remove, InvalidationLevel invalidationLevel=InvalidationLevel::InvalidResources, PropertySemantics semantics=PropertySemantics::Default) | |
| ListProperty (std::string_view identifier, std::string_view displayName, size_t maxNumberOfElements, ListPropertyUIFlags uiFlags=ListPropertyUIFlag::Add|ListPropertyUIFlag::Remove, InvalidationLevel invalidationLevel=InvalidationLevel::InvalidResources, PropertySemantics semantics=PropertySemantics::Default) | |
| ListProperty (std::string_view identifier, std::string_view displayName, std::unique_ptr< Property > prefab, size_t maxNumberOfElements=0, ListPropertyUIFlags uiFlags=ListPropertyUIFlag::Add|ListPropertyUIFlag::Remove, InvalidationLevel invalidationLevel=InvalidationLevel::InvalidResources, PropertySemantics semantics=PropertySemantics::Default) | |
| ListProperty (std::string_view identifier, std::string_view displayName, std::vector< std::unique_ptr< Property > > prefabs, size_t maxNumberOfElements=0, ListPropertyUIFlags uiFlags=ListPropertyUIFlag::Add|ListPropertyUIFlag::Remove, InvalidationLevel invalidationLevel=InvalidationLevel::InvalidResources, PropertySemantics semantics=PropertySemantics::Default) | |
| virtual bool | move (Property *property, size_t newIndex) override |
| virtual bool | needsSerialization () const override |
| virtual Property * | removeProperty (std::vector< Property * >::iterator it) override |
| virtual ListProperty & | resetToDefaultState () override |
| virtual void | serialize (Serializer &s) const override |
| void | set (const ListProperty *src) |
| virtual void | set (const Property *src) override |
| virtual ListProperty & | setCurrentStateAsDefault () override |
| void | setMaxNumberOfElements (size_t n) |
set the max number of list elements. This will remove additional properties if the list property contains more than n items. | |
| Public Member Functions inherited from inviwo::CompositeProperty | |
| virtual void | accept (NetworkVisitor &visitor) override |
| Accept a NetworkVisitor, the visitor will visit this and then each Property of the CompositeProperty in an undefined order. The Visitor will then visit each Properties's properties and so on. | |
| CompositeProperty (CompositeProperty &&rhs)=default | |
| CompositeProperty (const CompositeProperty &rhs)=default | |
| CompositeProperty (std::string_view identifier, std::string_view displayName, Document help, InvalidationLevel invalidationLevel=InvalidationLevel::InvalidResources, PropertySemantics semantics=PropertySemantics::Default) | |
| CompositeProperty (std::string_view identifier, std::string_view displayName, InvalidationLevel invalidationLevel=InvalidationLevel::InvalidResources, PropertySemantics semantics=PropertySemantics::Default) | |
| virtual const std::string & | getIdentifier () const override |
| virtual InvalidationLevel | getInvalidationLevel () const override |
| virtual InviwoApplication * | getInviwoApplication () override |
| virtual const PropertyOwner * | getOwner () const override |
| virtual PropertyOwner * | getOwner () override |
| virtual const Processor * | getProcessor () const override |
| virtual Processor * | getProcessor () override |
| virtual void | invalidate (InvalidationLevel invalidationLevel, Property *modifiedProperty=0) override |
| virtual bool | isCollapsed () const |
| CompositeProperty & | operator= (CompositeProperty &&rhs)=default |
| CompositeProperty & | operator= (const CompositeProperty &rhs)=delete |
| void | set (const CompositeProperty *src) |
| virtual CompositeProperty & | setCollapsed (bool value) |
| CompositeProperty & | setCollapsed (CollapseAction action, CollapseTarget target) |
| virtual void | setOwner (PropertyOwner *owner) override |
| virtual CompositeProperty & | setReadOnly (bool value) override |
| Enable or disable editing of property. | |
| virtual void | setValid () override |
| Public Member Functions inherited from inviwo::Property | |
| template<typename P> | |
| Property & | autoLinkToProperty (std::string_view propertyPath) |
| void | clearInitiatingWidget () |
| void | deregisterWidget (PropertyWidget *propertyWidget) |
| const std::vector< std::pair< std::string, std::string > > & | getAutoLinkToProperty () const |
| virtual Document | getDescription () const |
| virtual const std::string & | getDisplayName () const |
| Document & | getHelp () |
| const Document & | getHelp () const |
| PropertyOwner * | getOwner () |
| const PropertyOwner * | getOwner () const |
| const std::string & | getPath () const |
| Get the property path as string. | |
| void | getPath (std::pmr::string &out) const |
| virtual bool | getReadOnly () const |
| virtual PropertySemantics | getSemantics () const |
| virtual PropertySerializationMode | getSerializationMode () const |
| virtual bool | getVisible () const |
| const std::vector< PropertyWidget * > & | getWidgets () const |
| bool | hasWidgets () const |
| virtual bool | isModified () const |
| const BaseCallBack * | onChange (std::function< void()> callback) |
| std::shared_ptr< std::function< void()> > | onChangeScoped (std::function< void()> callback) |
| Property (std::string_view identifier, std::string_view displayName, InvalidationLevel invalidationLevel, PropertySemantics semantics=PropertySemantics::Default) | |
| Property (std::string_view identifier="", std::string_view displayName="", Document help={}, InvalidationLevel invalidationLevel=InvalidationLevel::InvalidOutput, PropertySemantics semantics=PropertySemantics::Default, ReadOnly readOnly=ReadOnly::No) | |
| virtual Property & | propertyModified () |
| template<typename P, typename DecisionFunc> | |
| Property & | readonlyDependsOn (P &prop, DecisionFunc callback) |
| void | registerWidget (PropertyWidget *propertyWidget) |
| void | removeOnChange (const BaseCallBack *callback) |
| virtual Property & | setDisplayName (std::string_view displayName) |
| A property's name displayed to the user. | |
| Property & | setHelp (Document help) |
| virtual Property & | setIdentifier (std::string_view identifier) |
| void | setInitiatingWidget (PropertyWidget *propertyWidget) |
| virtual Property & | setInvalidationLevel (InvalidationLevel invalidationLevel) |
| virtual Property & | setModified () |
| virtual Property & | setSemantics (const PropertySemantics &semantics) |
| virtual Property & | setSerializationMode (PropertySerializationMode mode) |
| virtual Property & | setVisible (bool val) |
| void | updateWidgets () |
| template<typename P, typename DecisionFunc> | |
| Property & | visibilityDependsOn (P &prop, DecisionFunc callback) |
| virtual | ~Property () |
| Removes itself from its PropertyOwner. | |
| Public Member Functions inherited from inviwo::Observable< PropertyObserver > | |
| void | addObserver (PropertyObserver *observer) |
| bool | isObservedBy (PropertyObserver *observer) const |
| Observable< PropertyObserver > & | operator= (const Observable< PropertyObserver > &other) |
| void | removeObserver (PropertyObserver *observer) |
| virtual void | startBlockingNotifications () override final |
| virtual void | stopBlockingNotifications () override final |
| Public Member Functions inherited from inviwo::MetaDataOwner | |
| void | copyMetaDataFrom (const MetaDataOwner &src) |
| void | copyMetaDataTo (MetaDataOwner &dst) |
|
template<typename T> requires std::derived_from<T, MetaData> | |
| T * | createMetaData (std::string_view key) |
| void | deserialize (Deserializer &d) |
|
template<typename T> requires std::derived_from<T, MetaData> | |
| T * | getMetaData (std::string_view key) |
|
template<typename T> requires std::derived_from<T, MetaData> | |
| const T * | getMetaData (std::string_view key) const |
|
template<typename T, typename U> requires std::derived_from<T, MetaData> && Gettable<T, U> | |
| U | getMetaData (std::string_view key, U val) const |
| MetaDataMap * | getMetaDataMap () |
| const MetaDataMap * | getMetaDataMap () const |
|
template<typename T> requires std::derived_from<T, MetaData> | |
| bool | hasMetaData (std::string_view key) const |
| bool | hasMetaData (std::string_view key) const |
| MetaDataOwner (const MetaDataOwner &rhs)=default | |
| MetaDataOwner (MetaDataOwner &rhs)=default | |
| MetaDataOwner & | operator= (const MetaDataOwner &rhs)=default |
| MetaDataOwner & | operator= (MetaDataOwner &)=default |
| void | serialize (Serializer &s) const |
|
template<typename T, typename U> requires std::derived_from<T, MetaData> && Settable<T, U> | |
| void | setMetaData (std::string_view key, U value) |
| template<typename T> requires std::derived_from<T, MetaData> | |
| bool | unsetMetaData (std::string_view key) |
| unset, i.e. remove the metadata entry matching the given key and type | |
| Public Member Functions inherited from inviwo::PropertyOwner | |
| template<typename... Ts> | |
| void | addProperties (Ts &... properties) |
| void | addProperty (Property &property) |
| void | addProperty (Property *property, bool owner=true) |
| Property * | addProperty (std::unique_ptr< Property > property) |
| iterator | begin () |
| const_iterator | begin () const |
| const_iterator | cbegin () const |
| const_iterator | cend () const |
| bool | empty () const |
| iterator | end () |
| const_iterator | end () const |
| const_iterator | find (Property *property) const |
| const std::vector< CompositeProperty * > & | getCompositeProperties () const |
| InvalidationLevel | getInvalidationLevel () const |
| const std::vector< Property * > & | getProperties () const |
| template<class T> | |
| std::vector< T * > | getPropertiesByType (bool recursiveSearch=false) const |
| std::vector< Property * > | getPropertiesRecursive () const |
| std::vector< Property * > & | getPropertiesRecursive (std::vector< Property * > &destination) const |
| template<std::derived_from< Property > T = Property> | |
| T * | getProperty (std::string_view identifier) |
| Property * | getPropertyByIdentifier (std::string_view identifier, bool recursiveSearch=false) const |
| Property * | getPropertyByPath (std::string_view path) const |
| void | insertProperty (size_t index, Property &property) |
insert property property at position index If index is not valid, the property is appended. | |
| Property * | insertProperty (size_t index, std::unique_ptr< Property > property) |
insert property property at position index If index is not valid, the property is appended. | |
| virtual void | invokeEvent (Event *event) override |
| virtual bool | isValid () const |
| PropertyOwner & | operator= (const PropertyOwner &that)=delete |
| Property * | operator[] (size_t) |
| const Property * | operator[] (size_t) const |
| virtual Property * | removeProperty (iterator it) |
| Property * | removeProperty (Property &property) |
| Property * | removeProperty (Property *property) |
| Property * | removeProperty (size_t index) |
remove property referred to by index | |
| Property * | removeProperty (std::string_view identifier) |
| virtual void | resetAllProperties () |
| virtual void | setAllPropertiesCurrentStateAsDefault () |
| size_t | size () const |
| virtual | ~PropertyOwner () |
| Removes all properties and notifies its observers of the removal. | |
| Public Member Functions inherited from inviwo::PropertyOwnerObservable | |
| void | notifyObserversDidAddProperty (Property *property, size_t index) |
| void | notifyObserversDidRemoveProperty (PropertyOwner *owner, Property *property, size_t index) |
| void | notifyObserversWillAddProperty (PropertyOwner *owner, Property *property, size_t index) |
| void | notifyObserversWillRemoveProperty (Property *property, size_t index) |
| Public Member Functions inherited from inviwo::Observable< PropertyOwnerObserver > | |
| void | addObserver (PropertyOwnerObserver *observer) |
| bool | isObservedBy (PropertyOwnerObserver *observer) const |
| Observable< PropertyOwnerObserver > & | operator= (const Observable< PropertyOwnerObserver > &other) |
| void | removeObserver (PropertyOwnerObserver *observer) |
| virtual void | startBlockingNotifications () override final |
| virtual void | stopBlockingNotifications () override final |
| Public Member Functions inherited from inviwo::Observable< CompositePropertyObserver > | |
| void | addObserver (CompositePropertyObserver *observer) |
| bool | isObservedBy (CompositePropertyObserver *observer) const |
| Observable< CompositePropertyObserver > & | operator= (const Observable< CompositePropertyObserver > &other) |
| void | removeObserver (CompositePropertyObserver *observer) |
| virtual void | startBlockingNotifications () override final |
| virtual void | stopBlockingNotifications () override final |
Static Public Attributes | |
| static constexpr std::string_view | classIdentifier {"org.inviwo.ListProperty"} |
| Static Public Attributes inherited from inviwo::CompositeProperty | |
| static constexpr std::string_view | classIdentifier {"org.inviwo.CompositeProperty"} |
Additional Inherited Members | |
| Static Public Member Functions inherited from inviwo::Property | |
| template<typename T, typename U> | |
| static void | setStateAsDefault (T &property, const U &state) |
| Protected Member Functions inherited from inviwo::Property | |
| void | notifyAboutChange () |
| Property & | operator= (const Property &that)=delete |
| Property & | operator= (Property &&that) |
| Property (const Property &rhs) | |
| Property (Property &&rhs) | |
| Protected Member Functions inherited from inviwo::PropertyObservable | |
| void | notifyObserversOnSetDisplayName (Property *property, const std::string &displayName) |
| void | notifyObserversOnSetIdentifier (Property *property, const std::string &identifier) |
| void | notifyObserversOnSetReadOnly (Property *property, bool readonly) |
| void | notifyObserversOnSetSemantics (Property *property, const PropertySemantics &semantics) |
| void | notifyObserversOnSetVisible (Property *property, bool visible) |
| Protected Member Functions inherited from inviwo::Observable< PropertyObserver > | |
| void | forEachObserver (C callback) |
| Protected Member Functions inherited from inviwo::ObservableInterface | |
| void | addObservationHelper (Observer *observer) |
| virtual void | addObserver (Observer *observer)=0 |
| void | removeObservationHelper (Observer *observer) |
| virtual void | removeObserver (Observer *observer)=0 |
| Protected Member Functions inherited from inviwo::PropertyOwner | |
| void | forEachProperty (std::function< void(Property &)> callback, bool recursiveSearch=false) const |
| PropertyOwner & | operator= (PropertyOwner &&that) |
| PropertyOwner (const PropertyOwner &rhs) | |
| PropertyOwner (PropertyOwner &&rhs) | |
| Protected Member Functions inherited from inviwo::Observable< PropertyOwnerObserver > | |
| void | forEachObserver (C callback) |
| Protected Member Functions inherited from inviwo::CompositePropertyObservable | |
| void | notifyObserversOnSetCollapsed (bool collapsed) |
| Protected Member Functions inherited from inviwo::Observable< CompositePropertyObserver > | |
| void | forEachObserver (C callback) |
| Protected Attributes inherited from inviwo::Property | |
| CallBackList | onChangeCallback_ |
| PropertySerializationMode | serializationMode_ |
| Protected Attributes inherited from inviwo::MetaDataOwner | |
| MetaDataMap | metaData_ |
| Protected Attributes inherited from inviwo::PropertyOwner | |
| std::vector< CompositeProperty * > | compositeProperties_ |
| std::vector< EventProperty * > | eventProperties_ |
| std::vector< std::unique_ptr< Property > > | ownedProperties_ |
| std::vector< Property * > | properties_ |
A property that has specified sub-properties which can be added using the graphical user interface.
Represents a list of properties. Properties can be added by using the prefab objects registered with the list property. The prefab objects serve as templates for instantiating new list entries. If the display name of the prefab object contains a trailing number, the number is incremented for each instance and used as display name of the newly added properties.
The UI flags (ListPropertyUIFlags) determine whether the widget will allow to add and/or remove list entries. The number of list elements is limited by setting maxNumberOfElements. A value of 0 refers to no limit.
Example:
This also works when using different types of properties as prefab objects:
| void inviwo::ListProperty::addPrefab | ( | std::unique_ptr< Property > | p | ) |
add a new prefab object p to be used as template when instantiating new list elements
| p | prefab object |
|
overridevirtual |
remove all list entries
Reimplemented from inviwo::PropertyOwner.
|
overridevirtual |
Creates a clone of this property. The clone will have the same identifier, hence the identifier must be changed if the clone should be added to the same owner as this. The new clone does not have any owner set.
Reimplemented from inviwo::CompositeProperty.
Reimplemented in inviwo::ColumnMetaDataListProperty, inviwo::FilterListProperty, and inviwo::TransformationList.
| Property * inviwo::ListProperty::constructProperty | ( | size_t | prefabIndex | ) |
construct a list entry which is created from the respective prefab object. This function has no effect if the list size will exceed the maximum number of elements.
| prefabIndex | index of prefab object used for creating the new entry |
| RangeException | in case prefabIndex is invalid |
|
overridevirtual |
Reimplemented from inviwo::CompositeProperty.
|
overridevirtual |
Reimplemented from inviwo::CompositeProperty.
|
overridevirtual |
Returns which property's widget should be used when the WidgetFactory tries to create a widget. Defaults to getClassIdentifier(), should only be overridden if a subclass want to reuse another property's widget.
Reimplemented from inviwo::CompositeProperty.
| size_t inviwo::ListProperty::getPrefabCount | ( | ) | const |
return number of prefab objects
|
overridevirtual |
insert property in the list at position index If index is not valid, the property is appended. The type of the property must match one of the prefab objects. This function has no effect if the list size will exceed the maximum number of elements.
| index | insertion point for property |
| property | property to be inserted |
| owner | if true, the list property takes ownership of the property |
Reimplemented from inviwo::PropertyOwner.
|
overridevirtual |
Check if the property is in it's default state, i.e. resetToDefaultState would do nothing
Reimplemented from inviwo::CompositeProperty.
|
overridevirtual |
Reimplemented from inviwo::PropertyOwner.
|
overridevirtual |
Determinate if the property should be included in the serialization Depends on the PropertySerializationMode and if the property is in the default state. If the mode is All it always return true, None always returns false, and default delegates to isDefaultState()
Reimplemented from inviwo::CompositeProperty.
|
overridevirtual |
Reset the state of the property back to it's default value. It is important that all overriding properties make sure to call the base class implementation.
Reimplemented from inviwo::CompositeProperty.
|
overridevirtual |
Reimplemented from inviwo::CompositeProperty.
|
overridevirtual |
Set the value of this to that of src. The "value" is in this case considered to be for example the string in a StringProperty or the float value in a FloatProperty. But not things like the identifier of display name.
Reimplemented from inviwo::CompositeProperty.
|
overridevirtual |
Save the current state of the property as the default. This state will then be used as a reference when serializing, only state different from the default will be serialized. This method should usually only be called once directly after construction in the processor constructor after setting property specific state. It is important that all overriding properties make sure to call the base class implementation.
Reimplemented from inviwo::CompositeProperty.
| void inviwo::ListProperty::setMaxNumberOfElements | ( | size_t | n | ) |
set the max number of list elements. This will remove additional properties if the list property contains more than n items.
| n | maximum number of elements in this list property |