Salome HOME
refs #585: polylines operations (split/merge)
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ExportFileOp.cxx
index f1fb2ed34978e715f5cabf16f3b8c64b30321e95..02483407f1cd784252eed68dca1c19b7e87ec0ed 100644 (file)
@@ -82,23 +82,28 @@ void HYDROGUI_ExportFileOp::startOperation()
   else
   {
     QString aFileName = SUIT_FileDlg::getFileName( module()->getApp()->desktop(), "", aFilter, tr( "EXPORT_POLYLINE" ), false );
-    SHPHandle hSHPHandle;
-    if (!aPolyXYSeq.IsEmpty() && aPoly3DSeq.IsEmpty())
+    if (!aFileName.isEmpty())
     {
-      hSHPHandle = SHPCreate( aFileName.toAscii().data(), SHPT_ARC );
-      for (int i = 1; i <= aPolyXYSeq.Size(); i++)
-        WriteObjectPolyXY(hSHPHandle, aPolyXYSeq(i));
+      SHPHandle hSHPHandle;
+      if (!aPolyXYSeq.IsEmpty() && aPoly3DSeq.IsEmpty())
+      {
+        hSHPHandle = SHPCreate( aFileName.toAscii().data(), SHPT_ARC );
+        for (int i = 1; i <= aPolyXYSeq.Size(); i++)
+          WriteObjectPolyXY(hSHPHandle, aPolyXYSeq(i));
+      }
+      else if (aPolyXYSeq.IsEmpty() && !aPoly3DSeq.IsEmpty())
+      {
+        hSHPHandle = SHPCreate( aFileName.toAscii().data(), SHPT_ARCZ );
+        for (int i = 1; i <= aPoly3DSeq.Size(); i++)
+          WriteObjectPoly3D(hSHPHandle, aPoly3DSeq(i));
+      }      
+      SHPClose( hSHPHandle );
+      commit();
     }
-    else if (aPolyXYSeq.IsEmpty() && !aPoly3DSeq.IsEmpty())
-    {
-      hSHPHandle = SHPCreate( aFileName.toAscii().data(), SHPT_ARCZ );
-      for (int i = 1; i <= aPoly3DSeq.Size(); i++)
-        WriteObjectPoly3D(hSHPHandle, aPoly3DSeq(i));
-    }      
-    SHPClose( hSHPHandle );
+    else
+      abort();
   }
 
-  commit();
 }
 
 void HYDROGUI_ExportFileOp::WriteObjectPolyXY(SHPHandle theShpHandle, Handle_HYDROData_PolylineXY thePoly )