src/hg/lib/wiggleCart.c 1.35

1.35 2009/12/08 18:23:59 tdreszer
Restored viewLimitsCompositeOverride so that minLimit,maxLimit can be used to prompt range in view level cfg
Index: src/hg/lib/wiggleCart.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/wiggleCart.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -b -B -U 4 -r1.34 -r1.35
--- src/hg/lib/wiggleCart.c	30 Nov 2009 17:57:11 -0000	1.34
+++ src/hg/lib/wiggleCart.c	8 Dec 2009 18:23:59 -0000	1.35
@@ -97,17 +97,48 @@
 	errAbort("Can't parse colon range '%s'", setting);
     }
 }
 
-static void viewLimitsCompositeOverride(struct trackDb *tdb, char *name,
-					double *retMin, double *retMax)
+static void viewLimitsCompositeOverride(struct trackDb *tdb,char *name,
+                      double *retMin, double *retMax,double *absMin, double *absMax)
 /* If aquiring min/max for composite level wig cfg, look for trackDb.ra "settingsByView" */
 {
 if(isNameAtCompositeLevel(tdb,name))
     {
-    char *setting = trackDbSettingByView(tdb, VIEWLIMITS);
+    char *setting = NULL;
+    if(absMin != NULL && absMax != NULL)
+        {
+        setting = trackDbSettingByView(tdb,MIN_LIMIT);
+        if(setting != NULL)
+            {
+            if(setting[0] != '\0')
+                *absMin = sqlDouble(setting);
+            freeMem(setting);
+            }
+        setting = trackDbSettingByView(tdb,MAX_LIMIT);
+        if(setting != NULL)
+            {
+            if(setting[0] != '\0')
+                *absMax = sqlDouble(setting);
+            freeMem(setting);
+            }
+        else
+            {
+            setting = trackDbSettingByView(tdb,VIEWLIMITSMAX);  // Legacy
+            if(setting != NULL)
+                {
+                parseColonRange(setting, absMin, absMax);
+                freeMem(setting);
+                }
+            }
+        }
+
+    setting = trackDbSettingByView(tdb, VIEWLIMITS);
+    if(setting != NULL)
+        {
     parseColonRange(setting, retMin, retMax);
-    freez(&setting);
+        freeMem(setting);
+        }
     }
 }
 
 /*****************************************************************************
@@ -223,9 +254,10 @@
 if (retAbsMax)
     *retAbsMax = absMax;
 // After the dust settles from tdb's trackDb settings, now see if composite view 
 // settings from tdb's parents override that stuff anyway:
-viewLimitsCompositeOverride(tdb, name, retMin, retMax);
+viewLimitsCompositeOverride(tdb, name, retMin, retMax, retAbsMin, retAbsMax);
+
 // And as the final word after composite override, reset retMin and retMax if from cart:
 if (cartMinStr && cartMaxStr)
     {
     *retMin = cartMin;