X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ImportPolylineOp.cxx;h=e7faee118be82bfaa64f382d43cdcefd0092be0a;hb=58bb6b7459bebeeb089c9ed486c4683a8bae7288;hp=7ebba03d59649be171fdb8c5350f0ceacaa82864;hpb=5f8d5071da196a4d8c28eeb83670c941a8d61648;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ImportPolylineOp.cxx b/src/HYDROGUI/HYDROGUI_ImportPolylineOp.cxx index 7ebba03d..e7faee11 100644 --- a/src/HYDROGUI/HYDROGUI_ImportPolylineOp.cxx +++ b/src/HYDROGUI/HYDROGUI_ImportPolylineOp.cxx @@ -1,8 +1,4 @@ -// Copyright (C) 2007-2015 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 @@ -25,7 +21,7 @@ #include "HYDROGUI_DataModel.h" #include "HYDROGUI_Module.h" #include "HYDROGUI_UpdateFlags.h" -#include "HYDROGUI_Tool.h" +#include "HYDROGUI_Tool2.h" #include #include #include @@ -62,7 +58,7 @@ void HYDROGUI_ImportPolylineOp::startOperation() myFileDlg = new SUIT_FileDlg( module()->getApp()->desktop(), true ); myFileDlg->setWindowTitle( getName() ); myFileDlg->setFileMode( SUIT_FileDlg::ExistingFiles ); - myFileDlg->setFilter( tr("POLYLINE_FILTER") ); + myFileDlg->setNameFilter( tr("POLYLINE_FILTER") ); connect( myFileDlg, SIGNAL( accepted() ), this, SLOT( onApply() ) ); connect( myFileDlg, SIGNAL( rejected() ), this, SLOT( onCancel() ) ); @@ -93,18 +89,35 @@ void HYDROGUI_ImportPolylineOp::onApply() if (anExt == "shp") { HYDROData_ShapeFile anImporter; - NCollection_Sequence theEntities; - if (anImporter.ImportPolylines(doc(), aFileName, theEntities )) + NCollection_Sequence theEntities; + int aShapeTypeOfFile = -1; + int aStat = anImporter.ImportPolylines(doc(), aFileName, theEntities, aShapeTypeOfFile ); + if (aStat == 1) + UpdateView(theEntities); + else if (aStat == 2) + { UpdateView(theEntities); + SUIT_MessageBox::information(module()->getApp()->desktop(), + tr( "IMPORT_POLYLINE" ), "Contour of the polygon(s) have been imported as polyline(s)"); + } else - SUIT_MessageBox::warning( module()->getApp()->desktop(), tr( "IMPORT_POLYLINE" ), "Cannot import polyline;\nThe shape type is incorrect" ); + { + QString aMess = "Cannot import content of this file as polyline;\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_POLYLINE" ), aMess); + } } } if (!aFileNames.empty()) { commitDocOperation(); commit(); - module()->update( UF_Model | UF_VTKViewer | UF_VTK_Forced | UF_VTK_Init ); + module()->update( UF_Model | UF_VTKViewer | UF_VTK_Forced | UF_VTK_Init | UF_OCCViewer ); } else abort(); @@ -112,7 +125,7 @@ void HYDROGUI_ImportPolylineOp::onApply() QApplication::restoreOverrideCursor(); } -void HYDROGUI_ImportPolylineOp::UpdateView( NCollection_Sequence& anEntities) +void HYDROGUI_ImportPolylineOp::UpdateView( NCollection_Sequence& anEntities) { size_t anActiveViewId = HYDROGUI_Tool::GetActiveGraphicsViewId( module() ); if ( anActiveViewId == 0 )