X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Tools.h;h=b158a62c1250e2d5af992e8d96e6eb5b24ecb52e;hb=92b6738b4a67f24c626b106e2bcf7651577ff2bc;hp=aebea7f6e37aed046c4d07e0369cb6986248bcd6;hpb=c7505612fcb85d694bd28f00795243b552892c6c;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Tools.h b/src/XGUI/XGUI_Tools.h index aebea7f6e..b158a62c1 100644 --- a/src/XGUI/XGUI_Tools.h +++ b/src/XGUI/XGUI_Tools.h @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> + #ifndef XGUI_Tools_H #define XGUI_Tools_H @@ -5,7 +7,16 @@ #include #include +#include + +#include + +#include + +class QWidget; + /*! + \ingroup GUI \brief Return directory part of the file path. If the file path does not include directory part (the file is in the @@ -15,6 +26,13 @@ \param abs 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); /*! @@ -28,16 +46,6 @@ QString XGUI_EXPORT dir(const QString& path, bool isAbs = true); */ QString XGUI_EXPORT file(const QString& path, bool withExt = true); -/*! - \brief Return extension part of the file path. - - \param path file path - \param full if true complete extension (all extensions, dot separated) - is returned, otherwise (default) only last extension is returned - \return extension part of the file path - */ -QString XGUI_EXPORT extension(const QString& path, bool full = false); - /*! \brief Add a slash (platform-specific) to the end of \a path if it is not already there. @@ -46,10 +54,73 @@ QString XGUI_EXPORT extension(const QString& path, bool full = false); */ QString XGUI_EXPORT addSlash(const QString& path); +/// The model concerning tools + +/*! + Returns true if the feature is a model object + \param theFeature a feature + */ +bool XGUI_EXPORT isModelObject(FeaturePtr theFeature); + +/*! + Returns the string presentation of the given feature + \param theFeature a feature + */ +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 theList a list of object + \return a boolean value + */ +bool XGUI_EXPORT canRemoveOrRename(QWidget* theParent, const QObjectPtrList& aList); + /*! - Creates a rect with TopLeft = ( min(x1,x2), min(y1,y2) ) - and BottomRight = ( TopLeft + (x2-x1)(y2-y1) ) + Returns true if theObject can be renamed in theName + */ +bool canRename(QWidget* theParent, 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& 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 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 + \return a boolean value */ -QRect XGUI_EXPORT makeRect(const int x1, const int y1, const int x2, const int y2); +void XGUI_EXPORT refsToFeatureInAllDocuments(const ObjectPtr& theSourceObject, + const ObjectPtr& theObject, + std::set& theDirectRefFeatures, + std::set& theIndirectRefFeatures); +}; #endif