forked from openlp/openlp
Performance updates
This commit is contained in:
parent
ca20598dde
commit
c3b890e198
@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
import time
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
from PyQt4.phonon import Phonon
|
from PyQt4.phonon import Phonon
|
||||||
@ -36,6 +37,24 @@ from openlp.core.lib import OpenLPToolbar, Receiver, resize_image, \
|
|||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
class SlideThread(QtCore.QThread):
|
||||||
|
"""
|
||||||
|
A special Qt thread class to speed up the display of text based frames.
|
||||||
|
This is threaded so it loads the frames in background
|
||||||
|
"""
|
||||||
|
def __init__(self, parent, prefix, count):
|
||||||
|
QtCore.QThread.__init__(self, parent)
|
||||||
|
self.prefix = prefix
|
||||||
|
self.count = count
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
"""
|
||||||
|
Run the thread.
|
||||||
|
"""
|
||||||
|
time.sleep(1)
|
||||||
|
for i in range(0, self.count):
|
||||||
|
Receiver.send_message(u'%s_slide_cache' % self.prefix, i)
|
||||||
|
|
||||||
class SlideList(QtGui.QTableWidget):
|
class SlideList(QtGui.QTableWidget):
|
||||||
"""
|
"""
|
||||||
Customised version of QTableWidget which can respond to keyboard
|
Customised version of QTableWidget which can respond to keyboard
|
||||||
@ -391,6 +410,8 @@ class SlideController(QtGui.QWidget):
|
|||||||
if self.isLive:
|
if self.isLive:
|
||||||
QtCore.QObject.connect(self.volumeSlider,
|
QtCore.QObject.connect(self.volumeSlider,
|
||||||
QtCore.SIGNAL(u'sliderReleased()'), self.mediaVolume)
|
QtCore.SIGNAL(u'sliderReleased()'), self.mediaVolume)
|
||||||
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
|
QtCore.SIGNAL(u'%s_slide_cache' % self.typePrefix), self.slideCache)
|
||||||
|
|
||||||
def screenSizeChanged(self):
|
def screenSizeChanged(self):
|
||||||
"""
|
"""
|
||||||
@ -617,6 +638,10 @@ class SlideController(QtGui.QWidget):
|
|||||||
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])
|
||||||
|
if self.serviceItem.is_image():
|
||||||
|
st = SlideThread(
|
||||||
|
self, self.typePrefix, len(self.serviceItem.get_frames()))
|
||||||
|
st.start()
|
||||||
|
|
||||||
def onTextRequest(self):
|
def onTextRequest(self):
|
||||||
"""
|
"""
|
||||||
@ -769,6 +794,13 @@ class SlideController(QtGui.QWidget):
|
|||||||
% self.serviceItem.name.lower(),
|
% self.serviceItem.name.lower(),
|
||||||
[self.serviceItem, self.isLive])
|
[self.serviceItem, self.isLive])
|
||||||
|
|
||||||
|
def slideCache(self, slide):
|
||||||
|
"""
|
||||||
|
Generate a slide cache item rendered and ready for use
|
||||||
|
in the background.
|
||||||
|
"""
|
||||||
|
self.serviceItem.get_rendered_frame(int(slide))
|
||||||
|
|
||||||
def onSlideSelected(self):
|
def onSlideSelected(self):
|
||||||
"""
|
"""
|
||||||
Generate the preview when you click on a slide.
|
Generate the preview when you click on a slide.
|
||||||
|
Loading…
Reference in New Issue
Block a user