Bug 598361 - Preview presentation error. Ensure presentations close correctly

This commit is contained in:
Jonathan Corwin 2010-06-25 21:20:03 +01:00
parent a23a354532
commit 217b40c26f
3 changed files with 17 additions and 19 deletions

View File

@ -519,9 +519,13 @@ class SlideController(QtGui.QWidget):
""" """
log.debug(u'processManagerItem') log.debug(u'processManagerItem')
self.onStopLoop() self.onStopLoop()
#If old item was a command tell it to stop #If old item was a command tell it to stop
if self.serviceItem and self.serviceItem.is_command(): if self.serviceItem:
self.onMediaStop() if self.serviceItem.is_command():
Receiver.send_message(u'%s_stop' %
self.serviceItem.name.lower(), [serviceItem, self.isLive])
if self.serviceItem.is_media():
self.onMediaStop()
if serviceItem.is_media(): if serviceItem.is_media():
self.onMediaStart(serviceItem) self.onMediaStart(serviceItem)
if self.isLive: if self.isLive:
@ -827,7 +831,7 @@ class SlideController(QtGui.QWidget):
return return
Receiver.send_message(u'%s_next' % self.serviceItem.name.lower(), Receiver.send_message(u'%s_next' % self.serviceItem.name.lower(),
[self.serviceItem, self.isLive]) [self.serviceItem, self.isLive])
if self.serviceItem.is_command(): if self.serviceItem.is_command() and self.isLive:
self.updatePreview() self.updatePreview()
else: else:
row = self.PreviewListWidget.currentRow() + 1 row = self.PreviewListWidget.currentRow() + 1
@ -851,7 +855,7 @@ class SlideController(QtGui.QWidget):
return return
Receiver.send_message(u'%s_previous' % self.serviceItem.name.lower(), Receiver.send_message(u'%s_previous' % self.serviceItem.name.lower(),
[self.serviceItem, self.isLive]) [self.serviceItem, self.isLive])
if self.serviceItem.is_command(): if self.serviceItem.is_command() and self.isLive:
self.updatePreview() self.updatePreview()
else: else:
row = self.PreviewListWidget.currentRow() - 1 row = self.PreviewListWidget.currentRow() - 1

View File

@ -132,18 +132,13 @@ class ImpressController(PresentationController):
def get_com_desktop(self): def get_com_desktop(self):
log.debug(u'get COM Desktop OpenOffice') log.debug(u'get COM Desktop OpenOffice')
try: return self.manager.createInstance(u'com.sun.star.frame.Desktop')
desktop = self.manager.createInstance(u'com.sun.star.frame.Desktop')
return desktop
except:
log.exception(u'Failed to get COM desktop')
return None
def get_com_servicemanager(self): def get_com_servicemanager(self):
log.debug(u'get_com_servicemanager openoffice') log.debug(u'get_com_servicemanager openoffice')
try: try:
return Dispatch(u'com.sun.star.ServiceManager') return Dispatch(u'com.sun.star.ServiceManager')
except: except pywintypes.com_error:
log.exception(u'Failed to get COM service manager') log.exception(u'Failed to get COM service manager')
return None return None

View File

@ -70,16 +70,16 @@ class Controller(object):
if self.doc.slidenumber > 1: if self.doc.slidenumber > 1:
self.doc.goto_slide(self.doc.slidenumber) self.doc.goto_slide(self.doc.slidenumber)
def slide(self, slide, live): def slide(self, slide):
log.debug(u'Live = %s, slide' % live) log.debug(u'Live = %s, slide' % self.is_live)
if not live: if not self.is_live:
return return
if self.doc.is_blank(): if self.doc.is_blank():
self.doc.slidenumber = int(slide) + 1 self.doc.slidenumber = int(slide) + 1
return return
self.activate() self.activate()
self.doc.goto_slide(int(slide) + 1) self.doc.goto_slide(int(slide) + 1)
self.doc.poll_slidenumber(live) self.doc.poll_slidenumber(self.is_live)
def first(self): def first(self):
""" """
@ -248,11 +248,10 @@ class MessageListener(object):
def slide(self, message): def slide(self, message):
is_live = message[1] is_live = message[1]
slide = message[2] slide = message[2]
item = message[0]
if is_live: if is_live:
self.live_handler.slide(slide, item) self.live_handler.slide(slide)
else: else:
self.preview_handler.slide(slide, item) self.preview_handler.slide(slide)
def first(self, message): def first(self, message):
is_live = message[1] is_live = message[1]