42 class QStyleOptionViewItem;
47 class PropertyTreeModel;
130 Property(
const QString& name = QString(),
134 const char *changed_slot = 0,
135 QObject* receiver = 0 );
148 virtual void removeChildren(
int start_index = 0,
int count = -1 );
161 virtual bool setValue(
const QVariant& new_value );
171 virtual void setName(
const QString& name );
174 virtual QString
getName()
const;
259 virtual QVariant
getViewData(
int column,
int role )
const;
276 virtual bool paint( QPainter* painter,
const QStyleOptionViewItem& option )
const 301 const QStyleOptionViewItem& option );
346 virtual void moveChild(
int from_index,
int to_index );
QList< Property * > children_
std::string getNameStd() const
Return the name of this Property as a std::string.
Property * getParent() const
Return the parent Property.
virtual void expand()
Expand (show the children of) this Property.
int rowNumberInParent() const
Return the row number of this property within its parent, or -1 if it has no parent.
virtual ~Property()
Destructor. Removes this property from its parent's list of children.
void changed()
Emitted by setValue() just after the value has changed.
PropertyTreeModel * model_
Pointer to the PropertyTreeModel managing this property tree.
virtual void load(const Config &config)
Load the value of this property and/or its children from the given Config reference.
virtual bool setValue(const QVariant &new_value)
Set the new value for this property. Returns true if the new value is different from the old value...
bool child_indexes_valid_
True if row_number_within_parent_ of all children is valid, false if not.
virtual QIcon getIcon() const
A single element of a property tree, with a name, value, description, and possibly children...
bool shouldBeSaved() const
Returns true if the property is not read-only AND has data worth saving.
void childListChanged(Property *this_property)
Emitted after insertions and deletions of child Properties.
virtual QVariant getViewData(int column, int role) const
Return data appropriate for the given column (0 or 1) and role for this Property. ...
virtual void setName(const QString &name)
Set the name.
virtual bool getDisableChildren()
If true, the children of this property should set their ItemIsEnabled flag to false.
virtual void setDescription(const QString &description)
Set the description.
QVariant value_
This is the central property value. If you set it directly in a subclass, do so with care because man...
virtual int numChildren() const
Return the number of child objects (Property or otherwise).
Property * takeChild(Property *child)
Remove a given child object and return a pointer to it.
int row_number_within_parent_
Configuration data storage class.
virtual void collapse()
Collapse (hide the children of) this Property.
bool isAncestorOf(Property *possible_child) const
Returns true if this is an ancestor of possible_child, meaning is the parent or parent of parent etc...
void loadValue(const Config &config)
Load the value of this property specifically, not including children.
virtual void setIcon(const QIcon &icon)
Set the icon to be displayed next to the property.
virtual Property * subProp(const QString &sub_name)
Return the first child Property with the given name, or the FailureProperty if no child has the name...
void reindexChildren()
Set row_number_within_parent_ correctly for every child. Sets child_indexes_valid_ to true when done...
virtual void removeChildren(int start_index=0, int count=-1)
Remove and delete some or all child Properties. Does not change the value of this Property...
static Property * failprop_
The property returned by subProp() when the requested name is not found.
virtual void save(Config config) const
Write the value of this property and/or its children into the given Config reference.
Property * childAt(int index) const
Return the child Property with the given index, or NULL if the index is out of bounds or if the child...
void setParent(Property *new_parent)
Set parent property, without telling the parent.
void setModel(PropertyTreeModel *model)
Set the model managing this Property and all its child properties, recursively.
virtual void moveChild(int from_index, int to_index)
Move the child at from_index to to_index.
void show()
Show this Property in any PropertyTreeWidgets.
virtual bool getHidden() const
Return the hidden/shown state. True means hidden, false means visible.
PropertyTreeModel * getModel() const
Return the model managing this Property and its childrent.
bool contains(Property *possible_child) const
Return true if the list of children includes possible_child, false if not.
void setShouldBeSaved(bool save)
If save is true and getReadOnly() is false, shouldBeSaved will return true; otherwise false...
virtual Property * takeChildAt(int index)
Take a child out of the child list, but don't destroy it.
virtual void setHidden(bool hidden)
Hide or show this property in any PropertyTreeWidget viewing its parent.
virtual bool paint(QPainter *painter, const QStyleOptionViewItem &option) const
Hook to provide custom painting of the value data (right-hand column) in a subclass.
Property(const QString &name=QString(), const QVariant default_value=QVariant(), const QString &description=QString(), Property *parent=0, const char *changed_slot=0, QObject *receiver=0)
Constructor.
void aboutToChange()
Emitted by setValue() just before the value has changed.
virtual void addChild(Property *child, int index=-1)
Add a child property.
virtual QVariant getValue() const
Return the value of this Property as a QVariant. If the value has never been set, an invalid QVariant...
virtual QString getDescription() const
Return the description.
virtual QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option)
Create an editor widget to edit the value of this property.
void hide()
Hide this Property in any PropertyTreeWidgets.
virtual void setReadOnly(bool read_only)
Prevent or allow users to edit this property from a PropertyTreeWidget.
virtual Property * childAtUnchecked(int index) const
Return the child Property with the given index, without checking whether the index is within bounds...
virtual QString getName() const
Return the name of this Property as a QString.
virtual bool getReadOnly()
Return the read-only-ness of this property.
virtual Qt::ItemFlags getViewFlags(int column) const
Return item flags appropriate for the given column (0 or 1) for this Property.