4f5daba5965f89083c356897ef285b0477c59db6 braney Wed Aug 19 15:23:54 2015 -0700 another round of trying to get visibilities in the cart to work right diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index 54902ca..0975c35 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -3955,48 +3955,49 @@ 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) - cartSetString(cart, parent->track, !parent->isShow ? "hide" : "show"); + if ((super == NULL) && parent->isShow) + cartSetString(cart, parent->track, "show"); } - if (!parent || parent->isShow) 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) @@ -4498,35 +4499,32 @@ // 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 || defaultTracks) - { - int vis = (hideAll ? tvHide : -1); - changeTrackVis(groupList, NULL, vis); - } +if (hideAll) + changeTrackVis(groupList, NULL, tvHide); /* 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,