6c0552193a83587fccb506d9d687e57b754d44b2 braney Wed Feb 21 13:20:40 2018 -0800 be more exact about what tracks are in the visible tracks folder. diff --git src/hg/hgCollection/hgCollection.c src/hg/hgCollection/hgCollection.c index 19e4760..69f9167 100644 --- src/hg/hgCollection/hgCollection.c +++ src/hg/hgCollection/hgCollection.c @@ -238,31 +238,43 @@ static void checkForVisible(struct cart *cart, struct trackDbRef **list, struct trackDb *tdb) /* Walk the trackDb hierarchy looking for visible leaf tracks. */ { struct trackDb *subTdb; char buffer[4096]; if (tdb->subtracks) { for(subTdb = tdb->subtracks; subTdb; subTdb = subTdb->next) checkForVisible(cart, list, subTdb); } else { - if (isParentVisible(cart, tdb) && isSubtrackVisible(cart, tdb)) + boolean isVisible = FALSE; + if (tdb->parent == NULL) + { + char *cartVis = cartOptionalString(cart, tdb->track); + if (cartVis == NULL) + isVisible = tdb->visibility != tvHide; + else + isVisible = differentString(cartVis, "hide"); + } + else if (isParentVisible(cart, tdb) && isSubtrackVisible(cart, tdb)) + isVisible = TRUE; + + if (isVisible) { struct trackDbRef *tdbRef; AllocVar(tdbRef); tdbRef->tdb = tdb; slAddHead(list, tdbRef); safef(buffer, sizeof buffer, "%s_imgOrd", tdb->track); tdbRef->order = cartUsualInt(cart, buffer, 0); } } } static int tdbRefCompare (const void *va, const void *vb) // Compare to sort on imgTrack->order. {