Salome HOME
0020321: EDF : Some windows do not appear depending on the platform (MinimumSizeHint())
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_Displayer.cxx
index 386b54bbc7f0fc2527ebffe682420072b2226dc7..613fbb9e4349512b65c611b9c7b4d371140b999a 100644 (file)
@@ -1,6 +1,6 @@
-//  SMESH SMESHGUI : Displayer for SMESH module
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
 //  This library is free software; you can redistribute it and/or
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+// SMESH SMESHGUI : Displayer for SMESH module
+// File   : SMESHGUI_Displayer.cxx
+// Author : Alexander SOLOVYOV, Open CASCADE S.A.S.
+// SMESH includes
 //
-//
-//  File   : SMESHGUI_Displayer.cxx
-//  Author : Alexander SOLOVYOV
-//  Module : SMESH
-//  $Header: /home/server/cvs/SMESH/SMESH_SRC/src/SMESHGUI/SMESHGUI_Displayer.cxx
-
 #include "SMESHGUI_Displayer.h"
+
 #include "SMESHGUI_VTKUtils.h"
 
+// SALOME GUI includes
 #include <SalomeApp_Study.h>
+#include <SalomeApp_Application.h>
+#include <SUIT_ViewManager.h>
 #include <SVTK_ViewModel.h>
 #include <SVTK_ViewWindow.h>
 
-SMESHGUI_Displayer::SMESHGUI_Displayer( SalomeApp_Study* st )
+SMESHGUI_Displayer::SMESHGUI_Displayer( SalomeApp_Application* app )
 : LightApp_Displayer(),
-  myStudy( st )
+  myApp( app )
 {
 }
 
@@ -55,13 +57,13 @@ SALOME_Prs* SMESHGUI_Displayer::buildPresentation( const QString& entry, SALOME_
     if( vtk_viewer )
     {
       SUIT_ViewWindow* wnd = vtk_viewer->getViewManager()->getActiveView();
-      SMESH_Actor* anActor = SMESH::FindActorByEntry( wnd, entry.latin1() );
+      SMESH_Actor* anActor = SMESH::FindActorByEntry( wnd, entry.toLatin1().data() );
       if( !anActor )
-       anActor = SMESH::CreateActor( myStudy->studyDS(), entry.latin1(), true );
+       anActor = SMESH::CreateActor( study()->studyDS(), entry.toLatin1().data(), true );
       if( anActor )
       {
        SMESH::DisplayActor( wnd, anActor );
-        prs = LightApp_Displayer::buildPresentation( entry.latin1(), aViewFrame );
+        prs = LightApp_Displayer::buildPresentation( entry.toLatin1().data(), aViewFrame );
       }
       if( prs )
        UpdatePrs( prs );
@@ -72,3 +74,13 @@ SALOME_Prs* SMESHGUI_Displayer::buildPresentation( const QString& entry, SALOME_
 
   return prs;
 }
+
+SalomeApp_Study* SMESHGUI_Displayer::study() const
+{
+  return dynamic_cast<SalomeApp_Study*>( myApp->activeStudy() );
+}
+
+bool SMESHGUI_Displayer::canBeDisplayed( const QString& /*entry*/, const QString& viewer_type ) const
+{
+  return viewer_type==SVTK_Viewer::Type();
+}