ed3005b2444962700ab71e0781dabf8f05f1312c angie Fri Apr 27 09:18:35 2012 -0700 Bugfix (#7101): Tim found that the BAM UI code was not using ClosestToHome.That caused subtrack config controls to show incorrect values. Fixed according to Tim's suggestion to do like hgTracks code. diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 5c6ccd4..bf7a425 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -6081,91 +6081,86 @@ if (inputs) { \ for (var i=0; i < inputs.length; i++) { \ if (inputs[i].type == 'radio') { \ inputs[i].checked = (inputs[i].value == '%s'); \ } \ } \ }\"" void bamCfgUi(struct cart *cart, struct trackDb *tdb, char *name, char *title, boolean boxed) /* BAM: short-read-oriented alignment file format. */ { boxed = cfgBeginBoxAndTitle(tdb, boxed, title); char cartVarName[1024]; printf("",boxed?" width='100%'":""); -char *tdbShowNames = trackDbSetting(tdb, BAM_SHOW_NAMES); +char *tdbShowNames = cartOrTdbString(cart, tdb, BAM_SHOW_NAMES, "off"); safef(cartVarName, sizeof(cartVarName), "%s.%s", name, BAM_SHOW_NAMES); -cartMakeCheckBox(cart, cartVarName, !sameOk(tdbShowNames, "off")); +cgiMakeCheckBox(cartVarName, !sameOk(tdbShowNames, "off")); printf("Display read names"); if (boxed && fileExists(hHelpFile("hgBamTrackHelp"))) printf("BAM " "configuration help"); printf("\n"); -boolean canPair = (trackDbSetting(tdb, BAM_PAIR_ENDS_BY_NAME) != NULL); +boolean canPair = (cartOrTdbString(cart, tdb, BAM_PAIR_ENDS_BY_NAME, NULL) != NULL); if (canPair) { printf(""); safef(cartVarName, sizeof(cartVarName), "%s." BAM_PAIR_ENDS_BY_NAME, name); - cartMakeCheckBox(cart, cartVarName, TRUE); - printf("Attempt to join paired end reads by name\n"); - //puts("
"); + cgiMakeCheckBox(cartVarName, TRUE); + printf("Attempt to join paired end reads by name\n"); } printf("Minimum alignment quality:\n"); safef(cartVarName, sizeof(cartVarName), "%s." BAM_MIN_ALI_QUAL, name); -cartMakeIntVar(cart, cartVarName, - atoi(trackDbSettingOrDefault(tdb, BAM_MIN_ALI_QUAL, BAM_MIN_ALI_QUAL_DEFAULT)), 4); +cgiMakeIntVar(cartVarName, + atoi(cartOrTdbString(cart, tdb, BAM_MIN_ALI_QUAL, BAM_MIN_ALI_QUAL_DEFAULT)), 4); printf(""); - if (isCustomTrack(name)) { // Auto-magic baseColor defaults for BAM, same as in hgTracks.c newCustomTrack hashAdd(tdb->settingsHash, BASE_COLOR_USE_SEQUENCE, cloneString("lfExtra")); hashAdd(tdb->settingsHash, BASE_COLOR_DEFAULT, cloneString("diffBases")); hashAdd(tdb->settingsHash, SHOW_DIFF_BASES_ALL_SCALES, cloneString(".")); hashAdd(tdb->settingsHash, "showDiffBasesMaxZoom", cloneString("100")); } baseColorDropLists(cart, tdb, name); puts("
"); indelShowOptionsWithName(cart, tdb, name); printf("
\n"); printf("Additional coloring modes:
\n"); safef(cartVarName, sizeof(cartVarName), "%s." BAM_COLOR_MODE, name); -char *selected = cartUsualString(cart, cartVarName, - trackDbSettingOrDefault(tdb, BAM_COLOR_MODE, BAM_COLOR_MODE_DEFAULT)); +char *selected = cartOrTdbString(cart, tdb, BAM_COLOR_MODE, BAM_COLOR_MODE_DEFAULT); cgiMakeRadioButton(cartVarName, BAM_COLOR_MODE_STRAND, sameString(selected, BAM_COLOR_MODE_STRAND)); printf("Color by strand (blue for +, red for -)
\n"); cgiMakeRadioButton(cartVarName, BAM_COLOR_MODE_GRAY, sameString(selected, BAM_COLOR_MODE_GRAY)); printf("Use gray for\n"); char cartVarName2[1024]; safef(cartVarName2, sizeof(cartVarName2), "%s." BAM_GRAY_MODE, name); int grayMenuSize = canPair ? ArraySize(grayLabels) : ArraySize(grayLabels)-1; -char *sel2 = cartUsualString(cart, cartVarName2, - trackDbSettingOrDefault(tdb, BAM_GRAY_MODE, BAM_GRAY_MODE_DEFAULT)); +char *sel2 = cartOrTdbString(cart, tdb, BAM_GRAY_MODE, BAM_GRAY_MODE_DEFAULT); char onChange[2048]; safef(onChange, sizeof(onChange), UPDATE_RADIO_FORMAT, "onChange", cartVarName, BAM_COLOR_MODE_GRAY); cgiMakeDropListFull(cartVarName2, grayLabels, grayValues, grayMenuSize, sel2, onChange); printf("
\n"); -if (trackDbSetting(tdb, "noColorTag") == NULL) +if (trackDbSettingClosestToHome(tdb, "noColorTag") == NULL) { cgiMakeRadioButton(cartVarName, BAM_COLOR_MODE_TAG, sameString(selected, BAM_COLOR_MODE_TAG)); printf("Use R,G,B colors specified in user-defined tag "); safef(cartVarName2, sizeof(cartVarName2), "%s." BAM_COLOR_TAG, name); - sel2 = cartUsualString(cart, cartVarName2, - trackDbSettingOrDefault(tdb, BAM_COLOR_TAG, BAM_COLOR_TAG_DEFAULT)); + sel2 = cartOrTdbString(cart, tdb, BAM_COLOR_TAG, BAM_COLOR_TAG_DEFAULT); safef(onChange, sizeof(onChange), UPDATE_RADIO_FORMAT, "onkeypress", cartVarName, BAM_COLOR_MODE_TAG); cgiMakeTextVarWithExtraHtml(cartVarName2, sel2, 30, onChange); printf("
\n"); } cgiMakeRadioButton(cartVarName, BAM_COLOR_MODE_OFF, sameString(selected, BAM_COLOR_MODE_OFF)); printf("No additional coloring"); //TODO: include / exclude flags if (!boxed && fileExists(hHelpFile("hgBamTrackHelp"))) printf("

BAM " "configuration help

"); cfgEndBox(boxed);