Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 16 additions & 28 deletions wtpython/displays/textual_display.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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"))
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we hardcode this? Or maybe generate something random programmitcally? Just feels weird to me. Also this is a Stackoverflow specific method, should it be in Stackoverflow parts of the code rather than here?

# 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")

Expand All @@ -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
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as comment on line 80.


@staticmethod
def get_height(text: Text, console: Console, size: Size) -> int:
Expand Down Expand Up @@ -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",
Expand All @@ -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 ->",
Expand All @@ -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

Expand Down