f7148e5113be698a6fe208b4b233540be2000636
kate
  Thu Apr 23 11:30:36 2020 -0700
Change note on longlabel when hide empty is on.  Also, limit to composite track label (don't display on subtracks). refs #23365

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index 9cb9f0d..d3380b9 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -10339,15 +10339,39 @@
 {
 tg->longLabel = labelAsFilteredNumber(tg->longLabel, numOut);
 }
 
 void labelTrackAsFiltered(struct track *tg)
 /* add text to track long label to indicate filter is active */
 {
 tg->longLabel = labelAsFiltered(tg->longLabel);
 
 // also label parent composite track filtered
 struct trackDb *parentTdb = tdbGetComposite(tg->tdb);
 if (parentTdb)
     parentTdb->longLabel = labelAsFiltered(parentTdb->longLabel);
 }
 
+static char *labelAddNote(char *label, char *note)
+/* add parenthesized text to label */
+// TODO: move to lib/trackDbCustom.c
+{
+char buffer[2048];
+safef(buffer, sizeof buffer, " (%s)", note);
+if (stringIn(note, label))
+    return label;
+return (catTwoStrings(label, buffer));
+}
+
+void labelTrackAsHideEmpty(struct track *tg)
+/* Add text to track long label to indicate empty subtracks are hidden,
+ * but avoid adding to subtrack labels */
+{
+#define EMPTY_SUBTRACKS_HIDDEN "empty subtracks hidden"
+struct trackDb *parentTdb = tdbGetComposite(tg->tdb);
+if (parentTdb)
+    parentTdb->longLabel = labelAddNote(parentTdb->longLabel, EMPTY_SUBTRACKS_HIDDEN);
+else
+    tg->longLabel = labelAddNote(tg->longLabel, EMPTY_SUBTRACKS_HIDDEN);
+}
+
+