Salome HOME
Merge branch 'master' into cgt/devCEA
[modules/shaper.git] / src / XGUI / XGUI_Tools.h
index 178b8b2a4c9bc4034a319a9cb818c1219b67180a..e64e324e29e570252a854d97b91637d5678f83e8 100644 (file)
 #include <memory>
 
 class QWidget;
+class XGUI_Workshop;
+class ModuleBase_IWorkshop;
 
 /*!
  \ingroup GUI
+ \brief Commonly used methods in XGUI package and higher.
+ */
+namespace XGUI_Tools {
+
+/**
  \brief Return directory part of the file path.
 
  If the file path does not include directory part (the file is in the
  current directory), null string is returned.
 
  \param path file path
- \param abs if true (default) \a path parameter is treated as absolute file path
+ \param isAbs if true (default) \a path parameter is treated as absolute file path
  \return directory part of the file path
- */
-namespace XGUI_Tools {
-
-/**
-* Returns directory name from name of file
-* \param path a path to a file
-* \param isAbs is absolute or relative path
 */
 QString XGUI_EXPORT dir(const QString& path, bool isAbs = true);
 
@@ -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,56 +79,25 @@ 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 theFeatures a list of checked features
  \return a boolean value
  */
-bool XGUI_EXPORT canRemoveOrRename(QWidget* theParent, const QObjectPtrList& aList);
+bool XGUI_EXPORT canRemoveOrRename(QWidget* theParent, const std::set<FeaturePtr>& theFeatures);
 
 /*! 
- 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
- \return a boolean value
- */
-bool XGUI_EXPORT allDocumentsActivated(QString& theNotActivatedNames);
-
-/*!
-  Returns a container of referenced feature to the current object in the object document.
-  \param theObject an object, which will be casted to a feature type
-  \param theRefFeatures an output container
- */
-void XGUI_EXPORT refsToFeatureInFeatureDocument(const ObjectPtr& theObject,
-                                                std::set<FeaturePtr>& theRefFeatures);
-
-/*!
- Returns true if the object if a sub child of the feature. The feature is casted to the
- composite one. If it is possible, the sub object check happens. The method is applyed
- recursively to the feature subs.
- \param theObject a candidate to be a sub object
- \param theFeature a candidate to be a composite feature
- \return a boolean value
- */
-bool XGUI_EXPORT isSubOfComposite(const ObjectPtr& theObject, const FeaturePtr& theFeature);
+ Returns converted workshop
+ \param theWorkshop an interface workshop
+ \return XGUI workshop instance
+*/
+XGUI_EXPORT XGUI_Workshop* workshop(ModuleBase_IWorkshop* theWorkshop);
 
-/*!
- 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,
- in other words it is applyed to set of the found objects until it is possible.
- It do not returns the referenced features to the object if this references is a composite feature
- 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 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>& theDirectRefFeatures,
-                                             std::set<FeaturePtr>& theIndirectRefFeatures,
-                                             std::set<FeaturePtr>& theAlreadyProcessed);
 };
 
 #endif