From: vsr Date: Tue, 11 Dec 2018 07:30:48 +0000 (+0300) Subject: 0023647: [CEA 7290] cannot reload XAO file X-Git-Tag: V9_3_0a1~5 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=d90d0665f75242f11e4065c1ddbd3de402b7e27b;p=modules%2Fgeom.git 0023647: [CEA 7290] cannot reload XAO file --- diff --git a/src/GEOMGUI/GEOMGUI_Selection.cxx b/src/GEOMGUI/GEOMGUI_Selection.cxx index b67422056..0ac9af380 100644 --- a/src/GEOMGUI/GEOMGUI_Selection.cxx +++ b/src/GEOMGUI/GEOMGUI_Selection.cxx @@ -288,10 +288,28 @@ bool GEOMGUI_Selection::isAutoColor( const int index ) const bool GEOMGUI_Selection::isImported( const int index ) const { + bool result = false; GEOM::GEOM_Object_var obj = getObject( index ); - if ( !CORBA::is_nil( obj ) ) - return obj->GetType() == GEOM_IMPORT; - return false; + if ( !CORBA::is_nil( obj ) && obj->GetType() == GEOM_IMPORT ) + { + QString fileName; + GEOM::CreationInformationSeq_var info = obj->GetCreationInformation(); + if ( info->length() > 0 ) + { + for ( uint i = 0, nb = info->length(); i < nb; ++i ) + { + GEOM::CreationInformation iInfo = info[i]; + for ( uint j = 0; j < iInfo.params.length(); ++j ) + { + QString param = (char*)(CORBA::String_var)(iInfo.params[j].name); + if ( param == "File name" ) + fileName = (char*)(CORBA::String_var)(iInfo.params[j].value); + } + } + } + result = !fileName.isEmpty() && !fileName.toLower().endsWith(".xao"); + } + return result; } bool GEOMGUI_Selection::hasImported() const