Commit a8096801 authored by Claes Sjofors's avatar Claes Sjofors

Show crossreferences, searches in all crossreference files, not just in the...

 Show crossreferences, searches in all crossreference files, not just in the file for the current volume
parent 8e3467fe
This diff is collapsed.
......@@ -480,7 +480,8 @@ int ItemBaseObject::open_crossref( XNavBrow *brow, double x, double y)
int crossref_exist;
int sts;
pwr_tClassId classid;
XNav *xnav;
XNav *xnav;
char file[20] = "*";
if ( brow->usertype == brow_eUserType_XNav)
xnav = (XNav *) brow->userdata;
......@@ -534,10 +535,10 @@ int ItemBaseObject::open_crossref( XNavBrow *brow, double x, double y)
case pwr_cClass_Ii:
case pwr_cClass_Io:
case pwr_cClass_Co:
sts = xnav_crr_signal( brow, NULL, name, node);
sts = xnav_crr_signal( brow, file, name, node);
break;
default:
sts = xnav_crr_object( brow, NULL, name, node);
sts = xnav_crr_object( brow, file, name, node);
}
if ( xnav && sts == NAV__OBJECTNOTFOUND)
xnav->message('E', "Object not found in crossreferens file");
......@@ -1106,6 +1107,7 @@ int ItemAttrObject::open_crossref( XNavBrow *brow, double x, double y)
int sts;
XNav *xnav;
char aname[240];
char file[20] = "*";
if ( brow->usertype == brow_eUserType_XNav)
xnav = (XNav *) brow->userdata;
......@@ -1159,10 +1161,10 @@ int ItemAttrObject::open_crossref( XNavBrow *brow, double x, double y)
case pwr_cClass_Ii:
case pwr_cClass_Io:
case pwr_cClass_Co:
sts = xnav_crr_signal( brow, NULL, aname, node);
sts = xnav_crr_signal( brow, file, aname, node);
break;
default:
sts = xnav_crr_object( brow, NULL, aname, node);
sts = xnav_crr_object( brow, file, aname, node);
}
if ( xnav && sts == NAV__OBJECTNOTFOUND)
xnav->message('E', "Object not found in crossreferens file");
......@@ -1882,7 +1884,8 @@ int ItemChannel::open_crossref( XNavBrow *brow, double x, double y)
int crossref_exist;
int sts;
pwr_tOName signal_name;
XNav *xnav;
XNav *xnav;
char file[20] = "*";
if ( brow->usertype == brow_eUserType_XNav)
xnav = (XNav *) brow->userdata;
......@@ -1919,7 +1922,7 @@ int ItemChannel::open_crossref( XNavBrow *brow, double x, double y)
sts = gdh_AttrrefToName( &signal_aref, signal_name, sizeof(signal_name),
cdh_mNName);
sts = xnav_crr_signal( brow, NULL, signal_name, node);
sts = xnav_crr_signal( brow, file, signal_name, node);
if ( sts == NAV__OBJECTNOTFOUND && xnav)
xnav->message('E', "Object not found in crossreferens file");
......
......@@ -637,6 +637,7 @@ int XAttNav::crossref()
int sts;
pwr_tAName name;
pwr_tClassId classid;
char file[20] = "*";
sts = gdh_AttrrefToName ( &objar, name, sizeof(name), cdh_mNName);
if ( EVEN(sts)) return sts;
......@@ -657,11 +658,11 @@ int XAttNav::crossref()
case pwr_cClass_Ii:
case pwr_cClass_Io:
case pwr_cClass_Co:
sts = xnav_crr_signal( brow, NULL, name, NULL);
sts = xnav_crr_signal( brow, file, name, NULL);
break;
default:
/* Not a signal */
sts = xnav_crr_object( brow, NULL, name, NULL);
sts = xnav_crr_object( brow, file, name, NULL);
}
// if ( EVEN(sts))
// xnav->message(' ', XNav::get_message(sts));
......
......@@ -4533,10 +4533,18 @@ static int xnav_crossref_func( void *client_data,
case pwr_cClass_Ii:
case pwr_cClass_Io:
case pwr_cClass_Co:
if ( !file_ptr) {
strcpy( file_str, "*");
file_ptr = file_str;
}
sts = xnav_crr_signal( xnav->brow, file_ptr, name_ptr, NULL);
break;
default:
/* Not a signal */
if ( !file_ptr) {
strcpy( file_str, "*");
file_ptr = file_str;
}
sts = xnav_crr_object( xnav->brow, file_ptr, name_ptr, NULL);
}
if ( EVEN(sts))
......
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