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