1498e7fc5bb16c1452644aa5f73dfec937814f4a braney Thu Aug 20 10:25:33 2015 -0700 revert changes made for #6551 diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index 0975c35..6759f95 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -3935,72 +3935,34 @@ addVariomeWikiTrack(&trackList); wikiDisconnect(&conn); } struct grp *grpList = NULL; 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); if (cgiOptionalString( "hideTracks")) changeTrackVis(groupList, NULL, tvHide); -char *s = cartOptionalString(cart, CART_HAS_DEFAULT_VISIBILITY); -boolean defaultsSet = FALSE; -// if CART_HAS_DEFAULT_VISIBILITY is "on" in the cart, ignore visibilities from trackDb and load them from cart -if ((s != NULL) && sameString(s, "on") ) - { - defaultsSet = TRUE; - struct group *group; - struct trackRef *tr; - for (group = groupList; group != NULL; group = group->next) - for (tr = group->trackList; tr != NULL; tr = tr->next) - { - struct track *track = tr->track; - track->visibility = tvHide; - } - } -else - { - // we're going to set all the trackDb default visibilities on in the cart - void pruneRedundantCartVis(struct track *trackList); - pruneRedundantCartVis(trackList); - if (vis == -1) // we're restoring to defaults - changeTrackVis(groupList, NULL, vis); - cartSetString(cart, CART_HAS_DEFAULT_VISIBILITY, "on"); - } - /* Get visibility values if any from ui. */ for (track = trackList; track != NULL; track = track->next) { - // if the defaults aren't set in the cart and this track isn't hidden, set its visibility in the cart char *s = cartOptionalString(cart, track->track); - if (!defaultsSet && (track->tdb->visibility != tvHide) && (s == NULL)) - { - struct trackDb *parent = track->tdb->parent; - if (parent) - { - char *super = cartOptionalString(cart, parent->track); - if ((super == NULL) && parent->isShow) - cartSetString(cart, parent->track, "show"); - } - cartSetString(cart, track->track, hStringFromTv(track->tdb->visibility)); - } - if (cgiOptionalString("hideTracks")) { s = cgiOptionalString(track->track); if (s != NULL) { if (hTvFromString(s) == track->tdb->visibility) cartRemove(cart, track->track); else cartSetString(cart, track->track, s); } } if (s != NULL && !track->limitedVisSet) track->visibility = hTvFromString(s); if (tdbIsCompositeChild(track->tdb)) track->visibility = tdbVisLimitedByAncestry(cart, track->tdb, FALSE); @@ -4082,31 +4044,31 @@ however, we may want to put in browser specific strings in the future, so I'm leaving this code in as a reference. */ char *ua = getenv("HTTP_USER_AGENT"); char *display = ua && stringIn("MSIE", ua) ? "block" : "table-row"; #endif // use counter to ensure unique tr id's (prefix is used to find tr's in javascript). printf("", isOpen ? "" : "style='display: none' ", id, counter++); cg->rowOpen = TRUE; } if (cg->align) printf("", cg->align); else printf(""); } -void pruneRedundantCartVis(struct track *trackList) +static void pruneRedundantCartVis(struct track *trackList) /* When the config page or track form has been submitted, there usually * are many track visibility cart variables that have not been changed * from the default. To keep down cart bloat, prune those out before we * save the cart. changeTrackVis does this too, but this is for the * more common case where track visibilities are tweaked. */ { struct track *track; for (track = trackList; track != NULL; track = track->next) { char *cartVis = cartOptionalString(cart, track->track); if (cartVis != NULL && hTvFromString(cartVis) == track->tdb->visibility) cartRemove(cart, track->track); } } @@ -4498,33 +4460,36 @@ // honor defaultImgOrder if (cgiVarExists("hgt.defaultImgOrder")) { char wildCard[32]; safef(wildCard,sizeof(wildCard),"*_%s",IMG_ORDER_VAR); cartRemoveLike(cart, wildCard); } // Subtrack settings must be removed when composite/view settings are updated parentChildCartCleanup(trackList,cart,oldVars); if (measureTiming) measureTime("parentChildCartCleanup"); -/* Honor hideAll variable */ -if (hideAll) - changeTrackVis(groupList, NULL, tvHide); +/* Honor hideAll and visAll variables */ +if (hideAll || defaultTracks) + { + int vis = (hideAll ? tvHide : -1); + changeTrackVis(groupList, NULL, vis); + } /* Before loading items, deal with the next/prev item arrow buttons if pressed. */ if (cgiVarExists("hgt.nextItem")) doNextPrevItem(TRUE, cgiUsualString("hgt.nextItem", NULL)); else if (cgiVarExists("hgt.prevItem")) doNextPrevItem(FALSE, cgiUsualString("hgt.prevItem", NULL)); if(!psOutput && !cartUsualBoolean(cart, "hgt.imageV1", FALSE)) { // Start an imagebox (global for now to avoid huge rewrite of hgTracks) // Set up imgBox dimensions int sideSliceWidth = 0; // Just being explicit if (withLeftLabels) sideSliceWidth = (insideX - gfxBorder*3) + 2; theImgBox = imgBoxStart(database,chromName,winStart,winEnd, @@ -5133,30 +5098,31 @@ } } #endif /* SLOW */ hPrintf("\n"); /* hidden form for custom tracks CGI */ hPrintf("
", hgCustomName()); cartSaveSession(cart); hPrintf("
\n"); /* hidden form for track hub CGI */ hPrintf("
", hgHubConnectName()); cartSaveSession(cart); hPrintf("
\n"); +pruneRedundantCartVis(trackList); if (measureTiming) measureTime("Done with trackForm"); } static void toggleRevCmplDisp() /* toggle the reverse complement display mode */ { // forces complement bases to match display revCmplDisp = !revCmplDisp; cartSetBooleanDb(cart, database, REV_CMPL_DISP, revCmplDisp); cartSetBooleanDb(cart, database, COMPLEMENT_BASES_VAR, revCmplDisp); } void zoomToSize(int newSize) /* Zoom so that center stays in same place,