Head r911

This commit is contained in:
Jon Tibble 2010-07-03 01:24:17 +01:00
commit 989ffb9fc5
23 changed files with 125 additions and 162 deletions

View File

@ -443,7 +443,7 @@ class MediaManagerItem(QtGui.QWidget):
service_item = self.buildServiceItem() service_item = self.buildServiceItem()
if service_item: if service_item:
service_item.from_plugin = True service_item.from_plugin = True
self.parent.preview_controller.addServiceItem(service_item) self.parent.previewController.addServiceItem(service_item)
def onLiveClick(self): def onLiveClick(self):
""" """
@ -460,7 +460,7 @@ class MediaManagerItem(QtGui.QWidget):
service_item = self.buildServiceItem() service_item = self.buildServiceItem()
if service_item: if service_item:
service_item.from_plugin = True service_item.from_plugin = True
self.parent.live_controller.addServiceItem(service_item) self.parent.liveController.addServiceItem(service_item)
def onAddClick(self): def onAddClick(self):
""" """
@ -479,7 +479,7 @@ class MediaManagerItem(QtGui.QWidget):
service_item = self.buildServiceItem() service_item = self.buildServiceItem()
if service_item: if service_item:
service_item.from_plugin = False service_item.from_plugin = False
self.parent.service_manager.addServiceItem(service_item, self.parent.serviceManager.addServiceItem(service_item,
replace=self.remoteTriggered) replace=self.remoteTriggered)
else: else:
items = self.ListView.selectedIndexes() items = self.ListView.selectedIndexes()
@ -487,7 +487,7 @@ class MediaManagerItem(QtGui.QWidget):
service_item = self.buildServiceItem(item) service_item = self.buildServiceItem(item)
if service_item: if service_item:
service_item.from_plugin = False service_item.from_plugin = False
self.parent.service_manager.addServiceItem(service_item) self.parent.serviceManager.addServiceItem(service_item)
def onAddEditClick(self): def onAddEditClick(self):
""" """
@ -500,7 +500,7 @@ class MediaManagerItem(QtGui.QWidget):
'You must select one or more items')) 'You must select one or more items'))
else: else:
log.debug(self.PluginNameShort + u' Add requested') log.debug(self.PluginNameShort + u' Add requested')
service_item = self.parent.service_manager.getServiceItem() service_item = self.parent.serviceManager.getServiceItem()
if not service_item: if not service_item:
QtGui.QMessageBox.information(self, QtGui.QMessageBox.information(self,
translate('MediaManagerItem', 'No Service Item Selected'), translate('MediaManagerItem', 'No Service Item Selected'),
@ -508,7 +508,7 @@ class MediaManagerItem(QtGui.QWidget):
'You must select an existing service item to add to.')) 'You must select an existing service item to add to.'))
elif self.title.lower() == service_item.name.lower(): elif self.title.lower() == service_item.name.lower():
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.service_manager.addServiceItem(service_item, self.parent.serviceManager.addServiceItem(service_item,
replace=True) replace=True)
else: else:
#Turn off the remote edit update message indicator #Turn off the remote edit update message indicator

View File

@ -124,13 +124,14 @@ class Plugin(QtCore.QObject):
self.status = PluginStatus.Inactive self.status = PluginStatus.Inactive
# Set up logging # Set up logging
self.log = logging.getLogger(self.name) self.log = logging.getLogger(self.name)
self.preview_controller = plugin_helpers[u'preview'] self.previewController = plugin_helpers[u'preview']
self.live_controller = plugin_helpers[u'live'] self.liveController = plugin_helpers[u'live']
self.render_manager = plugin_helpers[u'render'] self.renderManager = plugin_helpers[u'render']
self.service_manager = plugin_helpers[u'service'] self.serviceManager = plugin_helpers[u'service']
self.settings_form = plugin_helpers[u'settings form'] self.settingsForm = plugin_helpers[u'settings form']
self.mediadock = plugin_helpers[u'toolbox'] self.mediadock = plugin_helpers[u'toolbox']
self.maindisplay = plugin_helpers[u'maindisplay'] self.displayManager = plugin_helpers[u'displaymanager']
self.pluginManager = plugin_helpers[u'pluginmanager']
QtCore.QObject.connect(Receiver.get_receiver(), QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'%s_add_service_item' % self.name), QtCore.SIGNAL(u'%s_add_service_item' % self.name),
self.process_add_service_event) self.process_add_service_event)
@ -175,29 +176,29 @@ class Plugin(QtCore.QObject):
""" """
pass pass
def add_import_menu_item(self, import_menu): def add_import_menu_item(self, importMenu):
""" """
Create a menu item and add it to the "Import" menu. Create a menu item and add it to the "Import" menu.
``import_menu`` ``importMenu``
The Import menu. The Import menu.
""" """
pass pass
def add_export_menu_item(self, export_menu): def add_export_menu_item(self, exportMenu):
""" """
Create a menu item and add it to the "Export" menu. Create a menu item and add it to the "Export" menu.
``export_menu`` ``exportMenu``
The Export menu The Export menu
""" """
pass pass
def add_tools_menu_item(self, tools_menu): def add_tools_menu_item(self, toolsMenu):
""" """
Create a menu item and add it to the "Tools" menu. Create a menu item and add it to the "Tools" menu.
``tools_menu`` ``toolsMenu``
The Tools menu The Tools menu
""" """
pass pass
@ -224,9 +225,9 @@ class Plugin(QtCore.QObject):
log.debug(u'process_add_service_event event called for plugin %s' % log.debug(u'process_add_service_event event called for plugin %s' %
self.name) self.name)
if replace: if replace:
self.media_item.onAddEditClick() self.mediaItem.onAddEditClick()
else: else:
self.media_item.onAddClick() self.mediaItem.onAddClick()
def about(self): def about(self):
""" """
@ -240,30 +241,33 @@ class Plugin(QtCore.QObject):
""" """
Called by the plugin Manager to initialise anything it needs. Called by the plugin Manager to initialise anything it needs.
""" """
if self.media_item: if self.mediaItem:
self.media_item.initialise() self.mediaItem.initialise()
self.insert_toolbox_item()
def finalise(self): def finalise(self):
""" """
Called by the plugin Manager to cleanup things. Called by the plugin Manager to cleanup things.
""" """
pass self.remove_toolbox_item()
def remove_toolbox_item(self): def remove_toolbox_item(self):
""" """
Called by the plugin to remove toolbar Called by the plugin to remove toolbar
""" """
self.mediadock.remove_dock(self.name) if self.mediaItem:
self.settings_form.removeTab(self.name) self.mediadock.remove_dock(self.name)
if self.settings_tab:
self.settingsForm.removeTab(self.name)
def insert_toolbox_item(self): def insert_toolbox_item(self):
""" """
Called by plugin to replace toolbar Called by plugin to replace toolbar
""" """
if self.media_item: if self.mediaItem:
self.mediadock.insert_dock(self.media_item, self.icon, self.weight) self.mediadock.insert_dock(self.mediaItem, self.icon, self.weight)
if self.settings_tab: if self.settings_tab:
self.settings_form.insertTab(self.settings_tab, self.weight) self.settingsForm.insertTab(self.settings_tab, self.weight)
def can_delete_theme(self, theme): def can_delete_theme(self, theme):
""" """

View File

@ -138,7 +138,7 @@ class PluginManager(object):
""" """
for plugin in self.plugins: for plugin in self.plugins:
if plugin.status is not PluginStatus.Disabled: if plugin.status is not PluginStatus.Disabled:
plugin.media_item = plugin.get_media_manager_item() plugin.mediaItem = plugin.get_media_manager_item()
def hook_settings_tabs(self, settingsform=None): def hook_settings_tabs(self, settingsform=None):
""" """

View File

@ -35,7 +35,6 @@ import uuid
from PyQt4 import QtGui from PyQt4 import QtGui
from openlp.core.lib import build_icon, resize_image from openlp.core.lib import build_icon, resize_image
from openlp.core.utils import AppLocation
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -74,7 +73,7 @@ class ServiceItem(object):
The plugin that this service item belongs to. The plugin that this service item belongs to.
""" """
if plugin: if plugin:
self.render_manager = plugin.render_manager self.render_manager = plugin.renderManager
self.name = plugin.name self.name = plugin.name
self.title = u'' self.title = u''
self.shortname = u'' self.shortname = u''
@ -93,7 +92,6 @@ class ServiceItem(object):
self.is_valid = True self.is_valid = True
self.cache = {} self.cache = {}
self.icon = None self.icon = None
self.serviceItemPath = AppLocation.get_section_data_path(u'serviceItems')
def add_capability(self, capability): def add_capability(self, capability):
""" """
@ -155,12 +153,9 @@ class ServiceItem(object):
del self.cache[len(self._display_frames)] del self.cache[len(self._display_frames)]
log.log(15, u'Formatting took %4s' % (time.time() - before)) log.log(15, u'Formatting took %4s' % (time.time() - before))
elif self.service_item_type == ServiceItemType.Image: elif self.service_item_type == ServiceItemType.Image:
for count, slide in enumerate(self._raw_frames): for slide in self._raw_frames:
slide[u'image'] = resize_image(slide[u'image'], slide[u'image'] = resize_image(slide[u'image'],
self.render_manager.width, self.render_manager.height) self.render_manager.width, self.render_manager.height)
path = os.path.join(self.serviceItemPath, self._uuid + unicode(count) + u'.png')
slide[u'image'].save(path)
slide[u'display'] = path
elif self.service_item_type == ServiceItemType.Command: elif self.service_item_type == ServiceItemType.Command:
pass pass
else: else:
@ -376,8 +371,7 @@ class ServiceItem(object):
if self.service_item_type == ServiceItemType.Text: if self.service_item_type == ServiceItemType.Text:
return self.render_individual(row) return self.render_individual(row)
else: else:
return {u'main':self._raw_frames[row][u'image'], return {u'main':self._raw_frames[row][u'image'], u'trans':None}
u'trans':None, u'display':self._raw_frames[row][u'display']}
def get_frame_title(self, row=0): def get_frame_title(self, row=0):
""" """

View File

@ -25,13 +25,13 @@
import logging import logging
import os import os
import time
from PyQt4 import QtCore, QtGui, QtWebKit from PyQt4 import QtCore, QtGui, QtWebKit
from PyQt4.phonon import Phonon from PyQt4.phonon import Phonon
from openlp.core.lib import Receiver, resize_image from openlp.core.lib import Receiver, resize_image
from openlp.core.ui import HideMode from openlp.core.ui import HideMode
from openlp.core.utils import AppLocation
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -104,11 +104,17 @@ class DisplayManager(QtGui.QWidget):
""" """
self.mainDisplay.addAlert(alertMessage, location) self.mainDisplay.addAlert(alertMessage, location)
def displayImage(self, path): def displayImageWithText(self, frame):
""" """
Handles the addition of a background Image to the displays Handles the addition of a background Image to the displays
""" """
self.mainDisplay.displayImage(path) self.mainDisplay.addImageWithText(frame)
def displayImage(self, frame):
"""
Handles the addition of a background Image to the displays
"""
self.mainDisplay.displayImage(frame)
def displayVideo(self, path): def displayVideo(self, path):
""" """
@ -212,6 +218,7 @@ class MainDisplay(DisplayWidget):
pass pass
self.screens = screens self.screens = screens
self.setupScene() self.setupScene()
self.setupVideo()
self.setupImage() self.setupImage()
self.setupText() self.setupText()
self.setupAlert() self.setupAlert()
@ -248,7 +255,7 @@ class MainDisplay(DisplayWidget):
(self.screen[u'size'].width() - splash_image.width()) / 2, (self.screen[u'size'].width() - splash_image.width()) / 2,
(self.screen[u'size'].height() - splash_image.height()) / 2, (self.screen[u'size'].height() - splash_image.height()) / 2,
splash_image) splash_image)
#self.display_image.setPixmap(QtGui.QPixmap.fromImage(self.InitialFrame)) self.displayImage(self.InitialFrame)
self.repaint() self.repaint()
#Build a Black screen #Build a Black screen
painter = QtGui.QPainter() painter = QtGui.QPainter()
@ -262,7 +269,7 @@ class MainDisplay(DisplayWidget):
self.transparent = QtGui.QPixmap( self.transparent = QtGui.QPixmap(
self.screen[u'size'].width(), self.screen[u'size'].height()) self.screen[u'size'].width(), self.screen[u'size'].height())
self.transparent.fill(QtCore.Qt.transparent) self.transparent.fill(QtCore.Qt.transparent)
# self.display_text.setPixmap(self.transparent) # self.displayText.setPixmap(self.transparent)
#self.frameView(self.transparent) #self.frameView(self.transparent)
# To display or not to display? # To display or not to display?
if not self.screen[u'primary']: if not self.screen[u'primary']:
@ -277,25 +284,30 @@ class MainDisplay(DisplayWidget):
self.scene.setSceneRect(0,0,self.size().width(), self.size().height()) self.scene.setSceneRect(0,0,self.size().width(), self.size().height())
self.setScene(self.scene) self.setScene(self.scene)
def setupImage(self): def setupVideo(self):
self.webView = QtWebKit.QWebView() self.webView = QtWebKit.QWebView()
self.page = self.webView.page() self.page = self.webView.page()
self.imageDisplay = self.page.mainFrame() self.videoDisplay = self.page.mainFrame()
self.imageDisplay.setScrollBarPolicy(QtCore.Qt.Vertical, QtCore.Qt.ScrollBarAlwaysOff) self.videoDisplay.setScrollBarPolicy(QtCore.Qt.Vertical, QtCore.Qt.ScrollBarAlwaysOff)
self.imageDisplay.setScrollBarPolicy(QtCore.Qt.Horizontal, QtCore.Qt.ScrollBarAlwaysOff) self.videoDisplay.setScrollBarPolicy(QtCore.Qt.Horizontal, QtCore.Qt.ScrollBarAlwaysOff)
self.proxy = QtGui.QGraphicsProxyWidget() self.proxy = QtGui.QGraphicsProxyWidget()
self.proxy.setWidget(self.webView) self.proxy.setWidget(self.webView)
self.proxy.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.FramelessWindowHint) self.proxy.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.FramelessWindowHint)
self.proxy.setZValue(2) self.proxy.setZValue(1)
self.scene.addItem(self.proxy) self.scene.addItem(self.proxy)
def setupImage(self):
self.imageDisplay = QtGui.QGraphicsPixmapItem()
self.imageDisplay.setZValue(2)
self.scene.addItem(self.imageDisplay)
def setupText(self): def setupText(self):
#self.display_text = QtGui.QGraphicsTextItem() #self.displayText = QtGui.QGraphicsTextItem()
self.display_text = QtGui.QGraphicsPixmapItem() self.displayText = QtGui.QGraphicsPixmapItem()
#self.display_text.setPos(0,0) #self.displayText.setPos(0,0)
#self.display_text.setTextWidth(self.size().width()) #self.displayText.setTextWidth(self.size().width())
self.display_text.setZValue(4) self.displayText.setZValue(4)
self.scene.addItem(self.display_text) self.scene.addItem(self.displayText)
def setupAlert(self): def setupAlert(self):
self.alertText = QtGui.QGraphicsTextItem() self.alertText = QtGui.QGraphicsTextItem()
@ -304,9 +316,9 @@ class MainDisplay(DisplayWidget):
self.scene.addItem(self.alertText) self.scene.addItem(self.alertText)
def setupBlank(self): def setupBlank(self):
self.display_blank = QtGui.QGraphicsPixmapItem() self.displayBlank = QtGui.QGraphicsPixmapItem()
self.display_blank.setZValue(10) self.displayBlank.setZValue(10)
self.scene.addItem(self.display_blank) self.scene.addItem(self.displayBlank)
def resetDisplay(self): def resetDisplay(self):
log.debug(u'resetDisplay') log.debug(u'resetDisplay')
@ -328,19 +340,19 @@ class MainDisplay(DisplayWidget):
Store the images so they can be replaced when required Store the images so they can be replaced when required
""" """
log.debug(u'hideDisplay mode = %d', mode) log.debug(u'hideDisplay mode = %d', mode)
#self.display_text.setPixmap(self.transparent) #self.displayText.setPixmap(self.transparent)
if mode == HideMode.Screen: if mode == HideMode.Screen:
#self.display_image.setPixmap(self.transparent) #self.display_image.setPixmap(self.transparent)
self.setVisible(False) self.setVisible(False)
elif mode == HideMode.Blank: elif mode == HideMode.Blank:
self.display_blank.setPixmap( self.displayBlank.setPixmap(
QtGui.QPixmap.fromImage(self.blankFrame)) QtGui.QPixmap.fromImage(self.blankFrame))
else: else:
if self.parent.renderManager.renderer.bg_frame: if self.parent.renderManager.renderer.bg_frame:
self.display_blank.setPixmap(QtGui.QPixmap.fromImage( self.displayBlank.setPixmap(QtGui.QPixmap.fromImage(
self.parent.renderManager.renderer.bg_frame)) self.parent.renderManager.renderer.bg_frame))
else: else:
self.display_blank.setPixmap( self.displayBlank.setPixmap(
QtGui.QPixmap.fromImage(self.blankFrame)) QtGui.QPixmap.fromImage(self.blankFrame))
def showDisplay(self, message=u''): def showDisplay(self, message=u''):
@ -350,7 +362,7 @@ class MainDisplay(DisplayWidget):
Make the stored images None to release memory. Make the stored images None to release memory.
""" """
log.debug(u'showDisplay') log.debug(u'showDisplay')
self.display_blank.setPixmap(self.transparent) self.displayBlank.setPixmap(self.transparent)
#Trigger actions when display is active again #Trigger actions when display is active again
Receiver.send_message(u'maindisplay_active') Receiver.send_message(u'maindisplay_active')
@ -358,7 +370,8 @@ class MainDisplay(DisplayWidget):
log.debug(u'addImageWithText') log.debug(u'addImageWithText')
frame = resize_image( frame = resize_image(
frame, self.screen[u'size'].width(), self.screen[u'size'].height()) frame, self.screen[u'size'].width(), self.screen[u'size'].height())
self.display_image.setPixmap(QtGui.QPixmap.fromImage(frame)) self.imageDisplay.setPixmap(QtGui.QPixmap.fromImage(frame))
self.videoDisplay.setHtml(u'<html></html>')
def addAlert(self, message, location): def addAlert(self, message, location):
""" """
@ -378,14 +391,18 @@ class MainDisplay(DisplayWidget):
self.alertText.setPos(0,self.size().height() - 76) self.alertText.setPos(0,self.size().height() - 76)
self.alertText.setHtml(message) self.alertText.setHtml(message)
def displayImage(self, path): def displayImage(self, frame):
""" """
Places the Image passed on the display screen Places the Image passed on the display screen
``path`` ``frame``
The path to the image to be displayed The image to be displayed
""" """
log.debug(u'adddisplayImage') log.debug(u'adddisplayImage')
self.imageDisplay.setHtml(HTMLIMAGE % path) if isinstance(frame, QtGui.QImage):
self.imageDisplay.setPixmap(QtGui.QPixmap.fromImage(frame))
else:
self.imageDisplay.setPixmap(frame)
self.videoDisplay.setHtml(u'<html></html>')
def displayVideo(self, path): def displayVideo(self, path):
""" """
@ -394,7 +411,8 @@ class MainDisplay(DisplayWidget):
The path to the image to be displayed The path to the image to be displayed
""" """
log.debug(u'adddisplayVideo') log.debug(u'adddisplayVideo')
self.imageDisplay.setHtml(HTMLVIDEO % self.displayImage(self.transparent)
self.videoDisplay.setHtml(HTMLVIDEO %
(path, self.screen[u'size'].width(), self.screen[u'size'].height())) (path, self.screen[u'size'].width(), self.screen[u'size'].height()))
def frameView(self, frame, transition=False): def frameView(self, frame, transition=False):
@ -409,42 +427,29 @@ class MainDisplay(DisplayWidget):
log.debug(u'frameView') log.debug(u'frameView')
if transition: if transition:
if self.frame is not None: if self.frame is not None:
self.display_text.setPixmap( self.displayText.setPixmap(
QtGui.QPixmap.fromImage(self.frame)) QtGui.QPixmap.fromImage(self.frame))
self.update() self.repaint()
Receiver.send_message(u'openlp_process_events')
time.sleep(0.1)
self.frame = None self.frame = None
if frame[u'trans'] is not None: if frame[u'trans'] is not None:
self.display_text.setPixmap( self.displayText.setPixmap(
QtGui.QPixmap.fromImage(frame[u'trans'])) QtGui.QPixmap.fromImage(frame[u'trans']))
self.repaint() self.repaint()
Receiver.send_message(u'openlp_process_events')
time.sleep(0.1)
self.frame = frame[u'trans'] self.frame = frame[u'trans']
self.display_text.setPixmap( self.displayText.setPixmap(
QtGui.QPixmap.fromImage(frame[u'main'])) QtGui.QPixmap.fromImage(frame[u'main']))
self.display_frame = frame[u'main']
self.repaint()
else: else:
if isinstance(frame, QtGui.QPixmap): if isinstance(frame, QtGui.QPixmap):
self.display_text.setPixmap(frame) self.displayText.setPixmap(frame)
else: else:
self.display_text.setPixmap(QtGui.QPixmap.fromImage(frame)) self.displayText.setPixmap(QtGui.QPixmap.fromImage(frame))
self.display_frame = frame
if not self.isVisible() and self.screens.display: if not self.isVisible() and self.screens.display:
self.setVisible(True) self.setVisible(True)
def closeEvent(self, event):
"""
Shutting down cleans up background files
"""
serviceItemPath = AppLocation.get_section_data_path(u'serviceItems')
for file in os.listdir(serviceItemPath):
file_path = os.path.join(serviceItemPath, file)
try:
if os.path.isfile(file_path):
os.remove(file_path)
except OSError:
log.exception(u'Failed to clean up servicePath')
class VideoDisplay(Phonon.VideoWidget): class VideoDisplay(Phonon.VideoWidget):
""" """
This is the form that is used to display videos on the projector. This is the form that is used to display videos on the projector.

View File

@ -580,7 +580,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.plugin_helpers[u'service'] = self.ServiceManagerContents self.plugin_helpers[u'service'] = self.ServiceManagerContents
self.plugin_helpers[u'settings form'] = self.settingsForm self.plugin_helpers[u'settings form'] = self.settingsForm
self.plugin_helpers[u'toolbox'] = self.mediaDockManager self.plugin_helpers[u'toolbox'] = self.mediaDockManager
self.plugin_helpers[u'maindisplay'] = self.displayManager.mainDisplay self.plugin_helpers[u'displaymanager'] = self.displayManager
self.plugin_helpers[u'pluginmanager'] = self.plugin_manager
self.plugin_manager.find_plugins(pluginpath, self.plugin_helpers) self.plugin_manager.find_plugins(pluginpath, self.plugin_helpers)
# hook methods have to happen after find_plugins. Find plugins needs # hook methods have to happen after find_plugins. Find plugins needs
# the controllers hence the hooks have moved from setupUI() to here # the controllers hence the hooks have moved from setupUI() to here

View File

@ -785,7 +785,7 @@ class SlideController(QtGui.QWidget):
if self.serviceItem.is_text(): if self.serviceItem.is_text():
self.mainDisplay.frameView(frame, True) self.mainDisplay.frameView(frame, True)
else: else:
self.displayManager.displayImage(frame[u'display']) self.displayManager.displayImage(frame[u'main'])
self.selectedRow = row self.selectedRow = row
Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix, Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix,
row) row)

View File

@ -73,7 +73,7 @@ class alertsPlugin(Plugin):
self.toolsAlertItem.setStatusTip( self.toolsAlertItem.setStatusTip(
translate('AlertsPlugin', 'Show an alert message')) translate('AlertsPlugin', 'Show an alert message'))
self.toolsAlertItem.setShortcut(u'F7') self.toolsAlertItem.setShortcut(u'F7')
self.service_manager.parent.ToolsMenu.addAction(self.toolsAlertItem) self.serviceManager.parent.ToolsMenu.addAction(self.toolsAlertItem)
QtCore.QObject.connect(self.toolsAlertItem, QtCore.QObject.connect(self.toolsAlertItem,
QtCore.SIGNAL(u'triggered()'), self.onAlertsTrigger) QtCore.SIGNAL(u'triggered()'), self.onAlertsTrigger)
self.toolsAlertItem.setVisible(False) self.toolsAlertItem.setVisible(False)
@ -85,8 +85,8 @@ class alertsPlugin(Plugin):
def finalise(self): def finalise(self):
log.info(u'Plugin Finalise') log.info(u'Plugin Finalise')
Plugin.finalise(self)
self.toolsAlertItem.setVisible(False) self.toolsAlertItem.setVisible(False)
#stop any events being processed
def togglealertsState(self): def togglealertsState(self):
self.alertsActive = not self.alertsActive self.alertsActive = not self.alertsActive

View File

@ -48,14 +48,12 @@ class BiblePlugin(Plugin):
if self.manager is None: if self.manager is None:
self.manager = BibleManager(self) self.manager = BibleManager(self)
Plugin.initialise(self) Plugin.initialise(self)
self.insert_toolbox_item()
self.ImportBibleItem.setVisible(True) self.ImportBibleItem.setVisible(True)
self.ExportBibleItem.setVisible(True) self.ExportBibleItem.setVisible(True)
def finalise(self): def finalise(self):
log.info(u'Plugin Finalise') log.info(u'Plugin Finalise')
Plugin.finalise(self) Plugin.finalise(self)
self.remove_toolbox_item()
self.ImportBibleItem.setVisible(False) self.ImportBibleItem.setVisible(False)
self.ExportBibleItem.setVisible(False) self.ExportBibleItem.setVisible(False)

View File

@ -60,15 +60,6 @@ class CustomPlugin(Plugin):
# Create the CustomManagerItem object # Create the CustomManagerItem object
return CustomMediaItem(self, self.icon, self.name) return CustomMediaItem(self, self.icon, self.name)
def initialise(self):
log.info(u'Plugin Initialising')
Plugin.initialise(self)
self.insert_toolbox_item()
def finalise(self):
log.info(u'Plugin Finalise')
self.remove_toolbox_item()
def about(self): def about(self):
about_text = translate('CustomPlugin', about_text = translate('CustomPlugin',
'<b>Custom Plugin</b><br>This plugin ' '<b>Custom Plugin</b><br>This plugin '

View File

@ -141,7 +141,7 @@ class CustomMediaItem(MediaManagerItem):
id_list = [(item.data(QtCore.Qt.UserRole)).toInt()[0] id_list = [(item.data(QtCore.Qt.UserRole)).toInt()[0]
for item in self.ListView.selectedIndexes()] for item in self.ListView.selectedIndexes()]
for id in id_list: for id in id_list:
self.parent.custommanager.delete_custom(id) self.parent.custommanager.delete_object(CustomSlide, id)
for row in row_list: for row in row_list:
self.ListView.takeItem(row) self.ListView.takeItem(row)

View File

@ -39,15 +39,6 @@ class ImagePlugin(Plugin):
self.icon = build_icon(u':/plugins/plugin_images.png') self.icon = build_icon(u':/plugins/plugin_images.png')
self.status = PluginStatus.Active self.status = PluginStatus.Active
def initialise(self):
log.info(u'Plugin Initialising')
Plugin.initialise(self)
self.insert_toolbox_item()
def finalise(self):
log.info(u'Plugin Finalise')
self.remove_toolbox_item()
def get_settings_tab(self): def get_settings_tab(self):
return ImageTab(self.name) return ImageTab(self.name)

View File

@ -173,11 +173,12 @@ class ImageMediaItem(MediaManagerItem):
if check_item_selected(self.ListView, if check_item_selected(self.ListView,
translate('ImagePlugin.MediaItem', translate('ImagePlugin.MediaItem',
'You must select an item to process.')): 'You must select an item to process.')):
item = self.buildServiceItem() items = self.ListView.selectedIndexes()
item.render() for item in items:
self.parent.live_controller.displayManager. \ bitem = self.ListView.item(item.row())
displayImage(item.get_rendered_frame(0)[u'display']) filename = unicode(bitem.data(QtCore.Qt.UserRole).toString())
frame = QtGui.QImage(unicode(filename))
self.parent.displayManager.displayImageWithText(frame)
def onPreviewClick(self): def onPreviewClick(self):
MediaManagerItem.onPreviewClick(self) MediaManagerItem.onPreviewClick(self)

View File

@ -101,22 +101,13 @@ class MediaMediaItem(MediaManagerItem):
self.PageLayout.addWidget(self.ImageWidget) self.PageLayout.addWidget(self.ImageWidget)
def onReplaceClick(self): def onReplaceClick(self):
# if self.background:
# self.background = False
# Receiver.send_message(u'videodisplay_stop')
# else:
# self.background = True
if check_item_selected(self.ListView, if check_item_selected(self.ListView,
translate('ImagePlugin.MediaItem', translate('ImagePlugin.MediaItem',
'You must select an item to process.')): 'You must select an item to process.')):
item = self.ListView.currentItem() item = self.ListView.currentItem()
filename = unicode(item.data(QtCore.Qt.UserRole).toString()) filename = unicode(item.data(QtCore.Qt.UserRole).toString())
self.parent.live_controller.displayManager.displayVideo(filename) self.parent.displayManager.displayVideo(filename)
# items = self.ListView.selectedIndexes()
# for item in items:
# bitem = self.ListView.item(item.row())
# filename = unicode(bitem.data(QtCore.Qt.UserRole).toString())
# Receiver.send_message(u'videodisplay_background', filename)
def generateSlideData(self, service_item, item=None): def generateSlideData(self, service_item, item=None):
if item is None: if item is None:

View File

@ -63,19 +63,10 @@ class MediaPlugin(Plugin):
if len(value) == 2: if len(value) == 2:
if list.find(value[1]) == -1: if list.find(value[1]) == -1:
list += u'*.%s ' % value[1] list += u'*.%s ' % value[1]
self.service_manager.supportedSuffixes(value[1]) self.serviceManager.supportedSuffixes(value[1])
type = u'' type = u''
return list, type return list, type
def initialise(self):
log.info(u'Plugin Initialising')
Plugin.initialise(self)
self.insert_toolbox_item()
def finalise(self):
log.info(u'Plugin Finalise')
self.remove_toolbox_item()
def get_media_manager_item(self): def get_media_manager_item(self):
# Create the MediaManagerItem object # Create the MediaManagerItem object
return MediaMediaItem(self, self.icon, self.name) return MediaMediaItem(self, self.icon, self.name)

View File

@ -77,7 +77,7 @@ class PresentationMediaItem(MediaManagerItem):
for type in types: for type in types:
if fileType.find(type) == -1: if fileType.find(type) == -1:
fileType += u'*%s ' % type fileType += u'*%s ' % type
self.parent.service_manager.supportedSuffixes(type) self.parent.serviceManager.supportedSuffixes(type)
self.OnNewFileMasks = translate('PresentationPlugin.MediaItem', self.OnNewFileMasks = translate('PresentationPlugin.MediaItem',
'Presentations (%s)' % fileType) 'Presentations (%s)' % fileType)

View File

@ -27,7 +27,7 @@ import os
import logging import logging
if os.name == u'nt': if os.name == u'nt':
from ctypes import * from ctypes import cdll
from ctypes.wintypes import RECT from ctypes.wintypes import RECT
from presentationcontroller import PresentationController, PresentationDocument from presentationcontroller import PresentationController, PresentationDocument
@ -79,8 +79,9 @@ class PptviewController(PresentationController):
if self.process: if self.process:
return return
log.debug(u'start PPTView') log.debug(u'start PPTView')
self.process = cdll.LoadLibrary( dllpath = os.path.join(self.plugin.pluginManager.basepath,
r'openlp\plugins\presentations\lib\pptviewlib\pptviewlib.dll') u'presentations', u'lib', u'pptviewlib', u'pptviewlib.dll')
self.process = cdll.LoadLibrary(dllpath)
#self.process.SetDebug(1) #self.process.SetDebug(1)
def kill(self): def kill(self):
@ -118,7 +119,7 @@ class PptviewDocument(PresentationDocument):
log.debug(u'LoadPresentation') log.debug(u'LoadPresentation')
#if self.pptid >= 0: #if self.pptid >= 0:
# self.close_presentation() # self.close_presentation()
rendermanager = self.controller.plugin.render_manager rendermanager = self.controller.plugin.renderManager
rect = rendermanager.screens.current[u'size'] rect = rendermanager.screens.current[u'size']
rect = RECT(rect.x(), rect.y(), rect.right(), rect.bottom()) rect = RECT(rect.x(), rect.y(), rect.right(), rect.bottom())
filepath = str(self.filepath.replace(u'/', u'\\')) filepath = str(self.filepath.replace(u'/', u'\\'))

View File

@ -64,7 +64,7 @@ class PresentationPlugin(Plugin):
controller = self.controllers[key] controller = self.controllers[key]
if controller.enabled: if controller.enabled:
controller.kill() controller.kill()
self.remove_toolbox_item() Plugin.finalise(self)
def get_media_manager_item(self): def get_media_manager_item(self):
""" """

View File

@ -56,7 +56,7 @@ class RemotesPlugin(Plugin):
Tidy up and close down the http server Tidy up and close down the http server
""" """
log.debug(u'finalise') log.debug(u'finalise')
self.remove_toolbox_item() Plugin.finalise(self)
if self.server: if self.server:
self.server.close() self.server.close()

View File

@ -88,7 +88,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
QtCore.SIGNAL(u'activated(int)'), self.onThemeComboChanged) QtCore.SIGNAL(u'activated(int)'), self.onThemeComboChanged)
QtCore.QObject.connect(self.ThemeAddButton, QtCore.QObject.connect(self.ThemeAddButton,
QtCore.SIGNAL(u'clicked()'), QtCore.SIGNAL(u'clicked()'),
self.parent.parent.render_manager.theme_manager.onAddTheme) self.parent.parent.renderManager.theme_manager.onAddTheme)
QtCore.QObject.connect(self.MaintenanceButton, QtCore.QObject.connect(self.MaintenanceButton,
QtCore.SIGNAL(u'clicked()'), self.onMaintenanceButtonClicked) QtCore.SIGNAL(u'clicked()'), self.onMaintenanceButtonClicked)
QtCore.QObject.connect(Receiver.get_receiver(), QtCore.QObject.connect(Receiver.get_receiver(),

View File

@ -166,13 +166,13 @@ class SongMediaItem(MediaManagerItem):
if search_type == 0: if search_type == 0:
log.debug(u'Titles Search') log.debug(u'Titles Search')
search_results = self.parent.manager.get_all_objects_filtered(Song, search_results = self.parent.manager.get_all_objects_filtered(Song,
Song.search_title.like(u'%' + keywords + u'%'), Song.search_title.like(u'%' + search_keywords + u'%'),
Song.search_title.asc()) Song.search_title.asc())
self.displayResultsSong(search_results) self.displayResultsSong(search_results)
elif search_type == 1: elif search_type == 1:
log.debug(u'Lyrics Search') log.debug(u'Lyrics Search')
search_results = self.parent.manager.get_all_objects_filtered(Song, search_results = self.parent.manager.get_all_objects_filtered(Song,
Song.search_lyrics.like(u'%' + keywords + u'%'), Song.search_lyrics.like(u'%' + search_keywords + u'%'),
Song.search_lyrics.asc()) Song.search_lyrics.asc())
self.displayResultsSong(search_results) self.displayResultsSong(search_results)
elif search_type == 2: elif search_type == 2:
@ -371,7 +371,8 @@ class SongMediaItem(MediaManagerItem):
author_list = author_list + unicode(author.display_name) author_list = author_list + unicode(author.display_name)
author_audit.append(unicode(author.display_name)) author_audit.append(unicode(author.display_name))
if song.ccli_number is None or len(song.ccli_number) == 0: if song.ccli_number is None or len(song.ccli_number) == 0:
ccli = self.parent.settings_form.GeneralTab.CCLINumber ccli = QtCore.QSettings().value(u'general/ccli number',
QtCore.QVariant(u'')).toString()
else: else:
ccli = unicode(song.ccli_number) ccli = unicode(song.ccli_number)
raw_footer.append(song.title) raw_footer.append(song.title)

View File

@ -24,8 +24,8 @@
############################################################################### ###############################################################################
import logging import logging
import sys #import sys
import os #import os
from types import ListType from types import ListType
from xml.etree.ElementTree import ElementTree, XML from xml.etree.ElementTree import ElementTree, XML

View File

@ -67,15 +67,9 @@ class SongsPlugin(Plugin):
def initialise(self): def initialise(self):
log.info(u'Songs Initialising') log.info(u'Songs Initialising')
Plugin.initialise(self) Plugin.initialise(self)
self.insert_toolbox_item() self.mediaItem.displayResultsSong(
self.media_item.displayResultsSong(
self.manager.get_all_objects(Song, Song.title)) self.manager.get_all_objects(Song, Song.title))
def finalise(self):
log.info(u'Plugin Finalise')
Plugin.finalise(self)
self.remove_toolbox_item()
def get_media_manager_item(self): def get_media_manager_item(self):
""" """
Create the MediaManagerItem object, which is displaed in the Create the MediaManagerItem object, which is displaed in the