Commit 81fc08cd authored by Claes Sjofors's avatar Claes Sjofors

Xtt open object graph fix for SevHist and PlotGroup objects

parent a9f26d23
......@@ -309,10 +309,14 @@ cdh_ArefIsEqual (
pwr_sAttrRef *arp2
)
{
return ( arp1->Objid.vid == arp2->Objid.vid &&
arp1->Objid.oix == arp2->Objid.oix &&
arp1->Offset == arp2->Offset &&
(arp1->Size == 0 || arp2->Size == 0 || arp1->Size == arp2->Size));
if ( arp1->Flags.b.Object && arp2->Flags.b.Object)
return ( arp1->Objid.vid == arp2->Objid.vid &&
arp1->Objid.oix == arp2->Objid.oix);
else
return ( arp1->Objid.vid == arp2->Objid.vid &&
arp1->Objid.oix == arp2->Objid.oix &&
arp1->Offset == arp2->Offset &&
(arp1->Size == 0 || arp2->Size == 0 || arp1->Size == arp2->Size));
}
......
......@@ -349,15 +349,62 @@ void Xtt::activate_opengraph()
if ( EVEN(sts)) return;
if ( cdh_tidIsCid( classid)) {
if ( classid == pwr_cClass_DsTrend || classid == pwr_cClass_PlotGroup) {
switch ( classid) {
case pwr_cClass_DsTrend:
// Open trend
sprintf( cmd, "open trend /name=%s /title=\"%s\"", vname, name);
xnav->command( cmd);
return;
case pwr_cClass_DsFast:
// Open fast
sprintf( cmd, "open fast /name=%s /title=\"%s\"", vname, name);
xnav->command( cmd);
return;
case pwr_cClass_SevHist:
case pwr_cClass_SevHistObject:
// Open history
sprintf( cmd, "open history /name=%s /title=\"%s\"", vname, name);
xnav->command( cmd);
return;
case pwr_cClass_PlotGroup: {
pwr_tAName aname;
pwr_tAttrRef yo;
strcpy( aname, vname);
strcat( aname, ".YObjectName[0]");
sts = gdh_GetObjectInfo( aname, (void *)&yo, sizeof(yo));
if ( ODD(sts) && cdh_ObjidIsNotNull( yo.Objid)) {
sts = gdh_GetAttrRefTid( &yo, &classid);
if ( EVEN(sts)) return;
switch ( classid) {
case pwr_cClass_DsTrend:
// Open trend
sprintf( cmd, "open trend /name=%s /title=\"%s\"", vname, name);
xnav->command( cmd);
return;
case pwr_cClass_DsFast:
// Open fast
sprintf( cmd, "open fast /name=%s /title=\"%s\"", vname, name);
xnav->command( cmd);
return;
case pwr_cClass_SevHist:
case pwr_cClass_SevHistObject:
// Open history
sprintf( cmd, "open history /name=%s /title=\"%s\"", vname, name);
xnav->command( cmd);
return;
}
return;
}
return;
}
default:
sprintf( cmd, "open graph /class/inst=%s/name=\"%s\"", vname, name);
xnav->command( cmd);
return;
}
sprintf( cmd, "open graph /class/inst=%s/name=\"%s\"", vname, name);
xnav->command( cmd);
}
else {
switch( classid) {
......
......@@ -361,8 +361,24 @@ static pwr_tStatus OpenTrendFilter( xmenu_sMenuCall *ip)
sts = gdh_GetAttrRefTid( objar, &cid);
if ( EVEN(sts)) return sts;
if ( cid == pwr_cClass_DsTrend || cid == pwr_cClass_PlotGroup) {
switch ( cid) {
case pwr_cClass_DsTrend:
return XNAV__SUCCESS;
case pwr_cClass_PlotGroup: {
sts = gdh_AttrrefToName( objar, name, sizeof(name),
cdh_mName_volumeStrict);
if ( EVEN(sts)) return sts;
strcat( name, ".YObjectName[0]");
sts = gdh_GetObjectInfo( name, (void *)&deftrend, sizeof(deftrend));
if ( ODD(sts) && cdh_ObjidIsNotNull( deftrend.Objid)) {
// Default XttGraph found
sts = gdh_GetAttrRefTid( &deftrend, &classid);
if ( ODD(sts) && classid == pwr_cClass_DsTrend)
return XNAV__SUCCESS;
}
return XNAV__INVISIBLE;
}
}
// Check if attribute DefTrend exist
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment