4a234f089be336a40604bf7002b3811dc3dad308 kent Mon Aug 9 14:58:47 2010 -0700 Adding a trackHash parameter to a bunch of metadata routines so that they could find the track associated with a table. Fixing clipping bug in hgTracks.c for multiWig labels when in non-overlay mode due to a special case that seems to be obsolete (did fair bit of testing to make sure it's not used.) diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index aaa058f..c181b90 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -43,6 +43,7 @@ struct cart *cart = NULL; /* Cookie cart with UI settings */ char *database = NULL; /* Current database. */ char *chromosome = NULL; /* Chromosome. */ +struct hash *trackHash = NULL; /* Hash of all tracks in database. */ void tfbsConsSitesUi(struct trackDb *tdb) { @@ -2411,9 +2412,9 @@ } else if (tdbIsComposite(tdb)) // for the moment generalizing this to include other containers... { - hCompositeUi(database, cart, tdb, NULL, NULL, MAIN_FORM); + hCompositeUi(database, cart, tdb, NULL, NULL, MAIN_FORM, trackHash); } -extraUiLinks(database,tdb); +extraUiLinks(database,tdb, trackHash); } @@ -2652,6 +2653,7 @@ track = cartString(cart, "g"); getDbAndGenome(cart, &database, &ignored, NULL); chromosome = cartUsualString(cart, "c", hDefaultChrom(database)); +trackHash = makeTrackHash(database, chromosome); if (sameWord(track, WIKI_TRACK_TABLE)) tdb = trackDbForWikiTrack(); else if (sameWord(track, RULER_TRACK_NAME)) @@ -2680,8 +2682,12 @@ tdb = hTrackDbForTrack(database, track); } if (tdb == NULL) + { + uglyAbort("Can't find %s in track database %s chromosome %s. TrackHash has %d els", + track, database, chromosome, trackHash->elCount); errAbort("Can't find %s in track database %s chromosome %s", track, database, chromosome); + } char *super = trackDbGetSupertrackName(tdb); if (super) {