From cdfb48d9f8d7816da9e9c78a4bbe959efb1a9a36 Mon Sep 17 00:00:00 2001 From: Armaan Bhojwani Date: Mon, 1 Feb 2021 12:37:42 -0500 Subject: [PATCH] Update bar/sidebar layout --- lightcards/display.py | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/lightcards/display.py b/lightcards/display.py index 09f1e52..4984058 100644 --- a/lightcards/display.py +++ b/lightcards/display.py @@ -30,6 +30,10 @@ class Display(): progress.dump((self.obj, self.stack, self.headers), self.stack) sys.exit(0) + def ntotal(self): + """Get toal number of starred cards""" + return(len([card for card in self.stack if card.getStar()])) + def disp_bar(self): """ Display the statusbar at the bottom of the screen with progress, star @@ -53,11 +57,12 @@ class Display(): # Create bar component bar_start = "[" bar_middle = self.stack[self.obj.getIdx()].printStar() - bar_end = "] [" + percent + "% (" + \ + bar_end = f"] [{self.ntotal()}/{str(len(self.stack))} starred] " + \ + f"[{percent}% (" + \ str(self.obj.getIdx() + 1).zfill(len(str(len(self.stack)))) + \ - "/" + str(len(self.stack)) + ")] [" + \ - self.headers[self.obj.getSide()] + " (" + \ - str(self.obj.getSide() + 1) + ")]" + f"/{str(len(self.stack))})] [" + \ + f"{self.headers[self.obj.getSide()]} (" + \ + f"{str(self.obj.getSide() + 1)})] " # Put it all togethor self.win.hline(mlines - 2, 0, 0, mcols) @@ -272,28 +277,26 @@ class Display(): def disp_sidebar(self): (mlines, mcols) = self.win.getmaxyx() + left = mcols - 19 + self.win.addstr(0, mcols - 16, "STARRED CARDS", curses.color_pair(3) + curses.A_BOLD) - self.win.vline(0, mcols - 20, 0, mlines) - self.win.hline(1, mcols - 19, 0, mlines) - - total = [card for card in self.stack if card.getStar()] - ntotal = len(total) + self.win.vline(0, mcols - 20, 0, mlines - 2) + self.win.hline(1, left, 0, mlines) i = 0 for card in self.stack: if i > mlines - 6: - self.win.addstr(2 + i, mcols - 19, f"... ({ntotal - i} more)") + self.win.addstr(2 + i, left, f"... ({self.ntotal() - i} more)") break elif card.getStar(): term = card[0] if len(card[0]) > 18: term = card[0][:18] + "…" - self.win.addstr(2 + i, mcols - 19, term) + self.win.addstr(2 + i, left, term) i += 1 if i == 0: - self.win.addstr(2, mcols - 19, "None starred") + self.win.addstr(2, left, "None starred") - self.win.addstr(mlines - 1, mcols - 19, f"{ntotal}/{str(len(self.stack))}") -- 2.39.2