in client/securedrop_client/gui/base/misc.py [0:0]
def get_elided_text(self, full_text: str) -> str:
if not self.max_length:
return full_text
# Only allow one line of elided text
if "\n" in full_text:
full_text = full_text.split("\n", 1)[0]
fm = self.fontMetrics()
px_width = fm.horizontalAdvance(full_text)
if px_width > self.max_length:
elided_text = ""
for c in full_text:
if fm.horizontalAdvance(elided_text) > self.max_length:
return elided_text[:-3] + "…"
elided_text = elided_text + c
return full_text