Close down presentation apps at end correctly

bzr-revno: 761
This commit is contained in:
Jonathan Corwin 2010-03-23 21:59:32 +02:00 committed by Raoul Snyman
commit ab72e7d7cc
4 changed files with 20 additions and 15 deletions

View File

@ -147,8 +147,9 @@ class ImpressController(PresentationController):
Called at system exit to clean up any running presentations
"""
log.debug(u'Kill OpenOffice')
for doc in self.docs:
doc.close_presentation()
for i in range(len(self.docs)):
self.docs[0].close_presentation() # Yes, always the zeroth one
# as close removes item from array
if os.name != u'nt':
desktop = self.get_uno_desktop()
else:

View File

@ -143,7 +143,7 @@ class PresentationMediaItem(MediaManagerItem):
for cidx in self.controllers:
doc = self.controllers[cidx].add_doc(filepath)
doc.presentation_deleted()
self.controllers[cidx].remove_doc(doc)
doc.close_presentation()
def generateSlideData(self, service_item):
items = self.ListView.selectedIndexes()
@ -171,7 +171,7 @@ class PresentationMediaItem(MediaManagerItem):
service_item.add_from_command(path, name, img)
i = i + 1
img = doc.get_slide_preview_file(i)
controller.remove_doc(doc)
doc.close_presentation()
return True
def findControllerByType(self, filename):

View File

@ -81,8 +81,10 @@ class PowerpointController(PresentationController):
"""
Called at system exit to clean up any running presentations
"""
for doc in self.docs:
doc.close_presentation()
log.debug(u'Kill powerpoint')
for i in range(len(self.docs)):
self.docs[0].close_presentation() # Yes, always the zeroth one
# as close removes item from array
if self.process is None:
return
if self.process.Presentations.Count > 0:
@ -149,12 +151,12 @@ class PowerpointDocument(PresentationDocument):
Triggerent by new object being added to SlideController orOpenLP
being shut down
"""
if self.presentation is None:
return
try:
self.presentation.Close()
except:
pass
log.debug(u'ClosePresentation')
if self.presentation:
try:
self.presentation.Close()
except:
pass
self.presentation = None
self.controller.remove_doc(self)

View File

@ -88,9 +88,10 @@ class PptviewController(PresentationController):
"""
Called at system exit to clean up any running presentations
"""
log.debug(u'Kill')
for doc in self.docs:
doc.close_presentation()
log.debug(u'Kill pptviewer')
for i in range(len(self.docs)):
self.docs[0].close_presentation() # Yes, always the zeroth one
# as close removes item from array
def add_doc(self, name):
log.debug(u'Add Doc PPTView')
@ -137,6 +138,7 @@ class PptviewDocument(PresentationDocument):
Triggerent by new object being added to SlideController orOpenLP
being shut down
"""
log.debug(u'ClosePresentation')
self.controller.process.ClosePPT(self.pptid)
self.pptid = -1
self.controller.remove_doc(self)