da3fd831f0d3832aa20c8080e4afe05cca58f85b tdreszer Mon Dec 13 14:06:17 2010 -0800 Emergency fix to composite reshaping code. Checked it with code commented out to illustrate the exact change. diff --git src/hg/lib/cart.c src/hg/lib/cart.c index 64f5a20..7e60d75 100644 --- src/hg/lib/cart.c +++ src/hg/lib/cart.c @@ -2106,49 +2106,49 @@ { cartSetString(cart,setting,hStringFromTv(visMax)); // Set this explicitly. The visOrig may be inherited! countVisChanged++; if (visOrig == tvHide && tdbIsSuperTrackChild(parent)) cartTdbOverrideSuperTracks(cart,parent,FALSE); // deal with superTrack vis! cleanup } // Now set all subtracks that inherit vis back to visOrig for(subtrack = parent->subtracks;subtrack != NULL;subtrack = subtrack->next) { int fourState = subtrackFourStateChecked(subtrack,cart); if (!fourStateChecked(fourState)) cartRemove(cart,subtrack->track); // Remove subtrack level vis if it isn't even checked just in case else // subtrack is checked (should include subtrack level vis) { - if (!hashFindVal(subVisHash, subtrack->track)) // if the subtrack doesn't have individual vis AND... + if (tdbIsMultiTrack(parent)) + cartRemove(cart,subtrack->track); // MultiTrack vis is ALWAYS inherited vis and non-selected should not have vis + else // NO LONGER EXCLUDE THOSE WITH INDIVIDUAL VIS//if (!hashFindVal(subVisHash, subtrack->track)) // if the subtrack doesn't have individual vis AND... { if (reshapeFully || visOrig == tvHide) { subtrackFourStateCheckedSet(subtrack, cart,FALSE,fourStateEnabled(fourState)); // uncheck cartRemove(cart,subtrack->track); // Remove it if it exists, just in case countUnchecked++; } else if (visOrig != tvHide) { - if (tdbIsMultiTrack(parent)) - cartRemove(cart,subtrack->track); // MultiTrack vis is ALWAYS inherited - else + //if (tdbIsMultiTrack(parent)) + // cartRemove(cart,subtrack->track); // MultiTrack vis is ALWAYS inherited + //else cartSetString(cart,subtrack->track,hStringFromTv(visOrig)); countVisChanged++; } } - else if (tdbIsMultiTrack(parent)) - cartRemove(cart,subtrack->track); // MultiTrack vis is ALWAYS inherited vis and non-selected should not have vis } } } else if (tdbIsMultiTrack(parent)) { // MultiTrack vis is ALWAYS inherited vis so remove any subtrack specific vis struct hashCookie brownie = hashFirst(subVisHash); struct hashEl* cartVar = NULL; while ((cartVar = hashNext(&brownie)) != NULL) { if (!endsWith(cartVar->name,"_sel")) cartRemove(cart,cartVar->name); } } if (countUnchecked + countVisChanged)