]> git.armaanb.net Git - lightcards.git/blobdiff - lightcards/display.py
Fix open in external editor
[lightcards.git] / lightcards / display.py
index 8f739e64865629d28cdf28baac35944b134a2409..e74e554c7d39938c1941c3b43ac7779382889866 100644 (file)
@@ -50,7 +50,7 @@ class Quit:
         (mlines, mcols) = self.outer.win.getmaxyx()
         self.win.mvwin(int(mlines / 2) - 3, int(mcols / 2) - 10)
         self.panel.show()
-        if self.outer.config["confirm_quit"]:
+        if self.outer.config["quit_confirmation"]:
             while True:
                 key = self.win.getkey()
                 if key == "y":
@@ -108,8 +108,8 @@ class Help(Panel):
         )
         self.win.hline(2, 1, curses.ACS_HLINE, mcols)
 
-        for t in enumerate(text):
-            self.win.addstr(t[0] + 3, 1, t[1])
+        for i, content in enumerate(text, 3):
+            self.win.addstr(i, 1, content)
 
         self.win.box()
 
@@ -156,8 +156,8 @@ class Menu(Panel):
             f"{c('menu_disp')}: close menu",
         ]
 
-        for t in enumerate(text):
-            self.win.addstr(t[0] + 3, 1, t[1])
+        for i, content in enumerate(text, 3):
+            self.win.addstr(i, 1, content)
 
         self.win.box()
 
@@ -207,11 +207,12 @@ class Menu(Panel):
                 shuffle(self.outer.stack)
                 self.menu_print("Stack shuffled!")
             elif key in self.outer.config["menu_open_file"]:
-                progress.dump(self.outer.stack, runner.get_orig()[1])
                 curses.endwin()
                 os.system(f"$EDITOR {self.outer.input_file}"),
                 (self.outer.headers, self.outer.stack) = parse.parse_html(
-                    parse.md2html(self.outer.input_file)
+                    parse.md2html(self.outer.input_file),
+                    self.outer.args,
+                    self.outer.config,
                 )
                 self.outer.get_key()
             elif key in self.outer.config["menu_stars_only"]:
@@ -254,8 +255,9 @@ class Display:
         self.headers = headers
         self.obj = obj
         self.view = view
-        self.input_file = args.inp[0]
+        self.input_file = args.inp
         self.config = conf
+        self.args = args
 
     def run(self, stdscr):
         """Set important options that require stdscr before starting"""
@@ -291,13 +293,17 @@ class Display:
         else:
             self.disp_card()
 
+    def dump(self):
+        if self.config["cache"]:
+            progress.dump(self.stack, runner.get_orig()[1])
+
     def leave(self):
         """Pickle stack and confirm before quitting"""
         self.quit_obj.disp()
         if self.obj.index + 1 == len(self.stack):
             self.obj.index = 0
 
-        progress.dump(self.stack, runner.get_orig()[1])
+        self.dump()
         sys.exit(0)
 
     def nstarred(self):
@@ -318,7 +324,7 @@ class Display:
         else:
             percent = str(
                 round(self.obj.index / (len(self.stack) - 1) * 100)
-            ).zfill(2)
+            ).zfill(3)
 
         # Print yellow if starred
         if self.current_card().starred:
@@ -473,8 +479,8 @@ class Display:
             )
 
         self.win.hline(1, 0, curses.ACS_HLINE, mcols)
-        self.disp_bar()
         self.disp_sidebar()
+        self.disp_bar()
 
     def current_card(self):
         """Get current card object"""
@@ -548,7 +554,7 @@ class Display:
 
             if i > mlines - 6:
                 for i in range(19):
-                    self.win.addch(mlines - 3, left + i, " ")
+                    self.win.addch(mlines - 4, left + i, " ")
 
                 self.win.addstr(
                     mlines - 4,