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