bugfixing

This commit is contained in:
rimach 2011-10-24 22:04:29 +02:00
parent 509c0ba93d
commit a2ebf30b68
9 changed files with 45 additions and 45 deletions

View File

@ -106,18 +106,14 @@ sup {
function show_blank(state){
var black = 'none';
var lyrics = '';
var pause = false;
switch(state){
case 'theme':
lyrics = 'hidden';
pause = true;
break;
case 'black':
black = 'block';
pause = true;
break;
case 'desktop':
pause = true;
break;
}
document.getElementById('black').style.display = black;
@ -130,13 +126,6 @@ sup {
if(shadow!=null)
shadow.style.visibility = lyrics;
document.getElementById('footer').style.visibility = lyrics;
var vid = document.getElementById('video');
if(vid.src != ''){
if(pause)
vid.pause();
else
vid.play();
}
}
function show_alert(alerttext, position){
@ -220,7 +209,6 @@ sup {
function show_text_complete(){
return (text_opacity()==1);
}
</script>
</head>
<body>
@ -235,8 +223,8 @@ sup {
</html>
"""
def build_html(item, screen, alert, islive, background, plugins=None,
image=None):
def build_html(item, screen, alert, islive, background, image=None,
plugins=None):
"""
Build the full web paged structure for display
@ -255,11 +243,11 @@ def build_html(item, screen, alert, islive, background, plugins=None,
``background``
Theme background image - bytes
``plugins``
access to the plugins
``image``
Image media item - bytes
``plugins``
The List of available plugins
"""
width = screen[u'size'].width()
height = screen[u'size'].height()

View File

@ -42,6 +42,13 @@ class PluginManager(object):
"""
log.info(u'Plugin manager loaded')
@staticmethod
def get_instance():
"""
Obtain a single instance of class.
"""
return PluginManager.instance
def __init__(self, plugin_dir):
"""
The constructor for the plugin manager. Passes the controllers on to
@ -51,6 +58,7 @@ class PluginManager(object):
The directory to search for plugins.
"""
log.info(u'Plugin manager Initialising')
PluginManager.instance = self
if not plugin_dir in sys.path:
log.debug(u'Inserting %s into sys.path', plugin_dir)
sys.path.insert(0, plugin_dir)

View File

@ -31,7 +31,7 @@ from PyQt4 import QtGui, QtCore, QtWebKit
from openlp.core.lib import ServiceItem, expand_tags, \
build_lyrics_format_css, build_lyrics_outline_css, Receiver, \
ItemCapabilities, FormattingTags
ItemCapabilities, FormattingTags, PluginManager
from openlp.core.lib.theme import ThemeLevel
from openlp.core.ui import MainDisplay, ScreenList
@ -55,7 +55,7 @@ class Renderer(object):
"""
log.info(u'Renderer Loaded')
def __init__(self, imageManager, themeManager, plugins):
def __init__(self, imageManager, themeManager):
"""
Initialise the renderer.
@ -69,7 +69,7 @@ class Renderer(object):
log.debug(u'Initialisation started')
self.themeManager = themeManager
self.imageManager = imageManager
self.plugins = plugins
self.plugins = PluginManager.get_instance().plugins
self.screens = ScreenList.get_instance()
self.service_theme = u''
self.theme_level = u''
@ -77,8 +77,7 @@ class Renderer(object):
self.theme_data = None
self.bg_frame = None
self.force_page = False
self.display = MainDisplay(None, self.imageManager, False, self,
self.plugins)
self.display = MainDisplay(None, self.imageManager, False, self)
self.display.setup()
def update_display(self):

View File

@ -35,7 +35,7 @@ from PyQt4 import QtCore, QtGui, QtWebKit, QtOpenGL
from PyQt4.phonon import Phonon
from openlp.core.lib import Receiver, build_html, ServiceItem, image_to_byte, \
translate
translate, PluginManager
from openlp.core.ui import HideMode, ScreenList
@ -48,14 +48,14 @@ class Display(QtGui.QGraphicsView):
"""
This is a general display screen class.
"""
def __init__(self, parent, live, controller, plugins):
def __init__(self, parent, live, controller):
if live:
QtGui.QGraphicsView.__init__(self)
else:
QtGui.QGraphicsView.__init__(self, parent)
self.isLive = live
self.controller = controller
self.plugins = plugins
self.plugins = PluginManager.get_instance().plugins
self.setViewport(QtOpenGL.QGLWidget())
def setup(self):
@ -77,7 +77,7 @@ class Display(QtGui.QGraphicsView):
screen[u'size'] = self.size()
serviceItem = ServiceItem()
self.webView.setHtml(build_html(serviceItem, screen,
None, None, None, self.plugins))
None, self.isLive, None))
self.webView.hide()
def resizeEvent(self, ev):
@ -88,8 +88,8 @@ class MainDisplay(Display):
"""
This is the display screen.
"""
def __init__(self, parent, imageManager, live, controller, plugins):
Display.__init__(self, parent, live, controller, plugins)
def __init__(self, parent, imageManager, live, controller):
Display.__init__(self, parent, live, controller)
self.imageManager = imageManager
self.screens = ScreenList.get_instance()
self.alertTab = None
@ -177,7 +177,7 @@ class MainDisplay(Display):
serviceItem = ServiceItem()
serviceItem.bg_image_bytes = image_to_byte(self.initialFrame)
self.webView.setHtml(build_html(serviceItem, self.screen,
self.alertTab, self.isLive, None, self.plugins))
self.alertTab, self.isLive, None, None, self.plugins))
self.__hideMouse()
# To display or not to display?
if not self.screen[u'primary']:
@ -367,7 +367,7 @@ class MainDisplay(Display):
else:
image_bytes = None
html = build_html(self.serviceItem, self.screen, self.alertTab,
self.isLive, background, self.plugins, image_bytes)
self.isLive, background, image_bytes, self.plugins)
log.debug(u'buildHtml - pre setHtml')
self.webView.setHtml(html)
log.debug(u'buildHtml - post setHtml')

View File

@ -633,8 +633,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
# warning cyclic dependency
# renderer needs to call ThemeManager and
# ThemeManager needs to call Renderer
self.renderer = Renderer(self.imageManager, self.themeManagerContents,
self.pluginManager.plugins)
self.renderer = Renderer(self.imageManager, self.themeManagerContents)
# Define the media Dock Manager
self.mediaDockManager = MediaDockManager(self.mediaToolBox)
log.info(u'Load Plugins')

View File

@ -39,6 +39,7 @@ class MediaState(object):
class MediaType(object):
"""
An enumeration of possibible Media Types
"""
Unused = 0
Audio = 1

View File

@ -143,7 +143,7 @@ class MediaController(object):
"""
Add css style sheets to htmlbuilder
"""
css = u'';
css = u''
for api in self.APIs.values():
css += api.get_media_display_css()
return css
@ -263,6 +263,7 @@ class MediaController(object):
controller.media_info.volume = controller.volumeSlider.value()
controller.media_info.file_info = QtCore.QFileInfo(file)
controller.media_info.is_background = isBackground
display = None
if controller.isLive:
if self.withLivePreview and controller.previewDisplay:
display = controller.previewDisplay
@ -284,6 +285,7 @@ class MediaController(object):
'Unsupported File')))
return False
# now start playing
display.frame.evaluateJavaScript(u'show_blank("black");')
if self.video_play([controller], False):
self.video_pause([controller])
self.video_seek([controller, [0]])
@ -358,6 +360,7 @@ class MediaController(object):
if not self.curDisplayMediaAPI[display].play(display):
return False
if status:
display.frame.evaluateJavaScript(u'show_blank("desktop");')
self.curDisplayMediaAPI[display].set_visible(display, True)
# Start Timer for ui updates
if not self.timer.isActive():
@ -382,6 +385,7 @@ class MediaController(object):
controller = msg[0]
for display in self.curDisplayMediaAPI.keys():
if display.controller == controller:
display.frame.evaluateJavaScript(u'show_blank("black");')
self.curDisplayMediaAPI[display].stop(display)
self.curDisplayMediaAPI[display].set_visible(display, False)
@ -440,7 +444,9 @@ class MediaController(object):
Blank the related video Widget
"""
isLive = msg[1]
hide_mode = msg[2]
if isLive:
Receiver.send_message(u'maindisplay_hide', hide_mode)
controller = self.parent.liveController
for display in self.curDisplayMediaAPI.keys():
if display.controller == controller:

View File

@ -34,7 +34,7 @@ from openlp.core.ui.media import MediaAPI, MediaState
log = logging.getLogger(__name__)
video_css = u"""
VIDEO_CSS = u"""
#video1 {
z-index:3;
}
@ -43,7 +43,7 @@ video_css = u"""
}
"""
video_js = u"""
VIDEO_JS = u"""
var video_timer = null;
var current_video = '1';
@ -139,20 +139,20 @@ video_js = u"""
}
"""
video_html = u"""
VIDEO_HTML = u"""
<video id="video1" class="size" style="visibility:hidden" autobuffer preload>
</video>
<video id="video2" class="size" style="visibility:hidden" autobuffer preload>
</video>
"""
flash_css = u"""
FLASH_CSS = u"""
#flash {
z-index:4;
}
"""
flash_js = u"""
FLASH_JS = u"""
function getFlashMovieObject(movieName)
{
if (window.document[movieName])
@ -211,7 +211,7 @@ flash_js = u"""
}
"""
flash_html = u"""
FLASH_HTML = u"""
<div id="flash" class="size" style="visibility:hidden"></div>
"""
@ -261,21 +261,21 @@ class WebkitAPI(MediaAPI):
"""
Add css style sheets to htmlbuilder
"""
return video_css + flash_css
return VIDEO_CSS + FLASH_CSS
def get_media_display_javascript(self):
"""
Add javascript functions to htmlbuilder
"""
return video_js + flash_js
return VIDEO_JS + FLASH_JS
def get_media_display_html(self):
"""
Add html code to htmlbuilder
"""
return video_html + flash_html
return VIDEO_HTML + FLASH_HTML
def setup(self, display):
display.webView.resize(display.size())

View File

@ -286,7 +286,7 @@ class SlideController(Controller):
self.slideLayout.setSpacing(0)
self.slideLayout.setMargin(0)
self.slideLayout.setObjectName(u'SlideLayout')
self.previewDisplay = Display(self, self.isLive, self, self.parent().pluginManager.plugins)
self.previewDisplay = Display(self, self.isLive, self)
self.previewDisplay.setGeometry(QtCore.QRect(0, 0, 300, 300))
self.slideLayout.insertWidget(0, self.previewDisplay)
self.previewDisplay.hide()
@ -404,7 +404,7 @@ class SlideController(Controller):
if self.display:
self.display.close()
self.display = MainDisplay(self, self.imageManager, self.isLive,
self, self.parent().pluginManager.plugins)
self)
self.display.alertTab = self.alertTab
self.display.setup()
if self.isLive:
@ -528,7 +528,6 @@ class SlideController(Controller):
if item.is_capable(ItemCapabilities.CanEdit) and item.from_plugin:
self.toolbar.makeWidgetsVisible(self.songEditList)
elif item.is_media():
#self.toolbar.setVisible(False)
self.mediabar.setVisible(True)
self.previousItem.setVisible(False)
self.nextItem.setVisible(False)