1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
10 #include <ModelAPI_Feature.h>
12 #include <ModuleBase_Definitions.h>
20 \brief Return directory part of the file path.
22 If the file path does not include directory part (the file is in the
23 current directory), null string is returned.
26 \param abs if true (default) \a path parameter is treated as absolute file path
27 \return directory part of the file path
29 namespace XGUI_Tools {
32 * Returns directory name from name of file
33 * \param path a path to a file
34 * \param isAbs is absolute or relative path
36 QString XGUI_EXPORT dir(const QString& path, bool isAbs = true);
39 \brief Return file name part of the file path.
42 \param withExt if true (default) complete file name (with all
43 extension except the last) is returned, otherwise only base name
45 \return file name part of the file path
47 QString XGUI_EXPORT file(const QString& path, bool withExt = true);
50 \brief Add a slash (platform-specific) to the end of \a path
51 if it is not already there.
52 \param path directory path
53 \return modified path (with slash added to the end)
55 QString XGUI_EXPORT addSlash(const QString& path);
57 // The model concerning tools
60 Returns true if the feature is a model object
61 \param theFeature a feature
63 bool XGUI_EXPORT isModelObject(FeaturePtr theFeature);
66 Returns the string presentation of the given feature
67 \param theFeature a feature
69 std::string XGUI_EXPORT featureInfo(FeaturePtr theFeature);
72 Returns true if there are no parts in the document, which are not activated or
73 all objects in the list are not PartSet document.
74 It shows the warning control if the result is false.
75 \param theParent a parent for the warning control
76 \param aList a list of object
77 \return a boolean value
79 bool XGUI_EXPORT canRemoveOrRename(QWidget* theParent, const QObjectPtrList& aList);
82 Check possibility to rename object
83 \param theObject an object to rename
86 bool canRename(const ObjectPtr& theObject, const QString& theName);
89 Returns true if there are no parts in the document, which are not activated
90 \param theNotActivatedNames out string which contains not activated names
91 \return a boolean value
93 bool XGUI_EXPORT allDocumentsActivated(QString& theNotActivatedNames);
96 Returns a container of referenced feature to the current object in the object document.
97 \param theObject an object, which will be casted to a feature type
98 \param theRefFeatures an output container
100 void XGUI_EXPORT refsToFeatureInFeatureDocument(const ObjectPtr& theObject,
101 std::set<FeaturePtr>& theRefFeatures);
104 Returns true if the object if a sub child of the feature. The feature is casted to the
105 composite one. If it is possible, the sub object check happens. The method is applyed
106 recursively to the feature subs.
107 \param theObject a candidate to be a sub object
108 \param theFeature a candidate to be a composite feature
109 \return a boolean value
111 bool XGUI_EXPORT isSubOfComposite(const ObjectPtr& theObject);
114 Returns a container of references feature to the source object. The search happens in the object
115 document and in other Part documents if the object belongs to the PartSet. The search is recursive,
116 in other words it is applyed to set of the found objects until it is possible.
117 It do not returns the referenced features to the object if this references is a composite feature
118 which has the object as a sub object.
119 \param theSourceObject an object, which references are searched
120 \param theObject an intermediate recursive object, should be set in the source object
121 \param theDirectRefFeatures direct references
122 \param theIndirectRefFeatures indirect references
123 \param theAlreadyProcessed set of processed elements, used for optimization (do not reanalyse processed)
124 \return a boolean value
126 void XGUI_EXPORT refsToFeatureInAllDocuments(const ObjectPtr& theSourceObject,
127 const ObjectPtr& theObject,
128 std::set<FeaturePtr>& theDirectRefFeatures,
129 std::set<FeaturePtr>& theIndirectRefFeatures,
130 std::set<FeaturePtr>& theAlreadyProcessed);
133 * Returns true if the result is a sub object of some composite object
134 * \param theObject a result object
135 * \returns boolean value
137 bool XGUI_EXPORT isSubOfComposite(const ObjectPtr& theObject);