Only the first title should be converted to from sort to display order.

Subtitles don't influence display order, so don't need to be touched.
OK, I now have a subtitle with a comma ('Ring the Bell, Watchman').
If it was the main title I'd have to do something else, but it isn't,
so for now...
This commit is contained in:
Jim Hague 2019-03-23 06:59:37 +00:00
parent a96e897625
commit 54c233a457
1 changed files with 3 additions and 1 deletions

View File

@ -136,6 +136,8 @@ def convertAccents(t, latex=False):
return res return res
# Convert Title fields from sort to display, so Bat, The->The Bat. # Convert Title fields from sort to display, so Bat, The->The Bat.
# This only happens for the main title, i.e. the first title in a tune.
# Subtitles are not affected, as they don't influence sort order.
def convertTitleToDisplay(t): def convertTitleToDisplay(t):
p = t.rpartition(',') p = t.rpartition(',')
if p[1] == "": if p[1] == "":
@ -228,7 +230,7 @@ def getFieldDisplayText(lines, dir, field, n = 1, starts = None, latex = False):
# Fields that go through Markdown must have HTML entities. # Fields that go through Markdown must have HTML entities.
mdfield = field.upper() in ['H', 'N']; mdfield = field.upper() in ['H', 'N'];
res = convertAccents(res, False if mdfield else latex) res = convertAccents(res, False if mdfield else latex)
if field.upper() == "T": if field.upper() == "T" and n == 1:
res = convertTitleToDisplay(res) res = convertTitleToDisplay(res)
elif field.upper() == "K": elif field.upper() == "K":
res = convertKeyToDisplay(res) res = convertKeyToDisplay(res)