Salome HOME
Merge branch 'master' into cgt/devCEA
[modules/shaper.git] / src / XGUI / XGUI_Tools.h
index fa1c78af5652a8760b24c5639f76099e8d8a08bb..e64e324e29e570252a854d97b91637d5678f83e8 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
+
 #ifndef XGUI_Tools_H
 #define XGUI_Tools_H
 
@@ -7,76 +9,95 @@
 
 #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 Commonly used methods in XGUI package and higher.
+ */
+namespace XGUI_Tools {
+
+/**
  \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
+ \param isAbs if true (default) \a path parameter is treated as absolute file path
  \return directory part of the file 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
  */
-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);
-}
+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