Salome HOME
Update copyrights
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_Utils.h
index 2cf9eaac2896dabd7d51b2b33f3dfeb360afb6c2..dcbe72bddcd22114e7ffbe18540bb0c3b7c7c3fe 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -80,10 +80,6 @@ SMESHGUI_EXPORT
 SMESHGUI_EXPORT
   SUIT_ResourceMgr*
   GetResourceMgr( const SalomeApp_Module* );
-  
-SMESHGUI_EXPORT
-  _PTR(Study)
-  GetCStudy( const SalomeApp_Study* );
 
 SMESHGUI_EXPORT
   CORBA::Object_var DataOwnerToObject( const LightApp_DataOwnerPtr& );
@@ -104,7 +100,7 @@ SMESHGUI_EXPORT
   SUIT_ViewWindow* GetActiveWindow();
 
 SMESHGUI_EXPORT
-  _PTR(Study) GetActiveStudyDocument();
+  _PTR(Study) getStudy();
 
 SMESHGUI_EXPORT
   _PTR(SObject) FindSObject( CORBA::Object_ptr );
@@ -117,10 +113,6 @@ SMESHGUI_EXPORT
   void setFileType( _PTR(SObject), const QString& );
   void setFileName( _PTR(SObject), const QString& );
 
-SMESHGUI_EXPORT
-  CORBA::Object_var SObjectToObject( _PTR(SObject),
-                                     _PTR(Study) );
-
 SMESHGUI_EXPORT
   CORBA::Object_var SObjectToObject( _PTR(SObject) );
 
@@ -160,14 +152,26 @@ SMESHGUI_EXPORT
       return TInterface::_nil();
     }
 
+SMESHGUI_EXPORT
+  CORBA::Object_var EntryToObject( const QString& );
+
+  template<class TInterface> typename TInterface::_var_type
+    EntryToInterface( const QString& theEntry )
+    {
+      CORBA::Object_var anObj = EntryToObject( theEntry );
+      if ( !CORBA::is_nil( anObj ) )
+        return TInterface::_narrow( anObj );
+      return TInterface::_nil();
+    }
+
 SMESHGUI_EXPORT
   int GetNameOfSelectedIObjects( LightApp_SelectionMgr*, QString& );
 
 SMESHGUI_EXPORT
-  _PTR(SObject) GetMeshOrSubmesh( _PTR(SObject) );
+  QString GetName( const Handle(SALOME_InteractiveObject)& theIO );
 
 SMESHGUI_EXPORT
-  void ModifiedMesh( _PTR(SObject), bool, bool = false );
+  _PTR(SObject) GetMeshOrSubmesh( _PTR(SObject) );
 
 SMESHGUI_EXPORT
   void ShowHelpFile( const QString& );
@@ -182,8 +186,39 @@ SMESHGUI_EXPORT
 
 
   // type to use instead of SMESH_IDSource_var for automatic UnRegister()
-  typedef SALOME::GenericObj_wrap<SMESH_IDSource> SMESH_IDSource_wrap;
+  typedef SALOME::GenericObj_wrap<SMESH_IDSource> IDSource_wrap;
 
+  /*!
+   * \brief Class useful to convert a string returned from a CORBA call
+   *        to other string types w/o memory leak.
+   *
+   *        Usage (of instantiations): QString s = toQStr( objVar->GetName() );
+   *                              std::string ss = toStdStr( objVar->GetName() );
+   */
+  template < class _STRING >
+  class toStrT : public _STRING {
+    CORBA::String_var myStr;
+  public:
+    toStrT( char* s ): _STRING( s ), myStr(s)
+    {}
+    operator const char*() const
+    { return myStr.in(); }
+  };
+  // Instantiations:
+  struct toQStr : public toStrT< QString > {
+    toQStr( char* s ): toStrT< QString >(s) {}
+  };
+  struct toStdStr : public toStrT< std::string > {
+    toStdStr( char* s ): toStrT< std::string >(s) {}
+  };
+
+  QString fromUtf8( const char* txt );
+  QString fromUtf8( const std::string& txt );
+  struct toUtf8: public std::string
+  {
+    toUtf8( const QString& txt );
+    operator const char*() const { return c_str(); }
+  };
 }
 
 #endif // SMESHGUI_UTILS_H