forked from openlp/openlp
Fix stuttering powerpoint start
This commit is contained in:
parent
9b04385f34
commit
78a9c89025
@ -646,7 +646,7 @@ class SlideController(QtGui.QWidget):
|
|||||||
self.display.buildHtml(self.serviceItem)
|
self.display.buildHtml(self.serviceItem)
|
||||||
if serviceItem.is_media():
|
if serviceItem.is_media():
|
||||||
self.onMediaStart(serviceItem)
|
self.onMediaStart(serviceItem)
|
||||||
self.onSlideSelected()
|
self.onSlideSelected(True)
|
||||||
self.previewListWidget.setFocus()
|
self.previewListWidget.setFocus()
|
||||||
Receiver.send_message(u'slidecontroller_%s_started' % self.typePrefix,
|
Receiver.send_message(u'slidecontroller_%s_started' % self.typePrefix,
|
||||||
[serviceItem])
|
[serviceItem])
|
||||||
@ -833,7 +833,7 @@ class SlideController(QtGui.QWidget):
|
|||||||
% self.serviceItem.name.lower(),
|
% self.serviceItem.name.lower(),
|
||||||
[self.serviceItem, self.isLive])
|
[self.serviceItem, self.isLive])
|
||||||
|
|
||||||
def onSlideSelected(self):
|
def onSlideSelected(self, start=False):
|
||||||
"""
|
"""
|
||||||
Generate the preview when you click on a slide.
|
Generate the preview when you click on a slide.
|
||||||
if this is the Live Controller also display on the screen
|
if this is the Live Controller also display on the screen
|
||||||
@ -842,7 +842,7 @@ class SlideController(QtGui.QWidget):
|
|||||||
self.selectedRow = 0
|
self.selectedRow = 0
|
||||||
if row > -1 and row < self.previewListWidget.rowCount():
|
if row > -1 and row < self.previewListWidget.rowCount():
|
||||||
if self.serviceItem.is_command():
|
if self.serviceItem.is_command():
|
||||||
if self.isLive:
|
if self.isLive and not start:
|
||||||
Receiver.send_message(
|
Receiver.send_message(
|
||||||
u'%s_slide' % self.serviceItem.name.lower(),
|
u'%s_slide' % self.serviceItem.name.lower(),
|
||||||
[self.serviceItem, self.isLive, row])
|
[self.serviceItem, self.isLive, row])
|
||||||
|
@ -49,7 +49,7 @@ class Controller(object):
|
|||||||
self.doc = None
|
self.doc = None
|
||||||
log.info(u'%s controller loaded' % live)
|
log.info(u'%s controller loaded' % live)
|
||||||
|
|
||||||
def add_handler(self, controller, file, hide_mode):
|
def add_handler(self, controller, file, hide_mode, slide_no):
|
||||||
"""
|
"""
|
||||||
Add a handler, which is an instance of a presentation and
|
Add a handler, which is an instance of a presentation and
|
||||||
slidecontroller combination. If the slidecontroller has a display
|
slidecontroller combination. If the slidecontroller has a display
|
||||||
@ -64,8 +64,8 @@ class Controller(object):
|
|||||||
# Display error message to user
|
# Display error message to user
|
||||||
# Inform slidecontroller that the action failed?
|
# Inform slidecontroller that the action failed?
|
||||||
return
|
return
|
||||||
|
self.doc.slidenumber = slide_no
|
||||||
if self.is_live:
|
if self.is_live:
|
||||||
self.doc.start_presentation()
|
|
||||||
if hide_mode == HideMode.Screen:
|
if hide_mode == HideMode.Screen:
|
||||||
Receiver.send_message(u'maindisplay_hide', HideMode.Screen)
|
Receiver.send_message(u'maindisplay_hide', HideMode.Screen)
|
||||||
self.stop()
|
self.stop()
|
||||||
@ -73,11 +73,14 @@ class Controller(object):
|
|||||||
Receiver.send_message(u'maindisplay_hide', HideMode.Theme)
|
Receiver.send_message(u'maindisplay_hide', HideMode.Theme)
|
||||||
self.blank()
|
self.blank()
|
||||||
elif hide_mode == HideMode.Blank:
|
elif hide_mode == HideMode.Blank:
|
||||||
Receiver.send_message(u'maindisplay_hide', HideMode.Screen)
|
Receiver.send_message(u'maindisplay_hide', HideMode.Blank)
|
||||||
self.blank()
|
self.blank()
|
||||||
else:
|
else:
|
||||||
|
self.doc.start_presentation()
|
||||||
Receiver.send_message(u'maindisplay_hide', HideMode.Screen)
|
Receiver.send_message(u'maindisplay_hide', HideMode.Screen)
|
||||||
self.doc.slidenumber = 0
|
self.doc.slidenumber = 0
|
||||||
|
if slide_no > 1:
|
||||||
|
self.slide(slide_no)
|
||||||
|
|
||||||
def activate(self):
|
def activate(self):
|
||||||
"""
|
"""
|
||||||
@ -281,7 +284,8 @@ class MessageListener(object):
|
|||||||
controller = self.live_handler
|
controller = self.live_handler
|
||||||
else:
|
else:
|
||||||
controller = self.preview_handler
|
controller = self.preview_handler
|
||||||
controller.add_handler(self.controllers[self.handler], file, hide_mode)
|
controller.add_handler(self.controllers[self.handler], file, hide_mode,
|
||||||
|
message[3])
|
||||||
|
|
||||||
def slide(self, message):
|
def slide(self, message):
|
||||||
"""
|
"""
|
||||||
|
@ -251,14 +251,13 @@ class PowerpointDocument(PresentationDocument):
|
|||||||
win32ui.GetForegroundWindow().GetDC().GetDeviceCaps(88)
|
win32ui.GetForegroundWindow().GetDC().GetDeviceCaps(88)
|
||||||
except win32ui.error:
|
except win32ui.error:
|
||||||
dpi = 96
|
dpi = 96
|
||||||
self.presentation.SlideShowSettings.Run()
|
|
||||||
self.presentation.SlideShowWindow.View.GotoSlide(1)
|
|
||||||
rendermanager = self.controller.plugin.renderManager
|
rendermanager = self.controller.plugin.renderManager
|
||||||
rect = rendermanager.screens.current[u'size']
|
rect = rendermanager.screens.current[u'size']
|
||||||
self.presentation.SlideShowWindow.Top = rect.y() * 72 / dpi
|
ppt_window = self.presentation.SlideShowSettings.Run()
|
||||||
self.presentation.SlideShowWindow.Height = rect.height() * 72 / dpi
|
ppt_window.Top = rect.y() * 72 / dpi
|
||||||
self.presentation.SlideShowWindow.Left = rect.x() * 72 / dpi
|
ppt_window.Height = rect.height() * 72 / dpi
|
||||||
self.presentation.SlideShowWindow.Width = rect.width() * 72 / dpi
|
ppt_window.Left = rect.x() * 72 / dpi
|
||||||
|
ppt_window.Width = rect.width() * 72 / dpi
|
||||||
|
|
||||||
def get_slide_number(self):
|
def get_slide_number(self):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user