+ if ( !mod_name.isEmpty() )
+ v = mod_name;
+ }
+ else if ( p == "isActiveView" )
+ v = activeVW() != 0;
+ else if ( p == "activeView" )
+ v = activeViewType();
+ else
+ v = QtxPopupSelection::parameter( p );
+
+ return v;
+}
+
+/*!
+ Gets the object parameter.
+*/
+//QVariant LightApp_Selection::objectParameter( const int idx, const QString& p ) const
+QVariant LightApp_Selection::parameter( const int idx, const QString& p ) const
+{
+ LightApp_Application* app = 0;
+ if ( myStudy )
+ app = dynamic_cast<LightApp_Application*>( myStudy->application() );
+
+ QVariant v;
+ if ( app ) {
+ QString e = entry( idx );
+ if ( !e.isEmpty() ) {
+ if ( p == "isVisible" ) {
+ QString mod_name = app->moduleTitle( myStudy->componentDataType( e ) );
+ LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( mod_name, false );
+ // false in last parameter means that now we doesn't load module, if it isn't loaded
+
+ bool vis = false;
+ if ( d )
+ vis = d->IsDisplayed( e );
+ else
+ vis = LightApp_Displayer().IsDisplayed( e );
+ v = vis;
+ }
+ else if ( p == "component" || p == "displayer" )
+ v = myStudy->componentDataType( e );
+ else if ( p == "isComponent" )
+ v = myStudy->isComponent( e );
+ else if ( p == "isReference" )
+ v = isReference( idx );
+ else if ( p == "canBeDisplayed" ) {
+ QString mod_name = app->moduleTitle( myStudy->componentDataType( e ) );
+ LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( mod_name, false );
+ // false in last parameter means that now we doesn't load module, if it isn't loaded
+
+ if ( d )
+ v = d->canBeDisplayed( e );
+ else if ( e.startsWith( QObject::tr( "SAVE_POINT_DEF_NAME" ) ) ) // object is a Save Point object
+ v = false;
+ else
+ v = true;
+ //now if displayer is null, it means, that according module isn't loaded, so that we allow to all display/erase
+ //operations under object
+ }
+ }