slide editing supports multiple slide files
This commit is contained in:
@@ -74,10 +74,11 @@ class slide_reader:
|
||||
self.pages=0
|
||||
self.data=[]
|
||||
self.file_start_page=[]
|
||||
first_slide_found=False
|
||||
for fname in self.files:
|
||||
first_slide_found=False
|
||||
f=open(fname,'r')
|
||||
new_page=[]
|
||||
first_slide_found=False
|
||||
for row in f:
|
||||
if not row:
|
||||
continue
|
||||
@@ -113,7 +114,7 @@ class slide_reader:
|
||||
return self.data
|
||||
def get_current_filename(self):
|
||||
for i,offset in enumerate(self.file_start_page):
|
||||
if offset>=self.page:
|
||||
if offset>self.page:
|
||||
return self.files[i]
|
||||
return "NA"
|
||||
def get_filename(self):
|
||||
@@ -158,11 +159,14 @@ class slide_reader:
|
||||
def get_max_width(self):
|
||||
return self.max_width
|
||||
|
||||
def get_toc(self):
|
||||
def get_toc(self,display_position=False):
|
||||
title=self.opts.toc if self.opts.toc else "Table of Contents"
|
||||
TOC=["# "+title,""]
|
||||
for h1,page in enumerate(self.data[(self.opts.toc_page-1):]):
|
||||
offset=(self.opts.toc_page-1) if self.opts.toc else 0
|
||||
for h1,page in enumerate(self.data[offset:]):
|
||||
title=page[0].strip("# ")
|
||||
if display_position and h1==self.page-offset:
|
||||
title="_%s_"%(title,)
|
||||
TOC.append("%d. %s"%(h1+1,title))
|
||||
subh=[0,0,0]
|
||||
if self.opts.toc_depth>1:
|
||||
@@ -378,7 +382,7 @@ def page_print(reader,opts,offset):
|
||||
sys.stdout.flush()
|
||||
return
|
||||
|
||||
def menu_print(reader,opts):
|
||||
def print_menu(reader,opts):
|
||||
|
||||
bc.posprint( opts.size[0], 0,
|
||||
colorify("${y}%d${Z}/%d %s|%s"%(
|
||||
@@ -402,7 +406,7 @@ def print_help(reader,opts):
|
||||
|
||||
def print_toc(reader,opts):
|
||||
''' Create a window with TOC '''
|
||||
text=reader.get_toc()
|
||||
text=reader.get_toc(display_position=True)
|
||||
title=opts.toc if opts.toc else "Table of Contents"
|
||||
maxlen=max([len(x) for x in text])
|
||||
bc.posprint(3,3,"+"+"-"*maxlen+"+")
|
||||
@@ -411,6 +415,7 @@ def print_toc(reader,opts):
|
||||
colored=md_color.colorize(parsed,not opts.color,opts.dark_colors)
|
||||
else:
|
||||
if opts.color:
|
||||
|
||||
colored=[bc.color_string(row[1]) for row in parsed]
|
||||
else:
|
||||
colored=[bc.nocolor_string(row[1]) for row in parsed]
|
||||
@@ -455,7 +460,7 @@ def browser(opts,files):
|
||||
opts.size=get_console_size()
|
||||
page_print(reader,opts,offset)
|
||||
if opts.menu:
|
||||
menu_print(reader,opts)
|
||||
print_menu(reader,opts)
|
||||
sys.stdout.write(bc.pos(opts.size[0], opts.size[1]))
|
||||
sys.stdout.flush()
|
||||
if opts.screenshots:
|
||||
@@ -612,9 +617,12 @@ def launch(reader,opts,offset):
|
||||
|
||||
def modify_file(reader,offset):
|
||||
row=1
|
||||
row_restarts=reader.file_start_page
|
||||
for page in range(reader.page):
|
||||
row+=len(reader.data[page])
|
||||
subprocess.call("vim +%d -c 'exe \"normal! zt\"' -c %d %s"%(row,row+offset[1],reader.filename),
|
||||
if (page+1) in row_restarts:
|
||||
row=1
|
||||
subprocess.call("vim +%d -c 'exe \"normal! zt\"' -c %d %s"%(row,row+offset[1],reader.get_current_filename()),
|
||||
shell=True)
|
||||
|
||||
def take_screenshot(reader,opts):
|
||||
|
||||
Reference in New Issue
Block a user