Salome HOME
Issue #662 Warning on remove or rename of (may be) used object in PartSet
[modules/shaper.git] / src / XGUI / XGUI_Tools.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
2
3 #ifndef XGUI_Tools_H
4 #define XGUI_Tools_H
5
6 #include "XGUI.h"
7 #include <QString>
8 #include <QRect>
9
10 #include <ModelAPI_Feature.h>
11
12 #include <ModuleBase_Definitions.h>
13
14 #include <memory>
15
16 class QWidget;
17
18 /*!
19  \ingroup GUI
20  \brief Return directory part of the file path.
21
22  If the file path does not include directory part (the file is in the
23  current directory), null string is returned.
24
25  \param path file path
26  \param abs if true (default) \a path parameter is treated as absolute file path
27  \return directory part of the file path
28  */
29 namespace XGUI_Tools {
30
31 /**
32 * Returns directory name from name of file
33 * \param path a path to a file
34 * \param isAbs is absolute or relative path
35 */
36 QString XGUI_EXPORT dir(const QString& path, bool isAbs = true);
37
38 /*!
39  \brief Return file name part of the file path.
40
41  \param path file path
42  \param withExt if true (default) complete file name (with all
43  extension except the last) is returned, otherwise only base name
44  is returned
45  \return file name part of the file path
46  */
47 QString XGUI_EXPORT file(const QString& path, bool withExt = true);
48
49 /*!
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)
54  */
55 QString XGUI_EXPORT addSlash(const QString& path);
56
57 /// The model concerning tools
58
59 /*!
60  Returns true if the feature is a model object
61  \param theFeature a feature
62  */
63 bool XGUI_EXPORT isModelObject(FeaturePtr theFeature);
64
65 /*!
66  Returns the string presentation of the given feature
67  \param theFeature a feature
68  */
69 std::string XGUI_EXPORT featureInfo(FeaturePtr theFeature);
70
71 /*!
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 theList a list of object
77  \return a boolean value
78  */
79 bool XGUI_EXPORT canRemoveOrRename(QWidget* theParent, const QObjectPtrList& aList);
80
81 /*!
82  Returns true if there are no parts in the document, which are not activated
83  \return a boolean value
84  */
85 bool XGUI_EXPORT allDocumentsActivated(QString& theNotActivatedNames);
86 };
87
88 #endif