diff --git a/wtpython/displays/textual_display.py b/wtpython/displays/textual_display.py index 21d046d..a7501a7 100644 --- a/wtpython/displays/textual_display.py +++ b/wtpython/displays/textual_display.py @@ -63,7 +63,7 @@ def check_overflow(contents: list[Text], console: Console, size: Size) -> bool: """ Check if the sidebar is overflowing or not. - It renders the sidebar, then checks if the controls are visible. + It renders the sidebar, then checks if a test string is visible. Used to generate pages. Args: contents: List of sidebar entries @@ -73,10 +73,13 @@ def check_overflow(contents: list[Text], console: Console, size: Size) -> bool: Returns whether the sidebar is overflowing or not """ page = Text(end="") - for content in contents: + for i, content in enumerate(contents): page.append_text(content) - page.append_text(Text("\n\n")) - page.append_text(Text("<- Prev Page 0/0 Next ->")) + if i != len(contents) - 1: + page.append_text(Text("\n\n")) + page.append_text(Text("3cksjusdkcjsady")) + # Randomness that is almost guarenteed not to be included withing StackOverflow's results + # If it is, that is really unfortunate. panel = Panel(page, title="Questions") @@ -86,7 +89,7 @@ def check_overflow(contents: list[Text], console: Console, size: Size) -> bool: output = "".join(output) - return "<- Prev Page 0/0 Next ->" not in output + return "3cksjusdkcjsady" not in output @staticmethod def get_height(text: Text, console: Console, size: Size) -> int: @@ -212,26 +215,8 @@ def render(self) -> RenderableType: page = self.pages[len(self.pages) - 1] # type: ignore if len(self.pages) > 1: # type: ignore - height = self.get_height(page, self.app.console, self.size) - - extra_lines = self.size.height - height - 4 - - page.append_text( - Text( - "\n" * extra_lines - ) - ) - width = self.size.width - 2 - - page.append_text( - Text( - " " * ( - (width - len(f"<- Prev Page {self.page}/{len(self.pages)} Next ->")) // 2 # type: ignore - ) - ) - ) - - page.append_text( + controls = Text(end="") + controls.append_text( Text.assemble( ( "<- Prev", @@ -241,13 +226,13 @@ def render(self) -> RenderableType: ) ) - page.append_text( + controls.append_text( Text.assemble( (f" Page {self.page + 1}/{len(self.pages)} ", "yellow") # type: ignore ) ) - page.append_text( + controls.append_text( Text.assemble( ( "Next ->", @@ -262,7 +247,10 @@ def render(self) -> RenderableType: } ) ) - self._text = Panel(page, title=self.so.sidebar_title) + + self._text = Panel(page, title=self.so.sidebar_title, subtitle=controls) + else: + self._text = Panel(page, title=self.so.sidebar_title) return self._text