036e633e37ba018df11c2b2cb96c1dbd2eb46320 chmalee Thu Apr 20 12:12:09 2023 -0700 Restore a blank item name in the pcr results track, but stuff the primer pair name (which is now in the psls qName) into the map item name so clicks into hgc can still show the right primer details, refs #30925 diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c index 96018ad..fa37c97 100644 --- src/hg/hgTracks/hgTracks.c +++ src/hg/hgTracks/hgTracks.c @@ -805,31 +805,31 @@ else hPrintf("<TR><TD HEIGHT=10></TD></TR></TABLE>\n"); //hPrintf("</DIV>\n"); // TODO use DIV in future if(ideoTrack != NULL) { ideoTrack->limitedVisSet = TRUE; ideoTrack->limitedVis = tvHide; /* Don't draw in main gif. */ } return nukeIdeoFromList; } char *pcrResultMapItemName(struct track *tg, void *item) /* Stitch accession and display name back together (if necessary). */ { struct linkedFeatures *lf = item; -return pcrResultItemAccName(lf->name, lf->extra); +return pcrResultItemAccName(lf->name, lf->extra, (struct psl *)lf->original); } void pcrResultLoad(struct track *tg) /* Load locations of primer matches into linkedFeatures items. */ { char *pslFileName, *primerFileName; struct targetDb *target; if (! pcrResultParseCart(database, cart, &pslFileName, &primerFileName, &target)) return; /* Don't free psl -- used in drawing phase by baseColor code. */ struct psl *pslList = pslLoadAll(pslFileName), *psl; struct linkedFeatures *itemList = NULL; if (target != NULL) { @@ -871,32 +871,33 @@ char extraInfo[512]; safef(extraInfo, sizeof(extraInfo), "%s|%d|%d", (itemName ? itemName : ""), tpsl->tStart, tpsl->tEnd); lf->extra = cloneString(extraInfo); slAddHead(&itemList, lf); } } } hFreeConn(&conn); } else for (psl = pslList; psl != NULL; psl = psl->next) if (sameString(psl->tName, chromName) && psl->tStart < winEnd && psl->tEnd > winStart) { struct linkedFeatures *lf = lfFromPslx(psl, 1, FALSE, FALSE, tg); - lf->name = cloneString(psl->qName); + lf->name = cloneString(""); lf->extra = cloneString(""); + lf->original = psl; slAddHead(&itemList, lf); } slSort(&itemList, linkedFeaturesCmp); tg->items = itemList; } char *pcrResultTrackItemName(struct track *tg, void *item) /* If lf->extra is non-empty, return it (display name for item). * Otherwise default to item name. */ { struct linkedFeatures *lf = item; char *extra = (char *)lf->extra; if (isNotEmpty(extra)) { static char displayName[512];