ae9de008e7786f3fccd9f52db6514540b1c995d5 kent Thu Mar 31 05:52:43 2011 -0700 Smoothing out the handling of the track->children pointer and track->subtracks pointer so that it works the same in hgTrackUi as elsewhere. The children pointers are set after pruning the track list for ones where the data table is not available. diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index fa04de1..03b87a3 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -2298,44 +2298,53 @@ "&list_uids=%s&dopt=Abstract&tool=genome.ucsc.edu\" TARGET=_BLANK>%s", pmId, ref); labelArr[refCount] = cloneString(label); valueArr[refCount++] = cloneString(pmId); if (! filterPmIdInCart) slNameAddHead(&checked, pmId); if (refCount >= MAX_DGV_REFS) errAbort("dgvUi: %s has too many references (max %d)", tdb->track, MAX_DGV_REFS); } sqlFreeResult(&sr); jsMakeCheckboxGroupSetClearButton(cartVarName, TRUE); jsMakeCheckboxGroupSetClearButton(cartVarName, FALSE); cgiMakeCheckboxGroupWithVals(cartVarName, labelArr, valueArr, refCount, checked, 4); hFreeConn(&conn); } -void superTrackUi(struct trackDb *superTdb) -/* List tracks in this collection, with visibility controls and UI links */ +static boolean isInTrackList(struct trackDb *tdbList, struct trackDb *target) +/* Return TRUE if target is in tdbList. */ { struct trackDb *tdb; +for (tdb = tdbList; tdb != NULL; tdb = tdb->next) + if (tdb == target) + return TRUE; +return FALSE; +} + +void superTrackUi(struct trackDb *superTdb, struct trackDb *tdbList) +/* List tracks in this collection, with visibility controls and UI links */ +{ printf("
"); + boolean uglyOne = (sameString(tdb->track, "wgEncodeRegProEnhCorrLoose")); + if (uglyOne) + uglyf("corrLoose %d", isInTrackList(tdbList, tdb)); if (tdbIsDownloadsOnly(tdb)) printf("%s ",tdb->shortLabel); else printf("%s ", (tdbIsDownloadsOnly(tdb)? hgFileUiName(): hgTrackUiName()), cartSessionVarName(), cartSessionId(cart), chromosome, cgiEncode(tdb->track), tdb->shortLabel); printf(" | "); if (tdbIsDownloadsOnly(tdb)) { printf("Downloads", hgFileUiName(),cartSessionVarName(), cartSessionId(cart), cgiEncode(tdb->track)); } else { @@ -2343,31 +2352,31 @@ hTvFromString(cartUsualString(cart, tdb->track, hStringFromTv(tdb->visibility))); hTvDropDownClassVisOnly(tdb->track, tv, tdb->canPack, tv == tvHide ? "hiddenText" : "normalText", trackDbSetting(tdb, "onlyVisibility")); } printf(" | %s", tdb->longLabel); char *dataVersion = trackDbSetting(tdb, "dataVersion"); if (dataVersion) printf("  %s", dataVersion); printf(" |