Salome HOME
Operation which can lead to data model modifying removed from non-transactional place.
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ImmersibleZoneOp.cxx
index 41f539a22719df812fd7cc1dceda33cad6e2351b..0fad51be853d32d9db3b0d334883fa6c9677960e 100644 (file)
@@ -51,7 +51,6 @@ HYDROGUI_ImmersibleZoneOp::HYDROGUI_ImmersibleZoneOp( HYDROGUI_Module* theModule
                                                       const bool theIsEdit )
 : HYDROGUI_Operation( theModule ),
   myIsEdit( theIsEdit ),
-  myViewManager( 0 ),
   myPreviewPrs( 0 )
 {
   setName( theIsEdit ? tr( "EDIT_IMMERSIBLE_ZONE" ) : tr( "CREATE_IMMERSIBLE_ZONE" ) );
@@ -260,21 +259,21 @@ void HYDROGUI_ImmersibleZoneOp::onCreatePreview( const QString& thePolylineName
   }
 
   LightApp_Application* anApp = module()->getApp();
-  if ( !myViewManager )
-    myViewManager = ::qobject_cast<OCCViewer_ViewManager*>( 
-      anApp->getViewManager( OCCViewer_Viewer::Type(), true ) );
-
-  if ( myViewManager && !myPreviewPrs )
+  if ( !getPreviewManager() )
+    setPreviewManager( ::qobject_cast<OCCViewer_ViewManager*>( 
+                       anApp->getViewManager( OCCViewer_Viewer::Type(), true ) ) );
+  OCCViewer_ViewManager* aViewManager = getPreviewManager();
+  if ( aViewManager && !myPreviewPrs )
   {
-    if ( OCCViewer_Viewer* aViewer = myViewManager->getOCCViewer() )
+    if ( OCCViewer_Viewer* aViewer = aViewManager->getOCCViewer() )
     {
       Handle(AIS_InteractiveContext) aCtx = aViewer->getAISContext();
       if ( !aCtx.IsNull() )
-        myPreviewPrs = new HYDROGUI_Shape( aCtx, NULL );
+        myPreviewPrs = new HYDROGUI_Shape( aCtx, NULL, getPreviewZLayer() );
     }
   }
 
-  if ( myViewManager && myPreviewPrs )
+  if ( aViewManager && myPreviewPrs )
   {
     QColor aFillingColor = HYDROData_ImmersibleZone::DefaultFillingColor();
     QColor aBorderColor = HYDROData_ImmersibleZone::DefaultBorderColor();