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() */