Salome HOME
refs #550: fix crash when myObject is NULL
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ImportBathymetryOp.cxx
index 60ae9a44e734a48dcf163936b55d69b888d50318..fb8e663a1bf1d02ec1cdaf8eb85a6b3ad94adc63 100644 (file)
@@ -1,12 +1,8 @@
-// Copyright (C) 2007-2013  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
-//
+// Copyright (C) 2014-2015  EDF-R&D
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -23,6 +19,7 @@
 #include "HYDROGUI_ImportBathymetryOp.h"
 
 #include "HYDROGUI_DataModel.h"
+#include "HYDROGUI_DataObject.h"
 #include "HYDROGUI_ImportBathymetryDlg.h"
 #include "HYDROGUI_Module.h"
 #include "HYDROGUI_Tool.h"
@@ -62,7 +59,8 @@ void HYDROGUI_ImportBathymetryOp::startOperation()
 
   if( myIsEdit )
   {
-    myEditedObject = Handle(HYDROData_Bathymetry)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
+    if ( isApplyAndClose() )
+      myEditedObject = Handle(HYDROData_Bathymetry)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
     if( !myEditedObject.IsNull() )
     {
       QString aName = myEditedObject->GetName();
@@ -96,7 +94,8 @@ HYDROGUI_InputPanel* HYDROGUI_ImportBathymetryOp::createInputPanel() const
 }
 
 bool HYDROGUI_ImportBathymetryOp::processApply( int& theUpdateFlags,
-                                                QString& theErrorMsg )
+                                                QString& theErrorMsg,
+                                                QStringList& theBrowseObjectsEntries )
 {
   HYDROGUI_ImportBathymetryDlg* aPanel = 
     ::qobject_cast<HYDROGUI_ImportBathymetryDlg*>( inputPanel() );
@@ -184,6 +183,8 @@ bool HYDROGUI_ImportBathymetryOp::processApply( int& theUpdateFlags,
       aVTKMgr = module()->getApp()->viewManager( SVTK_Viewer::Type() );
     }
   }
+
+  /*
   // If there is no VTK viewer yet then create a new one
   if ( !aVTKMgr )
   {
@@ -193,9 +194,17 @@ bool HYDROGUI_ImportBathymetryOp::processApply( int& theUpdateFlags,
   if ( aVTKMgr )
   {
     module()->setObjectVisible( (size_t)aVTKMgr->getViewModel(), aBathymetryObj, true );
+  }*/
+
+  theUpdateFlags = UF_Model | UF_OCCViewer | UF_OCC_Forced |
+                              UF_VTKViewer | UF_VTK_Forced;
+
+  if( !myIsEdit )
+  {
+    QString anEntry = HYDROGUI_DataObject::dataObjectEntry( aBathymetryObj );
+    theBrowseObjectsEntries.append( anEntry );
   }
 
-  theUpdateFlags = UF_Model | UF_VTKViewer | UF_VTK_Init | UF_VTK_Forced;
   return true;
 }