Salome HOME
refs #636: the flags of update 2d/3d geometry
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ImportLandCoverOp.cxx
index ef7756b15720b2be003a86871067a96a3eca9395..6b026e90349e3693d935514f2b18808b5a64e80a 100644 (file)
@@ -215,18 +215,18 @@ void HYDROGUI_ImportLandCoverOp::onFileSelected()
     TopTools_SequenceOfShape aFaces;
     HYDROData_ShapeFile anImporter;
 
-    if (anImporter.ImportLandCovers(aFileName, aPolygonsList, aFaces))
-    {
-      aPanel->setPolygonNames(aPolygonsList);
-
-      SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>( module()->getApp()->activeStudy() );
-      if ( !aStudy ) {
-        return;
-      }
+    SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>( module()->getApp()->activeStudy() );
+    if ( !aStudy )
+      return;
 
-      erasePreview();
+    erasePreview();
 
-      Handle(AIS_InteractiveContext) aCtx = NULL;
+    Handle(AIS_InteractiveContext) aCtx = NULL;
+    int aShapeTypeOfFile = -1;
+    int aStat = anImporter.ImportLandCovers(aFileName, aPolygonsList, aFaces, aShapeTypeOfFile);
+    if (aStat == 1)
+    {
+      aPanel->setPolygonNames(aPolygonsList);
 
       LightApp_Application* anApp = module()->getApp();
       if ( !getPreviewManager() )
@@ -273,10 +273,20 @@ void HYDROGUI_ImportLandCoverOp::onFileSelected()
     }
     else
     {
-      SUIT_MessageBox::warning( module()->getApp()->desktop(), tr( "IMPORT_LANDCOVER" ), "Cannot import land cover;\nThe shape type is not polygon" );
-        
+      erasePreview();
+      aPanel->setPolygonNames(QStringList());
+      aPanel->setObjectName("");
       QApplication::restoreOverrideCursor();
-      abort();
+      QString aMess = "Cannot import land cover;\n";
+      if (aStat == -1)
+        aMess += "Cannot open SHP file";
+      else if (aStat == -2)
+        aMess += "Cannot open SHX file";
+      else 
+        aMess += "The shape type of file is " + anImporter.GetShapeTypeName(aShapeTypeOfFile);
+      SUIT_MessageBox::warning( module()->getApp()->desktop(), tr( "IMPORT_LANDCOVER" ), aMess);
+      commitDocOperation();
+      //abort();
     }
     anImporter.Free();