X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Tools.h;h=da38e87add14de71a9618366bce4e2670c1f052a;hb=220bd2b37119be1c65abf88a88792445cb9d99f8;hp=1a5c7b05f2b2103dc91e33dcc25025ef9a47742f;hpb=ed67f7abf2985c7225b7862c076257825a421993;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Tools.h b/src/XGUI/XGUI_Tools.h index 1a5c7b05f..da38e87ad 100644 --- a/src/XGUI/XGUI_Tools.h +++ b/src/XGUI/XGUI_Tools.h @@ -9,8 +9,14 @@ #include +#include + #include +class QWidget; +class XGUI_Workshop; +class ModuleBase_IWorkshop; + /*! \ingroup GUI \brief Return directory part of the file path. @@ -50,7 +56,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 @@ -64,6 +76,89 @@ bool XGUI_EXPORT isModelObject(FeaturePtr theFeature); */ std::string XGUI_EXPORT featureInfo(FeaturePtr theFeature); +/*! + Returns true if there are no parts in the document, which are not activated or + 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 aList a list of object + \return a boolean value + */ +bool XGUI_EXPORT canRemoveOrRename(QWidget* theParent, const QObjectPtrList& aList); + +/*! + Check possibility to rename object + \param theObject an object to rename + \param theName a name + */ +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); + +/*! + 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& 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); + +/*! +*/ +void refsDirectToFeatureInAllDocuments(const ObjectPtr& theSourceObject, const ObjectPtr& theObject, + const QObjectPtrList& theIgnoreList, + std::set& theDirectRefFeatures, + std::set& 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, + 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 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, + const QObjectPtrList& theIgnoreList, + std::set& theDirectRefFeatures, + std::set& theIndirectRefFeatures, + std::set& 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); + +/*! + Returns converted workshop + \param theWorkshop an interface workshop + \return XGUI workshop instance +*/ +XGUI_EXPORT XGUI_Workshop* workshop(ModuleBase_IWorkshop* theWorkshop); };