20 #ifndef ModuleBase_ITreeNode_H
21 #define ModuleBase_ITreeNode_H
23 #include "ModuleBase.h"
24 #include "ModuleBase_Definitions.h"
26 #include <ModelAPI_Object.h>
27 #include <ModelAPI_Document.h>
35 #pragma warning(disable: 4100)
41 typedef QList<ModuleBase_ITreeNode*> QTreeNodesList;
46 enum VisibilityState {
58 virtual std::string type()
const = 0;
61 virtual QVariant
data(
int theColumn,
int theRole)
const {
return QVariant(); }
64 virtual Qt::ItemFlags
flags(
int theColumn)
const {
65 return Qt::ItemIsSelectable | Qt::ItemIsEnabled;
77 if ((theRow > -1) && (theRow <
myChildren.length()))
88 if (aNode->
object() == theObj)
105 if (aNode == theNode)
121 virtual ObjectPtr
object()
const {
return ObjectPtr(); }
130 return QTreeNodesList();
137 virtual QTreeNodesList
objectsDeleted(
const DocumentPtr& theDoc,
const QString& theGroup)
138 {
return QTreeNodesList(); }
183 void sortChildren() {
191 int aMaxCount = aSize * aSize;
196 if (aCount > aMaxCount)
200 aObject = aNode->
object();
202 aIdx = aObject->document()->index(aObject,
true) + aShift;
Definition: ModuleBase_ITreeNode.h:44
ModuleBase_ITreeNode * subNode(int theRow) const
Returns a children node according to given row (index)
Definition: ModuleBase_ITreeNode.h:75
ModuleBase_ITreeNode(ModuleBase_ITreeNode *theParent=0)
Default constructor.
Definition: ModuleBase_ITreeNode.h:54
virtual VisibilityState visibilityState() const
Returns visibilitystate of the node in viewer 3d.
Definition: ModuleBase_ITreeNode.h:170
bool hasSubNode(ModuleBase_ITreeNode *theNode, bool allLevels=true) const
Returns true if the given node is found within children.
Definition: ModuleBase_ITreeNode.h:102
ModuleBase_ITreeNode * myParent
Parent of the node.
Definition: ModuleBase_ITreeNode.h:217
virtual void update()
Updates all sub-nodes of the node (checks whole sub-tree)
Definition: ModuleBase_ITreeNode.h:124
virtual ModuleBase_ITreeNode * findParent(const DocumentPtr &theDoc, QString theGroup)
Returns a node which belongs to the given document and contains objects of the given group.
Definition: ModuleBase_ITreeNode.h:150
virtual ObjectPtr object() const
Returns object referenced by the node (can be null)
Definition: ModuleBase_ITreeNode.h:121
virtual QTreeNodesList objectCreated(const QObjectPtrList &theObjects)
Process creation of objects.
Definition: ModuleBase_ITreeNode.h:129
QTreeNodesList children() const
Returns list of the node children.
Definition: ModuleBase_ITreeNode.h:72
ModuleBase_ITreeNode * subNode(const ObjectPtr &theObj, bool allLevels=true) const
Finds a node which contains the referenced object.
Definition: ModuleBase_ITreeNode.h:85
virtual Qt::ItemFlags flags(int theColumn) const
Returns properties flag of the item.
Definition: ModuleBase_ITreeNode.h:64
virtual QVariant data(int theColumn, int theRole) const
Returns the node representation according to theRole.
Definition: ModuleBase_ITreeNode.h:61
ModuleBase_ITreeNode * parent() const
Returns parent node of the current node.
Definition: ModuleBase_ITreeNode.h:69
virtual QTreeNodesList objectsDeleted(const DocumentPtr &theDoc, const QString &theGroup)
Process deletion of objects.
Definition: ModuleBase_ITreeNode.h:137
QTreeNodesList myChildren
Children of the node.
Definition: ModuleBase_ITreeNode.h:218
int childrenCount() const
Returns number of children.
Definition: ModuleBase_ITreeNode.h:116
virtual void deleteChildren()
deletes all children nodes (called in destructor.)
Definition: ModuleBase_ITreeNode.h:175
virtual ModuleBase_ITreeNode * findRoot(const DocumentPtr &theDoc)
Returns root node of a data tree of the given document.
Definition: ModuleBase_ITreeNode.h:156
virtual DocumentPtr document() const
Returns document object of the sub-tree. Has to be reimplemented in sub-tree root object.
Definition: ModuleBase_ITreeNode.h:144
virtual ModuleBase_IWorkshop * workshop() const
Returns workshop object. Has to be reimplemented in a root node.
Definition: ModuleBase_ITreeNode.h:141
Class which provides access to Workshop object services.
Definition: ModuleBase_IWorkshop.h:48