From d90d0665f75242f11e4065c1ddbd3de402b7e27b Mon Sep 17 00:00:00 2001 From: vsr Date: Tue, 11 Dec 2018 10:30:48 +0300 Subject: [PATCH] 0023647: [CEA 7290] cannot reload XAO file --- src/GEOMGUI/GEOMGUI_Selection.cxx | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) 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 -- 2.39.2