Salome HOME
Issue #3193: Clear property panel in case of multi-selection in sketcher.
[modules/shaper.git] / src / PartSet / PartSet_TreeNodes.cpp
index 4f2265f5027583056f154b3216e6758234edff44..c0400d6f74f356aa8abe83c655162f062a9b1b95 100644 (file)
@@ -40,6 +40,8 @@
 #include <ModelAPI_Folder.h>
 #include <ModelAPI_AttributeReference.h>
 
+#include <Config_PropManager.h>
+
 #include <QBrush>
 #include <QMap>
 
@@ -129,6 +131,13 @@ QVariant PartSet_ObjectNode::data(int theColumn, int theRole) const
       else
         return QIcon();
     }
+  case Qt::ForegroundRole:
+    if (myObject->groupName() == ModelAPI_Feature::group()) {
+      std::vector<int> aColor =
+        Config_PropManager::color("Visualization", "feature_objectbrowser_color");
+      return QColor(aColor[0], aColor[1], aColor[2]);
+    }
+    break;
   }
   return PartSet_TreeNode::data(theColumn, theRole);
 }
@@ -296,8 +305,8 @@ void PartSet_ObjectNode::update()
       aNode = myChildren.takeLast();
       delete aNode;
     }
-    foreach(ModuleBase_ITreeNode* aNode, myChildren) {
-      aNode->update();
+    foreach(ModuleBase_ITreeNode* aChildNode, myChildren) {
+      aChildNode->update();
     }
   }
   else {
@@ -351,8 +360,8 @@ QTreeNodesList PartSet_ObjectNode::objectCreated(const QObjectPtrList& theObject
         }
       }
     }
-    foreach(ModuleBase_ITreeNode* aNode, myChildren) {
-      aResult.append(aNode->objectCreated(theObjects));
+    foreach(ModuleBase_ITreeNode* aChildNode, myChildren) {
+      aResult.append(aChildNode->objectCreated(theObjects));
     }
   }
   return aResult;
@@ -389,10 +398,10 @@ QTreeNodesList PartSet_ObjectNode::objectsDeleted(
         aResult.append(this);
       int i = 0;
       ObjectPtr aBody;
-      foreach(ModuleBase_ITreeNode* aNode, myChildren) {
+      foreach(ModuleBase_ITreeNode* aChildNode, myChildren) {
         aBody = subObject(i);
-        ((PartSet_ObjectNode*)aNode)->setObject(aBody);
-        aResult.append(aNode->objectsDeleted(theDoc, theGroup));
+        ((PartSet_ObjectNode*)aChildNode)->setObject(aBody);
+        aResult.append(aChildNode->objectsDeleted(theDoc, theGroup));
         i++;
       }
     }
@@ -1119,7 +1128,7 @@ void PartSet_ObjectFolderNode::update()
   }
 }
 
-QTreeNodesList PartSet_ObjectFolderNode::objectCreated(const QObjectPtrList& theObjects)
+QTreeNodesList PartSet_ObjectFolderNode::objectCreated(const QObjectPtrList& /*theObjects*/)
 {
   QTreeNodesList aResult;
   int aFirst = -1, aLast = -1;
@@ -1153,8 +1162,8 @@ QTreeNodesList PartSet_ObjectFolderNode::objectCreated(const QObjectPtrList& the
   return aResult;
 }
 
-QTreeNodesList PartSet_ObjectFolderNode::objectsDeleted(const DocumentPtr& theDoc,
-  const QString& theGroup)
+QTreeNodesList PartSet_ObjectFolderNode::objectsDeleted(const DocumentPtr& /*theDoc*/,
+  const QString& /*theGroup*/)
 {
   QTreeNodesList aResult;
   int aFirst = -1, aLast = -1;
@@ -1199,7 +1208,16 @@ QTreeNodesList PartSet_ObjectFolderNode::objectsDeleted(const DocumentPtr& theDo
   return aResult;
 }
 
+QVariant PartSet_ObjectFolderNode::data(int theColumn, int theRole) const
+{
+  if (theRole == Qt::ForegroundRole) {
+    std::vector<int> aColor =
+      Config_PropManager::color("Visualization", "feature_objectbrowser_color");
+    return QColor(aColor[0], aColor[1], aColor[2]);
+  }
+  return PartSet_ObjectNode::data(theColumn, theRole);
 
+}
 
 //////////////////////////////////////////////////////////////////////////////////
 QVariant PartSet_StepNode::data(int theColumn, int theRole) const