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;