src/hg/lib/chainCart.c 1.3

1.3 2009/03/18 18:27:00 hiram
adding netCart settings and cleaning up chainCart settings
Index: src/hg/lib/chainCart.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/chainCart.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -b -B -U 1000000 -r1.2 -r1.3
--- src/hg/lib/chainCart.c	12 Mar 2009 00:05:45 -0000	1.2
+++ src/hg/lib/chainCart.c	18 Mar 2009 18:27:00 -0000	1.3
@@ -1,64 +1,33 @@
 /*	chainCart.c - take care of parsing and combining values from the
  *	chain trackDb optional settings and the same values that may be
  *	in the cart.
  */
 #include "common.h"
 #include "jksql.h"
 #include "trackDb.h"
 #include "cart.h"
 #include "dystring.h"
 #include "hui.h"
 #include "chainCart.h"
 
 static char const rcsid[] = "$Id$";
 
 enum chainColorEnum chainFetchColorOption(struct cart *cart,
-    struct trackDb *tdb, char **optString)
+    struct trackDb *tdb, boolean compositeLevel)
 /******	ColorOption - Chrom colors by default **************************/
 {
-char *Default = chainColorEnumToString(chainColorChromColors);
 char *chainColor = NULL;
 enum chainColorEnum ret;
 
-chainColor = cloneString(cartOptionalStringClosestToHome(cart, tdb, FALSE,
-	 OPT_CHROM_COLORS));
-
-/*	If chainColor is a string, it came from the cart, otherwise
- *	see if it is specified in the trackDb option, finally
- *	return the default.
- */
-if (!chainColor)
-    {
-    char * tdbDefault = 
-	trackDbSettingClosestToHomeOrDefault(tdb, OPT_CHROM_COLORS, Default);
-
-    freeMem(chainColor);
-    if (differentWord(Default,tdbDefault))
-	chainColor = cloneString(tdbDefault);
-    else
-	{
-	struct hashEl *hel;
-	/*	no chainColor from trackDb, maybe it is in tdb->settings
-	 *	(custom tracks keep settings here)
-	 */
-	chainColor = cloneString(Default);
-	if ((tdb->settings != (char *)NULL) &&
-	    (tdb->settingsHash != (struct hash *)NULL))
-	    {
-	    if ((hel =hashLookup(tdb->settingsHash, OPT_CHROM_COLORS)) !=NULL)
-		if (differentWord(Default,(char *)hel->val))
-		    {
-		    freeMem(chainColor);
-		    chainColor = cloneString((char *)hel->val);
-		    }
-	    }
-	}
-    }
-
-if (optString)
-    *optString = cloneString(chainColor);
-
-ret = chainColorStringToEnum(chainColor);
-freeMem(chainColor);
+chainColor = trackDbSettingClosestToHomeOrDefault(tdb, OPT_CHROM_COLORS,
+    CHROM_COLORS);
+/* trackDb can be chainColor=normalizedScore, translate into pull-down
+	menu equivalent */
+if (sameWord(TDB_NORMALIZE_SCORE,chainColor))
+    chainColor = SCORE_COLORS;
+/* allow cart to override trackDb setting */
+ret = chainColorStringToEnum(
+	cartUsualStringClosestToHome(cart, tdb, compositeLevel,
+	    OPT_CHROM_COLORS, chainColor));
 return(ret);
 }	/*	enum chainColorEnum chainFetchColorOption()	*/