a010673c4c37e6c0b6bca9b4d5e3dd1e4744321b braney Thu Nov 12 12:42:20 2020 -0800 dealing with carts that have knownGene in them when a different default gene track is specified diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index 4145aaa..9ecc41d 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -6952,30 +6952,44 @@ if (cartOptionalString(cart, "hgt.trackNameFilter") == NULL) { // If a single track was asked for and it is from a hub, then it is already in trackList loadTrackHubs(&trackList, &grpList); } loadCustomTracks(&trackList); groupTracks( &trackList, pGroupList, grpList, vis); setSearchedTrackToPackOrFull(trackList); boolean hideTracks = cgiOptionalString( "hideTracks") != NULL; if (hideTracks) changeTrackVis(groupList, NULL, tvHide); // set all top-level tracks to hide /* Get visibility values if any from ui. */ struct hash *superTrackHash = newHash(5); // cache whether supertrack is hiding tracks or not char buffer[4096]; +// Check to see if we have a versioned default gene track and let the knownGene +// cart variable determine its visibility +char *defaultGeneTrack = NULL; +char *knownDb = hdbDefaultKnownDb(database); +if (differentString(knownDb, database)) + defaultGeneTrack = hdbGetMasterGeneTrack(knownDb); + +if (defaultGeneTrack) + { + char *s = cartOptionalString(cart, "knownGene"); + if ((s != NULL) && (differentString(s, "hide"))) + cartSetString(cart, defaultGeneTrack, s); + } + for (track = trackList; track != NULL; track = track->next) { // deal with any supertracks we're seeing for the first time if (tdbIsSuperTrackChild(track->tdb)) { struct hashEl *hel = NULL; if ((hel = hashLookup(superTrackHash, track->tdb->parent->track)) == NULL) // we haven't seen this guy { // first deal with visibility of super track char *s = hideTracks ? cgiOptionalString(track->tdb->parent->track) : cartOptionalString(cart, track->tdb->parent->track); if (s) { track->tdb->parent->visibility = hTvFromString(s) ; cartSetString(cart, track->tdb->parent->track, s);