Salome HOME
Improvement for key "Delete" processing: should be done only on possible objects...
[modules/shaper.git] / src / XGUI / XGUI_Tools.h
index fa1c78af5652a8760b24c5639f76099e8d8a08bb..a8d51f2d505745c77f0074bbd656050d32c254ac 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
+
 #ifndef XGUI_Tools_H
 #define XGUI_Tools_H
 
@@ -7,10 +9,16 @@
 
 #include <ModelAPI_Feature.h>
 
-#include <boost/shared_ptr.hpp>
+#include <ModuleBase_Definitions.h>
+
+#include <memory>
+
+class QWidget;
+class XGUI_Workshop;
+class ModuleBase_IWorkshop;
 
-class TopoDS_Shape;
 /*!
+ \ingroup GUI
  \brief Return directory part of the file path.
 
  If the file path does not include directory part (the file is in the
@@ -20,63 +28,78 @@ class TopoDS_Shape;
  \param abs if true (default) \a path parameter is treated as absolute file path
  \return directory part of the file path
  */
-namespace XGUI_Tools
-{
-  QString XGUI_EXPORT dir(const QString& path, bool isAbs = true);
-
-  /*!
-   \brief Return file name part of the file path.
-
-   \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);
-
-  /*!
-   \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.
-   \param path directory path
-   \return modified path (with slash added to the end)
-   */
-  QString XGUI_EXPORT addSlash(const QString& path);
-
-  /*! 
-   Creates a rect with TopLeft = ( min(x1,x2), min(y1,y2) )
-   and BottomRight = ( TopLeft + (x2-x1)(y2-y1) )    
-   */
-  QRect XGUI_EXPORT makeRect(const int x1, const int y1, const int x2, const int y2);
-
-  /// 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 pointer on real feature
-  */
-  FeaturePtr realFeature(const FeaturePtr theFeature);
-}
+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);
+
+/*!
+ \brief Return file name part of the file path.
+
+ \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);
+
+/*!
+ \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);
+
+/*!
+ 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 theFeatures a list of checked features
+ \return a boolean value
+ */
+bool XGUI_EXPORT canRemoveOrRename(QWidget* theParent, const std::set<FeaturePtr>& theFeatures);
+
+/*! 
+ Check possibility to rename object
+ \param theObject an object to rename
+ \param theName a name
+ */
+bool canRename(const ObjectPtr& theObject, const QString& theName);
+
+/*!
+ Returns converted workshop
+ \param theWorkshop an interface workshop
+ \return XGUI workshop instance
+*/
+XGUI_EXPORT XGUI_Workshop* workshop(ModuleBase_IWorkshop* theWorkshop);
+
+};
 
 #endif