X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Tools.h;h=b1947fc76e41e6ea70d4ada6bff0282290f2a6eb;hb=d2b0d7e910c2c28e3611c3adbf688810ff8edc37;hp=f45575eea6b241782a7f79b464c8e6bbb6ef0e0d;hpb=7682dee5122d928f4f59f8ee6a5ad4c110fb2ec2;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Tools.h b/src/XGUI/XGUI_Tools.h index f45575eea..b1947fc76 100644 --- a/src/XGUI/XGUI_Tools.h +++ b/src/XGUI/XGUI_Tools.h @@ -1,71 +1,155 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> #ifndef XGUI_Tools_H #define XGUI_Tools_H +#include "XGUI.h" #include #include -/*! - \brief Convert the given parameter to the platform-specific library name. +#include + +#include + +#include - The function appends platform-specific prefix (lib) and suffix (.dll/.so) - to the library file name. - For example, if \a str = "mylib", "libmylib.so" is returned for Linux and - mylib.dll for Windows. +class QWidget; - \param str short library name - \return full library name +/*! + \ingroup GUI + \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 + \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 library( const QString& str ); +QString XGUI_EXPORT dir(const QString& path, bool isAbs = true); /*! - \brief Return directory part of the file path. + \brief Return file name 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 withExt if true (default) complete file name (with all + extension except the last) is returned, otherwise only base name + is returned + \return file name part of the file path + */ +QString XGUI_EXPORT file(const QString& path, bool withExt = true); - \param path file path - \param abs if true (default) \a path parameter is treated as absolute file path - \return directory part of the file path -*/ -QString dir( const QString& path, bool isAbs = true); +/*! + \brief Add a slash (platform-specific) to the end of \a path + if it is not already there. + \param path directory path + \return modified path (with slash added to the end) + */ +QString XGUI_EXPORT addSlash(const QString& path); + +// 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); /*! - \brief Return file name part of the file path. + Returns true if the feature is a model object + \param theFeature a feature + */ +bool XGUI_EXPORT isModelObject(FeaturePtr theFeature); - \param path file path - \param withExt if true (default) complete file name (with all - extension except the last) is returned, otherwise only base name - is returned - \return file name part of the file path -*/ -QString file( const QString& path, bool withExt = true ); +/*! + Returns the string presentation of the given feature + \param theFeature a feature + */ +std::string XGUI_EXPORT featureInfo(FeaturePtr theFeature); /*! - \brief Return extension part of the file path. + 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); - \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 extension( const QString& path, bool full = false ); +/*! + 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); /*! - \brief Add a slash (platform-specific) to the end of \a path - if it is not already there. - \param path directory path - \return modified path (with slash added to the end) */ -QString addSlash( const QString& path ); +void refsDirectToFeatureInAllDocuments(const ObjectPtr& theSourceObject, const ObjectPtr& theObject, + const QObjectPtrList& theIgnoreList, + std::set& theDirectRefFeatures, + std::set& theAlreadyProcessed); -/*! - Creates a rect with TopLeft = ( min(x1,x2), min(y1,y2) ) - and BottomRight = ( TopLeft + (x2-x1)(y2-y1) ) -*/ -QRect makeRect( const int x1, const int y1, const int x2, const int y2 ); +/*! + 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); +}; -#endif \ No newline at end of file +#endif