Salome HOME
Imrove multi-selector control to provide items multi-selection. Preferences color...
[modules/shaper.git] / src / XGUI / XGUI_Tools.h
index 279e08560b6e60116bd8abbabce9c8c37c1bb1e0..b1947fc76e41e6ea70d4ada6bff0282290f2a6eb 100644 (file)
@@ -54,7 +54,13 @@ QString XGUI_EXPORT file(const QString& path, bool withExt = true);
  */
 QString XGUI_EXPORT addSlash(const QString& path);
 
-/// The model concerning tools
+// The model concerning tools
+
+/*! Unite object names in one string using the separator between values
+ \param theObjects a list of objects
+ \param theSeparator a separator
+ */
+QString unionOfObjectNames(const QObjectPtrList& theObjects, const QString& theSeparator);
 
 /*!
  Returns true if the feature is a model object
@@ -73,18 +79,21 @@ std::string XGUI_EXPORT featureInfo(FeaturePtr theFeature);
  all objects in the list are not PartSet document.
  It shows the warning control if the result is false.
  \param theParent a parent for the warning control
- \param theList a list of object
+ \param aList a list of object
  \return a boolean value
  */
 bool XGUI_EXPORT canRemoveOrRename(QWidget* theParent, const QObjectPtrList& aList);
 
 /*! 
- Returns true if theObject can be renamed in theName
+ Check possibility to rename object
+ \param theObject an object to rename
+ \param theName a name
  */
-bool canRename(QWidget* theParent, const ObjectPtr& theObject, const QString& theName);
+bool canRename(const ObjectPtr& theObject, const QString& theName);
 
 /*!
  Returns true if there are no parts in the document, which are not activated
+ \param theNotActivatedNames out string which contains not activated names
  \return a boolean value
  */
 bool XGUI_EXPORT allDocumentsActivated(QString& theNotActivatedNames);
@@ -107,6 +116,13 @@ void XGUI_EXPORT refsToFeatureInFeatureDocument(const ObjectPtr& theObject,
  */
 bool XGUI_EXPORT isSubOfComposite(const ObjectPtr& theObject, const FeaturePtr& theFeature);
 
+/*!
+*/
+void refsDirectToFeatureInAllDocuments(const ObjectPtr& theSourceObject, const ObjectPtr& theObject,
+                                 const QObjectPtrList& theIgnoreList,
+                                 std::set<FeaturePtr>& theDirectRefFeatures, 
+                                 std::set<FeaturePtr>& theAlreadyProcessed);
+
 /*!
  Returns a container of references feature to the source object. The search happens in the object
  document and in other Part documents if the object belongs to the PartSet. The search is recursive,
@@ -115,11 +131,25 @@ bool XGUI_EXPORT isSubOfComposite(const ObjectPtr& theObject, const FeaturePtr&
  which has the object as a sub object.
  \param theSourceObject an object, which references are searched
  \param theObject an intermediate recursive object, should be set in the source object
+ \param theIgnoreList an ignore list, the found referernces which coincide with the objects are ignored
+ \param theDirectRefFeatures direct references
+ \param theIndirectRefFeatures indirect references. These are features that refers to the direct features
+ \param theAlreadyProcessed set of processed elements, used for optimization (do not reanalyse processed)
  \return a boolean value
  */
 void XGUI_EXPORT refsToFeatureInAllDocuments(const ObjectPtr& theSourceObject,
                                              const ObjectPtr& theObject,
-                                             std::set<FeaturePtr>& theRefFeatures);
+                                             const QObjectPtrList& theIgnoreList,
+                                             std::set<FeaturePtr>& theDirectRefFeatures,
+                                             std::set<FeaturePtr>& theIndirectRefFeatures,
+                                             std::set<FeaturePtr>& theAlreadyProcessed);
+
+/*!
+* Returns true if the result is a sub object of some composite object
+* \param theObject a result object
+* \returns boolean value
+*/
+bool XGUI_EXPORT isSubOfComposite(const ObjectPtr& theObject);
 };
 
 #endif