src/hg/hgTracks/hgTracks.c 1.1558

1.1558 2009/03/09 18:34:55 tdreszer
Fix for defaulting composite tracks. Requires Stdized view vis select name.
Index: src/hg/hgTracks/hgTracks.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgTracks/hgTracks.c,v
retrieving revision 1.1557
retrieving revision 1.1558
diff -b -B -U 4 -r1.1557 -r1.1558
--- src/hg/hgTracks/hgTracks.c	3 Mar 2009 19:38:52 -0000	1.1557
+++ src/hg/hgTracks/hgTracks.c	9 Mar 2009 18:34:55 -0000	1.1558
@@ -194,22 +194,27 @@
 	    struct track *track = tr->track;
             struct trackDb *tdb = track->tdb;
 	    if (changeVis == -1)
                 {
+                if(tdbIsComposite(tdb))
+                    {
+                    safef(pname, sizeof(pname),"%s.*",track->mapName); //to remove all settings associated with this composite!
+                    cartRemoveLike(cart,pname);
+                    struct track *subTrack;
+                    for(subTrack = track->subtracks;subTrack != NULL; subTrack = subTrack->next)
+                        {
+                        subTrack->visibility = tdb->visibility;
+                        cartRemove(cart, subTrack->mapName);
+                        }
+                    }
+
                 /* restore defaults */
                 if (tdbIsSuperTrackChild(tdb) || tdbIsCompositeChild(tdb))
                     {
-                    //if(tdb->parentName == NULL || differentString(tdb->parentName,tdb->parent->tableName))
-                    //    tdb->parentName = tdb->parent->tableName;
-                    /* removing the supertrack parent's cart variables
-                     * restores defaults */
-                    //assert(tdb->parentName != NULL);
-                    //cartRemove(cart, tdb->parentName);
                     assert(tdb->parent != NULL && tdb->parent->tableName);
                     cartRemove(cart, tdb->parent->tableName);
                     if (withPriorityOverride)
                         {
-                        //safef(pname, sizeof(pname), "%s.priority",tdb->parentName);
                         safef(pname, sizeof(pname), "%s.priority",tdb->parent->tableName);
                         cartRemove(cart, pname);
                         }
                     }
@@ -1494,9 +1499,9 @@
     if(subgroupFind(subtrack->tdb,"view",&stView))
         {
         int len = strlen(subtrack->tdb->parent->tableName) + strlen(stView) + 10;
         char *ddName = needMem(len);
-        safef(ddName,len,"%s_dd_%s",subtrack->tdb->parent->tableName,stView); // If not found takes "usual"
+        safef(ddName,len,"%s.%s.vis",subtrack->tdb->parent->tableName,stView);
         char * fromParent = cartOptionalString(cart, ddName);
         if(fromParent)
             vis = hTvFromString(fromParent);
         else