]> git.armaanb.net Git - lightcards.git/commitdiff
Move edit file keybinding into control menu
authorArmaan Bhojwani <me@armaanb.net>
Fri, 12 Feb 2021 22:44:05 +0000 (17:44 -0500)
committerArmaan Bhojwani <me@armaanb.net>
Fri, 12 Feb 2021 23:33:09 +0000 (18:33 -0500)
Additionally, remove eliminate runner.reparse()

lightcards/display.py
lightcards/runner.py
man/lightcards.1
man/lightcards.1.md

index 0e1c01c7c35a0886cb3722d3e153d879177ab517..db97fdfddd4e6f5c2a36aac352905b90f1f3d021 100644 (file)
@@ -3,12 +3,13 @@
 
 import curses
 import curses.panel
 
 import curses
 import curses.panel
+import os
 from random import shuffle
 import sys
 import textwrap
 import time
 
 from random import shuffle
 import sys
 import textwrap
 import time
 
-from . import runner, progress
+from . import runner, progress, parse
 
 
 def panel_create(x, y):
 
 
 def panel_create(x, y):
@@ -27,7 +28,7 @@ class CursesError(BaseException):
 
 
 class Help:
 
 
 class Help:
-    def __init__(self, outer, mlines=21, mcols=52):
+    def __init__(self, outer, mlines=20, mcols=52):
         """Initialize help screen"""
         self.outer = outer
         (self.win, self.panel) = panel_create(mlines, mcols)
         """Initialize help screen"""
         self.outer = outer
         (self.win, self.panel) = panel_create(mlines, mcols)
@@ -45,7 +46,6 @@ class Help:
             "0, ^, home       go to the start of the deck",
             "$, end           go to the end of the deck",
             "H, ?             open this screen",
             "0, ^, home       go to the start of the deck",
             "$, end           go to the end of the deck",
             "H, ?             open this screen",
-            "e                open the input file in $EDITOR",
             "m                open the control menu",
             "1, 2, 3          switch views",
             "",
             "m                open the control menu",
             "1, 2, 3          switch views",
             "",
@@ -84,7 +84,7 @@ class Help:
 
 
 class Menu:
 
 
 class Menu:
-    def __init__(self, outer, mlines=16, mcols=44):
+    def __init__(self, outer, mlines=17, mcols=44):
         """Initialize the menu with content"""
         self.outer = outer
         (self.win, self.panel) = panel_create(mlines, mcols)
         """Initialize the menu with content"""
         self.outer = outer
         (self.win, self.panel) = panel_create(mlines, mcols)
@@ -106,6 +106,7 @@ class Menu:
             "[u]: unstar all",
             "[d]: star all",
             "[s]: update stack to include starred only",
             "[u]: unstar all",
             "[d]: star all",
             "[s]: update stack to include starred only",
+            "[e]: open the input file in $EDITOR",
             "",
             "[r]: restart",
             "[m]: close menu",
             "",
             "[r]: restart",
             "[m]: close menu",
@@ -123,7 +124,7 @@ class Menu:
         else:
             color = curses.color_pair(1)
 
         else:
             color = curses.color_pair(1)
 
-        self.win.addstr(14, 1, string, color)
+        self.win.addstr(15, 1, string, color)
         self.menu_grab()
 
     def menu_grab(self):
         self.menu_grab()
 
     def menu_grab(self):
@@ -153,6 +154,13 @@ class Menu:
             elif key == "z":
                 shuffle(self.outer.stack)
                 self.menu_print("Stack shuffled!")
             elif key == "z":
                 shuffle(self.outer.stack)
                 self.menu_print("Stack shuffled!")
+            elif key == "e":
+                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)
+                )
+                self.outer.get_key()
             elif key == "s":
                 # Check if there are any starred cards before proceeding, and
                 # if not, don't allow to proceed and show an error message
             elif key == "s":
                 # Check if there are any starred cards before proceeding, and
                 # if not, don't allow to proceed and show an error message
@@ -189,11 +197,12 @@ class Menu:
 
 
 class Display:
 
 
 class Display:
-    def __init__(self, stack, headers, obj, view):
+    def __init__(self, stack, headers, obj, view, input_file):
         self.stack = stack
         self.headers = headers
         self.obj = obj
         self.view = view
         self.stack = stack
         self.headers = headers
         self.obj = obj
         self.view = view
+        self.input_file = input_file
 
     def run(self, stdscr):
         """Set important options that require stdscr before starting"""
 
     def run(self, stdscr):
         """Set important options that require stdscr before starting"""
@@ -308,7 +317,7 @@ class Display:
         self.win.clear()
         num_done = str(self.obj.index + 1).zfill(len(str(len(self.stack))))
 
         self.win.clear()
         num_done = str(self.obj.index + 1).zfill(len(str(len(self.stack))))
 
-        if self.view in [1, 2]:
+        if self.view in [1, 2, 4]:
             """
             Display the contents of the card.
             Shows a header, a horizontal line, and the contents of the current
             """
             Display the contents of the card.
             Shows a header, a horizontal line, and the contents of the current
@@ -431,10 +440,7 @@ class Display:
                 self.help_obj.disp()
             elif key == "m":
                 self.menu_obj.disp()
                 self.help_obj.disp()
             elif key == "m":
                 self.menu_obj.disp()
-            elif key == "e":
-                (self.headers, self.stack) = runner.reparse()
-                self.get_key()
-            elif key in ["1", "2", "3"]:
+            elif key in ["1", "2", "3", "4"]:
                 self.view = int(key)
 
     def disp_sidebar(self):
                 self.view = int(key)
 
     def disp_sidebar(self):
index 7c730776bb3a436ea4084a8e8413acf863e40bdf..69d5cbe09c1dd029d40e60b5af8a6f1fc8c1027a 100644 (file)
@@ -55,7 +55,7 @@ def parse_args():
     return parser.parse_args()
 
 
     return parser.parse_args()
 
 
-def show(args, stack, headers):
+def show(args, stack, headers, input_file):
     """
     Get objects from cache, manipulate deck according to passed arguments, and
     send it to the display functions
     """
     Get objects from cache, manipulate deck according to passed arguments, and
     send it to the display functions
@@ -79,20 +79,13 @@ def show(args, stack, headers):
         stack.reverse()
 
     # Send to display
         stack.reverse()
 
     # Send to display
-    win = Display(stack, headers, idx, args.view)
+    win = Display(stack, headers, idx, args.view, input_file)
     try:
         curses.wrapper(win.run)
     except curses.error as e:
         raise CursesError() from e
 
 
     try:
         curses.wrapper(win.run)
     except curses.error as e:
         raise CursesError() from e
 
 
-def reparse():
-    """Parse arguments and input file again"""
-    args = parse_args()
-    os.system(f"$EDITOR {args.inp[0]}"),
-    return parse.parse_html(parse.md2html(args.inp[0]))
-
-
 def get_orig():
     """Return original header and stack"""
     return (headers, stack)
 def get_orig():
     """Return original header and stack"""
     return (headers, stack)
@@ -102,8 +95,9 @@ def main(args=sys.argv):
     sys.tracebacklimit = 0
     args = parse_args()
     global headers, stack
     sys.tracebacklimit = 0
     args = parse_args()
     global headers, stack
-    (headers, stack) = parse.parse_html(parse.md2html(args.inp[0]))
-    show(args, stack, headers)
+    input_file = args.inp[0]
+    (headers, stack) = parse.parse_html(parse.md2html(input_file))
+    show(args, stack, headers, input_file)
 
 
 if __name__ == "__main__":
 
 
 if __name__ == "__main__":
index 37b3866eea7b206eb27867d399639ae7bf40d54e..74596ba54fcc1d2edc8575db3eb72b760d966260 100644 (file)
@@ -60,9 +60,6 @@ Go to end of deck
 \f[B]H\f[R], \f[B]?\f[R]
 Open help screen
 .TP
 \f[B]H\f[R], \f[B]?\f[R]
 Open help screen
 .TP
-\f[B]e\f[R]
-Open input file in $EDITOR
-.TP
 \f[B]m\f[R]
 Open control menu
 .TP
 \f[B]m\f[R]
 Open control menu
 .TP
index 78865eb874333166dfaf26ad5098ecdec331ef82..615b857ca58b65ac24b4b2c170908ef1e77e6dcb 100644 (file)
@@ -61,9 +61,6 @@ lightcards \[options\] \[input file\]
 **H**, **?**
 : Open help screen
 
 **H**, **?**
 : Open help screen
 
-**e**
-: Open input file in $EDITOR
-
 **m**
 : Open control menu
 
 **m**
 : Open control menu