018505887b2ec414e3a30419422a9b2c61f8f5c3
markd
  Thu Aug 9 00:23:28 2012 -0700
fixed breaking control over gene labels when gencode track was refactored
diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index 1df21c5..5a48a5d 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -10036,60 +10036,64 @@
 void dgvMethods(struct track *tg)
 /* Database of Genomic Variants. */
 {
 linkedFeaturesMethods(tg);
 tg->loadItems = loadDgv;
 }
 
 void loadGenePred(struct track *tg)
 /* Convert gene pred in window to linked feature. */
 {
 tg->items = lfFromGenePredInRange(tg, tg->table, chromName, winStart, winEnd);
 /* filter items on selected criteria if filter is available */
 filterItems(tg, genePredClassFilter, "include");
 }
 
-void loadGenePredWithConfiguredName(struct track *tg)
-/* Convert gene pred info in window to linked feature. Include name
- * in "extra" field (gene name, accession, or both, depending on UI) */
+void genePredAssignConfiguredName(struct track *tg)
+/* Set name on genePred in "extra" field to gene name, accession, or both,
+ * depending, on UI on all items in track */
 {
-char *geneLabel;
-boolean useGeneName, useAcc;
-struct linkedFeatures *lf;
-
-geneLabel = cartUsualStringClosestToHome(cart, tg->tdb, FALSE, "label","gene");
-useGeneName =  sameString(geneLabel, "gene")
+char *geneLabel = cartUsualStringClosestToHome(cart, tg->tdb, FALSE, "label","gene");
+boolean useGeneName =  sameString(geneLabel, "gene")
             || sameString(geneLabel, "name")
             || sameString(geneLabel, "both");
-useAcc = sameString(geneLabel, "accession") || sameString(geneLabel, "both");
+boolean useAcc = sameString(geneLabel, "accession") || sameString(geneLabel, "both");
 
-loadGenePredWithName2(tg);
+struct linkedFeatures *lf;
 for (lf = tg->items; lf != NULL; lf = lf->next)
     {
     struct dyString *name = dyStringNew(SMALLDYBUF);
     if (useGeneName && !isEmpty((char*)lf->extra))
         {
         dyStringAppend(name, lf->extra);
         if (useAcc)
             dyStringAppendC(name, '/');
         }
     if (useAcc)
         dyStringAppend(name, lf->name);
     lf->extra = dyStringCannibalize(&name);
     }
 }
 
+void loadGenePredWithConfiguredName(struct track *tg)
+/* Convert gene pred info in window to linked feature. Include name
+ * in "extra" field (gene name, accession, or both, depending on UI) */
+{
+loadGenePredWithName2(tg);
+genePredAssignConfiguredName(tg);
+}
+
 Color genePredItemAttrColor(struct track *tg, void *item, struct hvGfx *hvg)
 /* Return color to draw a genePred in based on looking it up in a itemAttr
  * table. */
 {
 struct linkedFeatures *lf = item;
 if (lf->itemAttr != NULL)
     return hvGfxFindColorIx(hvg, lf->itemAttr->colorR, lf->itemAttr->colorG, lf->itemAttr->colorB);
 else
     return tg->ixColor;
 }
 
 Color genePredItemClassColor(struct track *tg, void *item, struct hvGfx *hvg)
 /* Return color to draw a genePred based on looking up the gene class */
 /* in an itemClass table. */
 {