From 15ada869bb3a7b82e644efa115d94901623e4484 Mon Sep 17 00:00:00 2001 From: Armaan Bhojwani Date: Fri, 12 Feb 2021 21:59:43 -0500 Subject: [PATCH] Add quit confirmation --- lightcards/display.py | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/lightcards/display.py b/lightcards/display.py index 0b75569..0b7fbd5 100644 --- a/lightcards/display.py +++ b/lightcards/display.py @@ -27,6 +27,39 @@ class CursesError(BaseException): sys.exit(3) +class Quit: + def __init__(self, outer, mlines=5, mcols=20): + self.outer = outer + (self.win, self.panel) = panel_create(mlines, mcols) + self.panel.top() + self.panel.hide() + + self.win.addstr( + 1, + 2, + "QUIT LIGHTCARDS?", + curses.color_pair(1) + curses.A_BOLD, + ) + self.win.hline(2, 1, curses.ACS_HLINE, mcols) + self.win.addstr(3, 1, "Quit? [y/n]") + + self.win.box() + + def disp(self): + """Display quit confirmation screen""" + (mlines, mcols) = self.outer.win.getmaxyx() + self.win.mvwin(int(mlines / 2) - 3, int(mcols / 2) - 10) + self.panel.show() + + while True: + key = self.win.getkey() + if key == "y": + break + elif key == "n": + self.panel.hide() + self.outer.get_key() + + class Help: def __init__(self, outer, mlines=20, mcols=52): """Initialize help screen""" @@ -216,6 +249,7 @@ class Display: self.main_panel = curses.panel.new_panel(self.win) self.menu_obj = Menu(self) self.help_obj = Help(self) + self.quit_obj = Quit(self) self.get_key() @@ -238,7 +272,8 @@ class Display: self.disp_card() def leave(self): - """Pickle stack before quitting""" + """Pickle stack and confirm before quitting""" + self.quit_obj.disp() if self.obj.index + 1 == len(self.stack): self.obj.index = 0 -- 2.39.2