4988e1f90ac3398d5e228209c5646f21b72846b1 tdreszer Fri Sep 10 08:51:35 2010 -0700 Added tdbLimitedByAncestry() and used it to fix 2 vis problems: cfg popup and findTracks initial vis diff --git src/hg/lib/hui.c src/hg/lib/hui.c index c5b19ad..c5e8b57 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -6710,6 +6710,28 @@ return b; } +enum trackVisibility tdbVisLimitedByAncestry(struct cart *cart, struct trackDb *tdb, enum trackVisibility vis, boolean noSupers) +// returns visibility limited by ancestry (or subtrack vis override) +{ +char *cartVis = cartOptionalString(cart, tdb->track); +if (cartVis != NULL) + { + if (tdbIsCompositeChild(tdb)) + return hTvFromString(cartVis); // subtrackVis override + vis = tvMin(vis, hTvFromString(cartVis) ); + } +else + vis = tvMin(vis, tdb->visibility ); + +if (vis == tvHide || tdb->parent == NULL) + return vis; + +if (noSupers && tdbIsSuperTrack(tdb->parent)) + return vis; + +return tdbVisLimitedByAncestry(cart,tdb->parent,vis,noSupers); +} + char *compositeViewControlNameFromTdb(struct trackDb *tdb) /* Returns a string with the composite view control name if one exists */ {