51d89ce7eda1b4b3a8669379230be74ec76e8150 kate Mon Oct 7 15:00:54 2019 -0700 Fixes and flexibility for other track types, new filtering. refs #23365 diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 74bb8a8..f1edce5 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -5051,47 +5051,57 @@ if (wordCount == 1) return TRUE; if (wordCount != 3) { warn("Track %s %s setting invalid: %s", tdb->track, SUBTRACK_HIDE_EMPTY, orig); return FALSE; } // multi-bed specified (to speed display) if (retMultiBedFile) *retMultiBedFile = cloneString(hReplaceGbdb(words[1])); if (retSubtrackIdFile) *retSubtrackIdFile = cloneString(hReplaceGbdb(words[2])); return TRUE; } -boolean compositeHideEmptySubtracks(struct cart *cart, struct trackDb *childTdb, - char **retMutiBedFile, char **retSubtrackIdFile) +boolean compositeHideEmptySubtracks(struct cart *cart, struct trackDb *tdb, + char **retMultiBedFile, char **retSubtrackIdFile) /* Parse hideEmptySubtracks setting and check cart * Return TRUE if we should hide empties */ { -struct trackDb *tdb = tdbGetComposite(childTdb); -if (!parentTdb) - return FALSE; boolean deflt = FALSE; -if (!compositeHideEmptySubtracksSetting(tdb, &deflt, retMutiBedFile, retSubtrackIdFile)) +if (!compositeHideEmptySubtracksSetting(tdb, &deflt, retMultiBedFile, retSubtrackIdFile)) return FALSE; char buf[128]; safef(buf, sizeof buf, "%s.%s", tdb->track, SUBTRACK_HIDE_EMPTY); return cartUsualBoolean(cart, buf, deflt); } +boolean compositeChildHideEmptySubtracks(struct cart *cart, struct trackDb *childTdb, + char **retMultiBedFile, char **retSubtrackIdFile) +/* Parse hideEmptySubtracks setting and check cart + * Return TRUE if we should hide empties + */ +{ +struct trackDb *tdb = tdbGetComposite(childTdb); +if (!tdb) + return FALSE; +return compositeHideEmptySubtracks(cart, tdb, retMultiBedFile, retSubtrackIdFile); + +} + static void compositeUiSubtracks(char *db, struct cart *cart, struct trackDb *parentTdb) // Display list of subtracks and descriptions with checkboxes to control visibility and // possibly other nice things including links to schema and metadata and a release date. { char buffer[SMALLBUF]; struct trackDb *subtrack; // Get list of leaf subtracks to work with struct slRef *subtrackRef, *subtrackRefList = trackDbListGetRefsToDescendantLeaves(parentTdb->subtracks); membersForAll_t* membersForAll = membersForAllSubGroupsGet(parentTdb,NULL); sortOrder_t* sortOrder = sortOrderGet(cart, parentTdb); char *displaySubs = NULL; int subCount = slCount(subtrackRefList); if (subCount > LARGE_COMPOSITE_CUTOFF && membersForAll->dimensions != NULL)