24bf5755a6ce449f5a452cad60991606da662111
kent
Fri Jan 7 18:16:02 2011 -0800
Fixing redmine issue #2151 where multiWig tracks had to be visibility full in trackDb.ra to _ever_ be seen properly.
diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index 7399cf8..996d430 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -9191,68 +9191,83 @@
struct track *subtrack;
int ct = 0;
for (subtrack = trackList; subtrack; subtrack = subtrack->next)
if (isSubtrackVisible(subtrack))
ct++;
return ct;
}
enum trackVisibility limitVisibility(struct track *tg)
/* Return default visibility limited by number of items and
* by parent visibility if part of a coposite track.
* This also sets tg->height. */
{
if (!tg->limitedVisSet)
{
+ if (sameString(tg->track, "jkDnaseRep1a")) uglyf("Got you %s with %d subtracks. Ajax %d
\n", tg->track, slCount(tg->subtracks), trackShouldUseAjaxRetrieval(tg));
+ if (sameString(tg->track, "jkDnaseAll")) uglyf("Got you %s with %d subtracks. Ajax %d
\n", tg->track, slCount(tg->subtracks), trackShouldUseAjaxRetrieval(tg));
tg->limitedVisSet = TRUE;
if (trackShouldUseAjaxRetrieval(tg))
{
tg->limitedVis = tg->visibility;
tg->height = REMOTE_TRACK_HEIGHT;
}
else
{
enum trackVisibility vis = tg->visibility;
int h;
int maxHeight = maximumTrackHeight(tg);
if (vis == tvHide)
{
tg->height = 0;
tg->limitedVis = tvHide;
return tvHide;
}
if (tg->subtracks != NULL)
{
struct track *subtrack;
int subCnt = subtrackCount(tg->subtracks);
maxHeight = maxHeight * max(subCnt,1);
+ if (!tg->syncChildVisToSelf)
+ {
for (subtrack = tg->subtracks; subtrack != NULL; subtrack = subtrack->next)
limitVisibility(subtrack);
}
+ }
while((h = tg->totalHeight(tg, vis)) > maxHeight && vis != tvDense)
{
if (vis == tvFull && tg->canPack)
vis = tvPack;
else if (vis == tvPack)
vis = tvSquish;
else
vis = tvDense;
}
tg->height = h;
tg->limitedVis = vis;
}
+ if (tg->syncChildVisToSelf)
+ {
+ struct track *subtrack;
+ for (subtrack = tg->subtracks; subtrack != NULL; subtrack = subtrack->next)
+ {
+ subtrack->visibility = tg->visibility;
+ subtrack->limitedVis = tg->limitedVis;
+ subtrack->limitedVisSet = tg->limitedVisSet;
+ }
+ }
}
return tg->limitedVis;
}
void compositeTrackVis(struct track *track)
/* set visibilities of subtracks */
{
struct track *subtrack;
if (track->visibility == tvHide)
return;
/* Count visible subtracks. */
for (subtrack = track->subtracks; subtrack != NULL; subtrack = subtrack->next)
if (!subtrack->limitedVisSet)