def get_elided_text()

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