Lots for fixes:

- General Tab now saves and retrieves
- Alert Dialogs now alerts
- Renderer - More fixes
- SlideController looks better.
- Removal of poked in Managers all accessed via Parent.
This commit is contained in:
Tim Bentley 2009-06-01 18:50:37 +01:00
parent e019e0f5d8
commit 30154f2127
14 changed files with 227 additions and 146 deletions

View File

@ -29,7 +29,7 @@ from copy import copy
class Renderer: class Renderer:
global log global log
log=logging.getLogger(u'Renderer') log = logging.getLogger(u'Renderer')
log.info(u'Renderer Loaded') log.info(u'Renderer Loaded')
"""All the functions for rendering a set of words onto a Device Context """All the functions for rendering a set of words onto a Device Context
@ -44,7 +44,7 @@ class Renderer:
def __init__(self): def __init__(self):
self._rect = None self._rect = None
self._debug = 0 self._debug = 0
self.words = None #self.words = None
self._right_margin = 64 # the amount of right indent self._right_margin = 64 # the amount of right indent
self._shadow_offset = 5 self._shadow_offset = 5
self._outline_offset = 2 self._outline_offset = 2
@ -103,7 +103,7 @@ class Renderer:
if self._bg_image_filename is not None: if self._bg_image_filename is not None:
self.scale_bg_image() self.scale_bg_image()
if self._bg_frame is None: if self._bg_frame is None:
self._render_background() self._generate_background_frame()
def format_slide(self, words, footer): def format_slide(self, words, footer):
""" """
@ -111,30 +111,57 @@ class Renderer:
""" """
log.debug(u'format_slide %s', words) log.debug(u'format_slide %s', words)
verses = [] verses = []
words=words.replace("\r\n", "\n") words = words.replace("\r\n", "\n")
verses_text = words.split(u'\n\n') verses_text = words.split(u'\n\n')
text = []
for verse in verses_text: for verse in verses_text:
lines = verse.split(u'\n') lines = verse.split(u'\n')
verses.append(self.split_set_of_lines(lines, footer)[0]) for line in lines:
self.words = verses text.append(line)
verses_text = []
for v in verses:
verses_text.append(u'\n'.join(v).lstrip()) # remove first \n
return verses_text
def render_screen(self, screennum): print self._split_set_of_lines(text, False)
log.debug(u'render screen\n %s %s ', screennum, self.words[screennum]) #verses_text = []
t = 0.0 #for verse in verses:
words = self.words[screennum] # for line in verse:
retval = self._render_lines(words) # verses_text.append(line)
return retval print "text ", text
return text
# def render_screen(self, screennum):
# log.debug(u'render screen\n %s %s ', screennum, self.words[screennum])
# t = 0.0
# words = self.words[screennum]
# retval = self._render_lines(words)
# return retval
def set_text_rectangle(self, rect_main, rect_footer): def set_text_rectangle(self, rect_main, rect_footer):
""" Sets the rectangle within which text should be rendered""" """ Sets the rectangle within which text should be rendered"""
self._rect = rect_main self._rect = rect_main
self._rect_footer = rect_footer self._rect_footer = rect_footer
def _render_background(self): def generate_frame_from_lines(self, lines, footer_lines=None):
"""
render a set of lines according to the theme, return bounding box
"""
log.debug(u'generate_frame_from_lines - Start')
bbox = self._render_lines_unaligned(lines, False)
if footer_lines is not None:
bbox1 = self._render_lines_unaligned(footer_lines, True)
# reset the frame. first time do not worrk about what you paint on.
self._frame = QtGui.QPixmap(self._bg_frame)
x, y = self._correctAlignment(self._rect, bbox)
bbox = self._render_lines_unaligned(lines, False, (x, y))
if footer_lines is not None:
bbox = self._render_lines_unaligned(footer_lines, True, (self._rect_footer.left(), self._rect_footer.top()) )
log.debug(u'generate_frame_from_lines - Finish')
return self._frame
def _generate_background_frame(self):
""" """
Generate a background frame to the same size as the frame to be used Generate a background frame to the same size as the frame to be used
Results cached for performance reasons. Results cached for performance reasons.
@ -150,14 +177,14 @@ class Renderer:
elif self._theme.background_type == u'gradient' : # gradient elif self._theme.background_type == u'gradient' : # gradient
gradient = None gradient = None
if self._theme.background_direction == u'horizontal': if self._theme.background_direction == u'horizontal':
w = int(self._frame.width())/2 w = int(self._frame.width()) / 2
gradient = QtGui.QLinearGradient(w, 0, w, self._frame.height()) # vertical gradient = QtGui.QLinearGradient(w, 0, w, self._frame.height()) # vertical
elif self._theme.background_direction == u'vertical': elif self._theme.background_direction == u'vertical':
h = int(self._frame.height())/2 h = int(self._frame.height()) / 2
gradient = QtGui.QLinearGradient(0, h, self._frame.width(), h) # Horizontal gradient = QtGui.QLinearGradient(0, h, self._frame.width(), h) # Horizontal
else: else:
w = int(self._frame.width())/2 w = int(self._frame.width()) / 2
h = int(self._frame.height())/2 h = int(self._frame.height()) / 2
gradient = QtGui.QRadialGradient(w, h, w) # Circular gradient = QtGui.QRadialGradient(w, h, w) # Circular
gradient.setColorAt(0, QtGui.QColor(self._theme.background_startColor)) gradient.setColorAt(0, QtGui.QColor(self._theme.background_startColor))
@ -189,9 +216,9 @@ class Renderer:
print "background time", bef, aft, aft-bef print "background time", bef, aft, aft-bef
log.debug(u'render background finish') log.debug(u'render background finish')
def split_set_of_lines(self, lines, footer): def _split_set_of_lines(self, lines, footer):
"""
"""Given a list of lines, decide how to split them best if they don't all fit on the screen Given a list of lines, decide how to split them best if they don't all fit on the screen
- this is done by splitting at 1/2, 1/3 or 1/4 of the set - this is done by splitting at 1/2, 1/3 or 1/4 of the set
If it doesn't fit, even at this size, just split at each opportunity If it doesn't fit, even at this size, just split at each opportunity
@ -200,8 +227,9 @@ class Renderer:
""" """
log.debug(u'Split set of lines') log.debug(u'Split set of lines')
bboxes = [] bboxes = []
print "Lines ", lines
for line in lines: for line in lines:
bboxes.append(self._render_single_line(line, footer)) bboxes.append(self._render_and_wrap_single_line(line, footer))
#print line, bboxes #print line, bboxes
numlines = len(lines) numlines = len(lines)
@ -211,6 +239,8 @@ class Renderer:
good = 1 good = 1
startline = 0 startline = 0
endline = startline + ratio endline = startline + ratio
#print "A ", numlines , startline, endline
#print "B ", bboxes
while (endline <= numlines): while (endline <= numlines):
by = 0 by = 0
for (x, y) in bboxes[startline:endline]: for (x, y) in bboxes[startline:endline]:
@ -224,7 +254,7 @@ class Renderer:
endline = startline+ratio endline = startline+ratio
# if good == 1: # if good == 1:
# break # break
#print "---------" # print "---------"
retval = [] retval = []
numlines_per_page = ratio numlines_per_page = ratio
@ -252,6 +282,7 @@ class Renderer:
endline = startline # gets incremented below endline = startline # gets incremented below
by = 0 by = 0
endline += 1 endline += 1
print "retval ", retval
return retval return retval
def _correctAlignment(self, rect, bbox): def _correctAlignment(self, rect, bbox):
@ -259,32 +290,13 @@ class Renderer:
if int(self._theme.display_verticalAlign) == 0: # top align if int(self._theme.display_verticalAlign) == 0: # top align
y = rect.top() y = rect.top()
elif int(self._theme.display_verticalAlign) == 2: # bottom align elif int(self._theme.display_verticalAlign) == 2: # bottom align
y = rect.bottom()-bbox.height() y = rect.bottom() - bbox.height()
elif int(self._theme.display_verticalAlign) == 1: # centre align elif int(self._theme.display_verticalAlign) == 1: # centre align
y = rect.top()+(rect.height()-bbox.height())/2 y = rect.top() + (rect.height() - bbox.height()) / 2
else: else:
assert(0, u'Invalid value for theme.VerticalAlign:%s' % self._theme.display_verticalAlign) assert(0 , u'Invalid value for theme.VerticalAlign:%s' % self._theme.display_verticalAlign)
return x, y return x, y
def render_lines(self, lines, footer_lines=None):
"""render a set of lines according to the theme, return bounding box"""
log.debug(u'render_lines - Start')
bbox = self._render_lines_unaligned(lines, False) # Main font
if footer_lines is not None:
bbox1 = self._render_lines_unaligned(footer_lines, True) # Footer Font
self._frame = QtGui.QPixmap(self._bg_frame)
x, y = self._correctAlignment(self._rect, bbox)
bbox = self._render_lines_unaligned(lines, False, (x, y))
if footer_lines is not None:
bbox = self._render_lines_unaligned(footer_lines, True, (self._rect_footer.left(), self._rect_footer.top()) )
log.debug(u'render_lines- Finish')
return self._frame
def _render_lines_unaligned(self, lines, footer, tlcorner=(0,0)): def _render_lines_unaligned(self, lines, footer, tlcorner=(0,0)):
""" """
Given a list of lines to render, render each one in turn Given a list of lines to render, render each one in turn
@ -298,12 +310,14 @@ class Renderer:
x, y = tlcorner x, y = tlcorner
brx = x brx = x
bry = y bry = y
print "A ", bry
for line in lines: for line in lines:
# render after current bottom, but at original left edge # render after current bottom, but at original left edge
# keep track of right edge to see which is biggest # keep track of right edge to see which is biggest
(thisx, bry) = self._render_single_line(line, footer, (x , bry)) (thisx, bry) = self._render_and_wrap_single_line(line, footer, (x , bry))
if (thisx > brx): if (thisx > brx):
brx = thisx brx = thisx
print "B ", bry
retval = QtCore.QRect(x, y,brx-x, bry-y) retval = QtCore.QRect(x, y,brx-x, bry-y)
if self._debug: if self._debug:
painter = QtGui.QPainter() painter = QtGui.QPainter()
@ -314,7 +328,7 @@ class Renderer:
log.debug(u'render lines unaligned Finish') log.debug(u'render lines unaligned Finish')
return retval return retval
def _render_single_line(self, line, footer, tlcorner=(0,0)): def _render_and_wrap_single_line(self, line, footer, tlcorner=(0,0)):
""" """
Render a single line of words onto the DC, top left corner Render a single line of words onto the DC, top left corner
specified. specified.
@ -335,10 +349,10 @@ class Renderer:
lines = [] lines = []
maxx = self._rect.width(); maxx = self._rect.width();
maxy = self._rect.height(); maxy = self._rect.height();
while (len(words)>0): while (len(words) > 0):
w , h = self._get_extent_and_render(thisline, footer) w , h = self._get_extent_and_render(thisline, footer)
rhs = w + x rhs = w + x
if rhs < maxx-self._right_margin: if rhs < maxx - self._right_margin:
lines.append(thisline) lines.append(thisline)
words = words[lastword:] words = words[lastword:]
thisline = ' '.join(words) thisline = ' '.join(words)
@ -373,10 +387,10 @@ class Renderer:
x = rightextent - w x = rightextent - w
elif align == 1: # right align elif align == 1: # right align
rightextent = maxx rightextent = maxx
x = maxx-w x = maxx - w
elif align == 2: # centre elif align == 2: # centre
x = (maxx-w) / 2; x = (maxx - w) / 2;
rightextent = x+w rightextent = x + w
# now draw the text, and any outlines/shadows # now draw the text, and any outlines/shadows
if self._theme.display_shadow: if self._theme.display_shadow:
self._get_extent_and_render(line, footer,tlcorner=(x+self._shadow_offset,y+self._shadow_offset), self._get_extent_and_render(line, footer,tlcorner=(x+self._shadow_offset,y+self._shadow_offset),
@ -441,7 +455,6 @@ class Renderer:
QtGui.QFont.Normal, # weight QtGui.QFont.Normal, # weight
0)# italic 0)# italic
font.setPixelSize(int(self._theme.font_main_proportion)) font.setPixelSize(int(self._theme.font_main_proportion))
#log.debug(u'Font details %s %s %s %d', self._theme.font_main_name, self._theme.font_main_proportion, font.family(), font.pointSize())
painter.setFont(font) painter.setFont(font)
if color == None: if color == None:
if footer: if footer:
@ -454,9 +467,9 @@ class Renderer:
metrics=QtGui.QFontMetrics(font) metrics=QtGui.QFontMetrics(font)
# xxx some fudges to make it exactly like wx! Take 'em out later # xxx some fudges to make it exactly like wx! Take 'em out later
w = metrics.width(line) w = metrics.width(line)
h = metrics.height()-2 h = metrics.height() - 2
if draw: if draw:
painter.drawText(x, y+metrics.height()-metrics.descent()-1, line) painter.drawText(x, y + metrics.ascent() , line)
painter.end() painter.end()
return (w, h) return (w, h)

View File

@ -136,10 +136,9 @@ class RenderManager:
lines1.append(u'Amazing Grace (John Newton)' ) lines1.append(u'Amazing Grace (John Newton)' )
lines1.append(u'Public Domain') lines1.append(u'Public Domain')
lines1.append(u'CCLI xxx') lines1.append(u'CCLI xxx')
return self.renderer.render_lines(lines, lines1) return self.renderer.generate_frame_from_lines(lines, lines1)
def format_slide(self, words):
def format_slide(self, words, footer):
log.debug(u'format slide') log.debug(u'format slide')
self.calculate_default(self.screen_list[self.current_display]['size']) self.calculate_default(self.screen_list[self.current_display]['size'])
self.build_text_rectangle(self.themedata) self.build_text_rectangle(self.themedata)
@ -151,7 +150,7 @@ class RenderManager:
self.calculate_default(self.screen_list[self.current_display]['size']) self.calculate_default(self.screen_list[self.current_display]['size'])
self.build_text_rectangle(self.themedata) self.build_text_rectangle(self.themedata)
self.renderer.set_frame_dest(self.width, self.height) self.renderer.set_frame_dest(self.width, self.height)
return self.renderer.render_lines(main_text, footer_text) return self.renderer.generate_frame_from_lines(main_text, footer_text)
def calculate_default(self, screen): def calculate_default(self, screen):
log.debug(u'calculate default %s' , screen) log.debug(u'calculate default %s' , screen)

View File

@ -58,14 +58,15 @@ class ServiceItem():
""" """
log.debug(u'Render called') log.debug(u'Render called')
if self.theme == None: if self.theme == None:
self.render_manager.set_override_theme(None) self.plugin.render_manager.set_override_theme(None)
else: else:
self.render_manager.set_override_theme(self.theme) self.plugin.render_manager.set_override_theme(self.theme)
log.debug(u'Formatting slides') log.debug(u'Formatting slides')
if len(self.frames) == 0 and len(self.raw_slides) > 0 : if len(self.frames) == 0 and len(self.raw_slides) > 0 :
for slide in self.raw_slides: for slide in self.raw_slides:
formated = self.render_manager.format_slide(slide, False) formated = self.plugin.render_manager.format_slide(slide)
frame = self.render_manager.generate_slide(formated, self.raw_footer) print formated
frame = self.plugin.render_manager.generate_slide(formated, self.raw_footer)
self.frames.append({u'title': formated, u'image': frame}) self.frames.append({u'title': formated, u'image': frame})
else: else:
if len(self.command_files) > 0: if len(self.command_files) > 0:

View File

@ -18,17 +18,19 @@ this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA Place, Suite 330, Boston, MA 02111-1307 USA
""" """
import logging import logging
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
from openlp.core.lib import translate from openlp.core.lib import translate
class AlertForm(QtGui.QDialog): class AlertForm(QtGui.QDialog):
global log global log
log=logging.getLogger(u'AlertForm') log = logging.getLogger(u'AlertForm')
def __init__(self, parent=None): def __init__(self, parent=None):
QtGui.QDialog.__init__(self, parent) QtGui.QDialog.__init__(self, None)
self.parent = parent
self.setupUi(self) self.setupUi(self)
log.info(u'Defined') log.debug(u'Defined')
def setupUi(self, AlertForm): def setupUi(self, AlertForm):
AlertForm.setObjectName("AlertForm") AlertForm.setObjectName("AlertForm")
@ -92,7 +94,6 @@ class AlertForm(QtGui.QDialog):
self.DisplayButton.setText(translate("AlertForm", u'Display')) self.DisplayButton.setText(translate("AlertForm", u'Display'))
self.CancelButton.setText(translate("AlertForm", u'Cancel')) self.CancelButton.setText(translate("AlertForm", u'Cancel'))
def load_settings(self): def load_settings(self):
pass pass
@ -100,4 +101,4 @@ class AlertForm(QtGui.QDialog):
pass pass
def onDisplayClicked(self): def onDisplayClicked(self):
pass self.parent.mainDisplay.alert(self.parent.settingsForm.AlertsTab, self.AlertEntryEditItem.text())

View File

@ -20,7 +20,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
from openlp.core.lib import SettingsTab, translate from openlp.core.lib import SettingsTab, translate, str_to_bool
class GeneralTab(SettingsTab): class GeneralTab(SettingsTab):
""" """
@ -113,6 +113,19 @@ class GeneralTab(SettingsTab):
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.GeneralRightLayout.addItem(self.GeneralRightSpacer) self.GeneralRightLayout.addItem(self.GeneralRightSpacer)
self.GeneralLayout.addWidget(self.GeneralRightWidget) self.GeneralLayout.addWidget(self.GeneralRightWidget)
QtCore.QObject.connect(self.MonitorComboBox,
QtCore.SIGNAL("activated(int)"), self.onMonitorComboBoxChanged)
QtCore.QObject.connect(self.WarningCheckBox,
QtCore.SIGNAL("stateChanged(int)"), self.onWarningCheckBoxChanged)
QtCore.QObject.connect(self.AutoOpenCheckBox,
QtCore.SIGNAL("stateChanged(int)"), self.onAutoOpenCheckBoxChanged)
QtCore.QObject.connect(self.NumberEdit,
QtCore.SIGNAL("lostFocus()"), self.onNumberEditLostFocus)
QtCore.QObject.connect(self.UsernameEdit,
QtCore.SIGNAL("lostFocus()"), self.onUsernameEditLostFocus)
QtCore.QObject.connect(self.PasswordEdit,
QtCore.SIGNAL("lostFocus()"), self.onPasswordEditLostFocus)
def retranslateUi(self): def retranslateUi(self):
self.MonitorGroupBox.setTitle(translate(u'GeneralTab', u'Monitors')) self.MonitorGroupBox.setTitle(translate(u'GeneralTab', u'Monitors'))
@ -126,7 +139,29 @@ class GeneralTab(SettingsTab):
self.UsernameLabel.setText(translate(u'GeneralTab', u'SongSelect Username:')) self.UsernameLabel.setText(translate(u'GeneralTab', u'SongSelect Username:'))
self.PasswordLabel.setText(translate(u'GeneralTab', u'SongSelect Password:')) self.PasswordLabel.setText(translate(u'GeneralTab', u'SongSelect Password:'))
def initialise(self): def onMonitorComboBoxChanged(self):
self.MonitorNumber = self.MonitorComboBox.currentIndex()
def onAutoOpenCheckBoxChanged(self, value):
self.AutoOpen = False
if value == 2: # we have a set value convert to True/False
self.AutoOpen = True
def onWarningCheckBoxChanged(self, value):
self.Warning = False
if value == 2: # we have a set value convert to True/False
self.Warning = True
def onNumberEditLostFocus(self):
self.CCLNumber = self.NumberEdit.displayText()
def onUsernameEditLostFocus(self):
self.Username = self.UsernameEdit.displayText()
def onPasswordEditLostFocus(self):
self.Password = self.PasswordEdit.displayText()
def load(self):
for screen in self.screen_list: for screen in self.screen_list:
screen_name = translate(u'GeneralTab', u'Screen') + u' ' + \ screen_name = translate(u'GeneralTab', u'Screen') + u' ' + \
str(screen['number'] + 1) str(screen['number'] + 1)
@ -134,3 +169,25 @@ class GeneralTab(SettingsTab):
screen_name = screen_name + u' (' + \ screen_name = screen_name + u' (' + \
translate(u'GeneralTab', u'primary') + u')' translate(u'GeneralTab', u'primary') + u')'
self.MonitorComboBox.addItem(screen_name) self.MonitorComboBox.addItem(screen_name)
self.MonitorNumber = int(self.config.get_config(u'Monitor', u'0'))
self.Warning = str_to_bool(self.config.get_config(u'Warning', u"False"))
self.AutoOpen = str_to_bool(self.config.get_config(u'Auto Open', u"False"))
self.CCLNumber = str(self.config.get_config('CCL Number', u'XXX'))
self.Username = str(self.config.get_config('User Name', u''))
self.Password = str(self.config.get_config('Password', u''))
self.MonitorComboBox.setCurrentIndex(self.MonitorNumber)
self.WarningCheckBox.setChecked(self.Warning)
self.AutoOpenCheckBox.setChecked(self.AutoOpen)
self.NumberEdit.setText(self.CCLNumber)
self.UsernameEdit.setText(self.Username)
self.PasswordEdit.setText(self.Password)
def save(self):
self.config.set_config(u'Monitor',str(self.MonitorNumber))
self.config.set_config(u'Warning', str(self.Warning))
self.config.set_config(u'Auto Open', str(self.AutoOpen))
self.config.set_config('CCL Number', str(self.CCLNumber))
self.config.set_config('User Name',str(self.Username))
self.config.set_config('Password', str(self.Password ))

View File

@ -18,8 +18,9 @@ this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA Place, Suite 330, Boston, MA 02111-1307 USA
""" """
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui, QtTest
from time import sleep
from openlp.core.lib import translate from openlp.core.lib import translate
class MainDisplay(QtGui.QWidget): class MainDisplay(QtGui.QWidget):
@ -32,6 +33,9 @@ class MainDisplay(QtGui.QWidget):
self.display.setScaledContents(True) self.display.setScaledContents(True)
self.displayBlank = False self.displayBlank = False
self.blankFrame= None self.blankFrame= None
self.alertactive = False
self.alerttext = u''
self.alertTab = None
def setup(self, screenNumber): def setup(self, screenNumber):
""" """
@ -55,19 +59,55 @@ class MainDisplay(QtGui.QWidget):
self.showMinimized() self.showMinimized()
painter=QtGui.QPainter() painter=QtGui.QPainter()
self.blankFrame = QtGui.QPixmap(800, 600) self.blankFrame = QtGui.QPixmap(screen['size'].width(), screen['size'].height())
painter.begin(self.blankFrame) painter.begin(self.blankFrame)
painter.fillRect(self.blankFrame.rect(), QtGui.QColor(u'#000000')) painter.fillRect(self.blankFrame.rect(), QtGui.QColor(u'#000000'))
self.frameView(self.blankFrame)
def frameView(self, frame): def frameView(self, frame):
self.frame = frame self.frame = frame
if self.displayBlank == False: if not self.displayBlank:
self.display.setPixmap(frame) self.display.setPixmap(frame)
elif self.alertactive:
self.displayAlert()
def blankDisplay(self): def blankDisplay(self):
if self.displayBlank == False: if not self.displayBlank:
self.displayBlank = True self.displayBlank = True
self.display.setPixmap(self.blankFrame) self.display.setPixmap(self.blankFrame)
else: else:
self.displayBlank = False self.displayBlank = False
self.frameView(self.frame) self.frameView(self.frame)
def alert(self, alertTab, text):
"""
Called from the Alert Tab
alertTab = details from AlertTab
text = display text
screen = screen number to be displayed on.
"""
self.alerttext = text
self.alertTab = alertTab
if len(text) > 0:
self.alertactive = True
self.displayAlert()
self.alertactive = False
def displayAlert(self):
alertframe = QtGui.QPixmap(self.frame)
painter = QtGui.QPainter(alertframe)
top = alertframe.rect().height() * 0.9
painter.fillRect(QtCore.QRect(0, top , alertframe.rect().width(), alertframe.rect().height() - top), QtGui.QColor(self.alertTab.bg_color))
font = QtGui.QFont()
font.setFamily(self.alertTab.font_face)
font.setBold(True)
font.setPointSize(40)
painter.setFont(font)
painter.setPen(QtGui.QColor(self.alertTab.font_color))
x, y = (0, top)
metrics=QtGui.QFontMetrics(font)
painter.drawText(x, y+metrics.height()-metrics.descent()-1, self.alerttext)
painter.end()
self.display.setPixmap(alertframe)
QtTest.QTest.qWait(self.alertTab.timeout*1000)
self.display.setPixmap(self.frame)

View File

@ -40,7 +40,7 @@ class MainWindow(object):
self.mainDisplay = MainDisplay(None, screens) self.mainDisplay = MainDisplay(None, screens)
self.screenList = screens self.screenList = screens
self.EventManager = EventManager() self.EventManager = EventManager()
self.alertForm = AlertForm() self.alertForm = AlertForm(self)
self.aboutForm = AboutForm() self.aboutForm = AboutForm()
self.settingsForm = SettingsForm(self.screenList, self) self.settingsForm = SettingsForm(self.screenList, self)
@ -88,26 +88,9 @@ class MainWindow(object):
self.plugin_manager.initialise_plugins() self.plugin_manager.initialise_plugins()
# Once all components are initialised load the Themes # Once all components are initialised load the Themes
log.info(u'Load Themes and Managers') log.info(u'Load Themes')
self.PreviewController.ServiceManager = self.ServiceManagerContents
self.LiveController.ServiceManager = self.ServiceManagerContents
self.ThemeManagerContents.EventManager = self.EventManager
self.ThemeManagerContents.RenderManager = self.RenderManager
self.ThemeManagerContents.ServiceManager = self.ServiceManagerContents
#self.ThemeManagerContents.ThemesTab = self.ServiceManagerContents.ThemesTab
self.ServiceManagerContents.RenderManager = self.RenderManager
self.ServiceManagerContents.EventManager = self.EventManager
self.ServiceManagerContents.LiveController = self.LiveController
self.ServiceManagerContents.PreviewController = self.PreviewController
self.ThemeManagerContents.loadThemes() self.ThemeManagerContents.loadThemes()
# Initialise SlideControllers
log.info(u'Set Up SlideControllers')
self.LiveController.mainDisplay = self.mainDisplay
def onCloseEvent(self, event): def onCloseEvent(self, event):
""" """
Hook to close the main window and display windows on exit Hook to close the main window and display windows on exit
@ -128,6 +111,7 @@ class MainWindow(object):
main_icon.addPixmap(QtGui.QPixmap(u':/icon/openlp-logo-16x16.png'), main_icon.addPixmap(QtGui.QPixmap(u':/icon/openlp-logo-16x16.png'),
QtGui.QIcon.Normal, QtGui.QIcon.Off) QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.mainWindow.setWindowIcon(main_icon) self.mainWindow.setWindowIcon(main_icon)
self.MainContent = QtGui.QWidget(self.mainWindow) self.MainContent = QtGui.QWidget(self.mainWindow)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)
@ -144,8 +128,10 @@ class MainWindow(object):
self.ControlSplitter.setOrientation(QtCore.Qt.Horizontal) self.ControlSplitter.setOrientation(QtCore.Qt.Horizontal)
self.ControlSplitter.setObjectName(u'ControlSplitter') self.ControlSplitter.setObjectName(u'ControlSplitter')
self.MainContentLayout.addWidget(self.ControlSplitter) self.MainContentLayout.addWidget(self.ControlSplitter)
self.PreviewController = SlideController(self.ControlSplitter, False)
self.LiveController = SlideController(self.ControlSplitter, True) self.PreviewController = SlideController(self.ControlSplitter, self, False)
self.LiveController = SlideController(self.ControlSplitter, self, True)
self.MenuBar = QtGui.QMenuBar(self.mainWindow) self.MenuBar = QtGui.QMenuBar(self.mainWindow)
self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27)) self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27))
self.MenuBar.setObjectName(u'MenuBar') self.MenuBar.setObjectName(u'MenuBar')
@ -172,12 +158,13 @@ class MainWindow(object):
self.StatusBar = QtGui.QStatusBar(self.mainWindow) self.StatusBar = QtGui.QStatusBar(self.mainWindow)
self.StatusBar.setObjectName(u'StatusBar') self.StatusBar.setObjectName(u'StatusBar')
self.mainWindow.setStatusBar(self.StatusBar) self.mainWindow.setStatusBar(self.StatusBar)
self.MediaManagerDock = QtGui.QDockWidget(self.mainWindow) self.MediaManagerDock = QtGui.QDockWidget(self.mainWindow)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) #MmSizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0) #MmSizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0) #MmSizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.MediaManagerDock.sizePolicy().hasHeightForWidth()) #MmSizePolicy.setHeightForWidth(self.MediaManagerDock.sizePolicy().hasHeightForWidth())
self.MediaManagerDock.setSizePolicy(sizePolicy) #self.MediaManagerDock.setSizePolicy(MmSizePolicy)
icon = QtGui.QIcon() icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(u':/system/system_mediamanager.png'), icon.addPixmap(QtGui.QPixmap(u':/system/system_mediamanager.png'),
QtGui.QIcon.Normal, QtGui.QIcon.Off) QtGui.QIcon.Normal, QtGui.QIcon.Off)
@ -187,11 +174,11 @@ class MainWindow(object):
self.MediaManagerDock.setObjectName(u'MediaManagerDock') self.MediaManagerDock.setObjectName(u'MediaManagerDock')
self.MediaManagerDock.setMinimumWidth(250) self.MediaManagerDock.setMinimumWidth(250)
self.MediaManagerContents = QtGui.QWidget() self.MediaManagerContents = QtGui.QWidget()
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) #sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0) #sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0) #sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.MediaManagerContents.sizePolicy().hasHeightForWidth()) #sizePolicy.setHeightForWidth(self.MediaManagerContents.sizePolicy().hasHeightForWidth())
self.MediaManagerContents.setSizePolicy(sizePolicy) #self.MediaManagerContents.setSizePolicy(sizePolicy)
self.MediaManagerContents.setObjectName(u'MediaManagerContents') self.MediaManagerContents.setObjectName(u'MediaManagerContents')
self.MediaManagerLayout = QtGui.QHBoxLayout(self.MediaManagerContents) self.MediaManagerLayout = QtGui.QHBoxLayout(self.MediaManagerContents)
self.MediaManagerLayout.setContentsMargins(0, 2, 0, 0) self.MediaManagerLayout.setContentsMargins(0, 2, 0, 0)
@ -202,6 +189,7 @@ class MainWindow(object):
self.MediaManagerLayout.addWidget(self.MediaToolBox) self.MediaManagerLayout.addWidget(self.MediaToolBox)
self.MediaManagerDock.setWidget(self.MediaManagerContents) self.MediaManagerDock.setWidget(self.MediaManagerContents)
self.mainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock) self.mainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock)
#Sevice Manager Defined #Sevice Manager Defined
self.ServiceManagerDock = QtGui.QDockWidget(self.mainWindow) self.ServiceManagerDock = QtGui.QDockWidget(self.mainWindow)
ServiceManagerIcon = QtGui.QIcon() ServiceManagerIcon = QtGui.QIcon()
@ -213,6 +201,7 @@ class MainWindow(object):
self.ServiceManagerContents = ServiceManager(self) self.ServiceManagerContents = ServiceManager(self)
self.ServiceManagerDock.setWidget(self.ServiceManagerContents) self.ServiceManagerDock.setWidget(self.ServiceManagerContents)
self.mainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.ServiceManagerDock) self.mainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.ServiceManagerDock)
#Theme Manager Defined #Theme Manager Defined
self.ThemeManagerDock = QtGui.QDockWidget(self.mainWindow) self.ThemeManagerDock = QtGui.QDockWidget(self.mainWindow)
ThemeManagerIcon = QtGui.QIcon() ThemeManagerIcon = QtGui.QIcon()
@ -227,6 +216,7 @@ class MainWindow(object):
self.ThemeManagerDock.setWidget(self.ThemeManagerContents) self.ThemeManagerDock.setWidget(self.ThemeManagerContents)
self.mainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.ThemeManagerDock) self.mainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.ThemeManagerDock)
#Menu Items define
self.FileNewItem = QtGui.QAction(self.mainWindow) self.FileNewItem = QtGui.QAction(self.mainWindow)
self.FileNewItem.setIcon( self.FileNewItem.setIcon(
self.ServiceManagerContents.Toolbar.getIconFromTitle(u'New Service')) self.ServiceManagerContents.Toolbar.getIconFromTitle(u'New Service'))
@ -397,22 +387,7 @@ class MainWindow(object):
self.HelpMenu.setTitle(translate(u'mainWindow', u'&Help')) self.HelpMenu.setTitle(translate(u'mainWindow', u'&Help'))
self.MediaManagerDock.setWindowTitle(translate(u'mainWindow', u'Media Manager')) self.MediaManagerDock.setWindowTitle(translate(u'mainWindow', u'Media Manager'))
self.ServiceManagerDock.setWindowTitle(translate(u'mainWindow', u'Service Manager')) self.ServiceManagerDock.setWindowTitle(translate(u'mainWindow', u'Service Manager'))
# self.ServiceManagerContents.MoveTopButton.setText(translate(u'mainWindow', u'Move To Top'))
# self.ServiceManagerContents.MoveUpButton.setText(translate(u'mainWindow', u'Move Up'))
# self.ServiceManagerContents.MoveDownButton.setText(translate(u'mainWindow', u'Move Down'))
# self.ServiceManagerContents.MoveBottomButton.setText(translate(u'mainWindow', u'Move To Bottom'))
# self.ServiceManagerContents.NewItem.setText(translate(u'mainWindow', u'New Service'))
# self.ServiceManagerContents.OpenItem.setText(translate(u'mainWindow', u'Open Service'))
# self.ServiceManagerContents.SaveItem.setText(translate(u'mainWindow', u'Save Service'))
# self.ServiceManagerContents.ThemeComboBox.setItemText(0, translate(u'mainWindow', u'African Sunset'))
# self.ServiceManagerContents.ThemeComboBox.setItemText(1, translate(u'mainWindow', u'Snowy Mountains'))
# self.ServiceManagerContents.ThemeComboBox.setItemText(2, translate(u'mainWindow', u'Wilderness'))
self.ThemeManagerDock.setWindowTitle(translate(u'mainWindow', u'Theme Manager')) self.ThemeManagerDock.setWindowTitle(translate(u'mainWindow', u'Theme Manager'))
# self.ThemeNewItem.setText(translate(u'mainWindow', u'New Theme'))
# self.ThemeEditItem.setText(translate(u'mainWindow', u'Edit Theme'))
# self.ThemeDeleteButton.setText(translate(u'mainWindow', u'Delete Theme'))
# self.ThemeImportButton.setText(translate(u'mainWindow', u'Import Theme'))
# self.ThemeExportButton.setText(translate(u'mainWindow', u'Export Theme'))
self.FileNewItem.setText(translate(u'mainWindow', u'&New')) self.FileNewItem.setText(translate(u'mainWindow', u'&New'))
self.FileNewItem.setToolTip(translate(u'mainWindow', u'New Service')) self.FileNewItem.setToolTip(translate(u'mainWindow', u'New Service'))
self.FileNewItem.setStatusTip(translate(u'mainWindow', u'Create a new Service')) self.FileNewItem.setStatusTip(translate(u'mainWindow', u'Create a new Service'))
@ -470,7 +445,7 @@ class MainWindow(object):
def show(self): def show(self):
self.mainWindow.showMaximized() self.mainWindow.showMaximized()
self.mainDisplay.setup(0) self.mainDisplay.setup(self.settingsForm.GeneralTab.MonitorNumber)
self.mainDisplay.show() self.mainDisplay.show()
def onHelpAboutItemClicked(self): def onHelpAboutItemClicked(self):

View File

@ -126,7 +126,7 @@ class ServiceManager(QtGui.QWidget):
def onThemeComboBoxSelected(self, currentIndex): def onThemeComboBoxSelected(self, currentIndex):
self.service_theme = self.ThemeComboBox.currentText() self.service_theme = self.ThemeComboBox.currentText()
self.RenderManager.set_service_theme(self.service_theme) self.parent.RenderManager.set_service_theme(self.service_theme)
self.config.set_config(u'theme service theme', self.service_theme) self.config.set_config(u'theme service theme', self.service_theme)
def addServiceItem(self, item): def addServiceItem(self, item):
@ -147,11 +147,11 @@ class ServiceManager(QtGui.QWidget):
def makePreview(self): def makePreview(self):
item, count = self.findServiceItem() item, count = self.findServiceItem()
self.PreviewController.addServiceManagerItem(self.serviceItems[item][u'data'], count) self.parent.PreviewController.addServiceManagerItem(self.serviceItems[item][u'data'], count)
def makeLive(self): def makeLive(self):
item, count = self.findServiceItem() item, count = self.findServiceItem()
self.LiveController.addServiceManagerItem(self.serviceItems[item][u'data'], count) self.parent.LiveController.addServiceManagerItem(self.serviceItems[item][u'data'], count)
def findServiceItem(self): def findServiceItem(self):
items = self.ServiceManagerList.selectedItems() items = self.ServiceManagerList.selectedItems()
@ -182,7 +182,7 @@ class ServiceManager(QtGui.QWidget):
link = event.mimeData() link = event.mimeData()
if link.hasText(): if link.hasText():
plugin = event.mimeData().text() plugin = event.mimeData().text()
self.EventManager.post_event(Event(EventType.LoadServiceItem, plugin)) self.parent.EventManager.post_event(Event(EventType.LoadServiceItem, plugin))
def oos_as_text(self): def oos_as_text(self):
text=[] text=[]
@ -218,4 +218,4 @@ class ServiceManager(QtGui.QWidget):
id = 0 id = 0
self.service_theme = u'' self.service_theme = u''
self.ThemeComboBox.setCurrentIndex(id) self.ThemeComboBox.setCurrentIndex(id)
self.RenderManager.set_service_theme(self.service_theme) self.parent.RenderManager.set_service_theme(self.service_theme)

View File

@ -100,9 +100,10 @@ class SlideController(QtGui.QWidget):
global log global log
log=logging.getLogger(u'SlideController') log=logging.getLogger(u'SlideController')
def __init__(self, control_splitter, isLive): def __init__(self, control_splitter, parent , isLive):
QtGui.QWidget.__init__(self) QtGui.QWidget.__init__(self)
self.isLive = isLive self.isLive = isLive
self.parent = parent
self.Panel = QtGui.QWidget(control_splitter) self.Panel = QtGui.QWidget(control_splitter)
self.Splitter = QtGui.QSplitter(self.Panel) self.Splitter = QtGui.QSplitter(self.Panel)
self.Splitter.setOrientation(QtCore.Qt.Vertical) self.Splitter.setOrientation(QtCore.Qt.Vertical)
@ -124,10 +125,12 @@ class SlideController(QtGui.QWidget):
self.gridLayout.setObjectName("gridLayout") self.gridLayout.setObjectName("gridLayout")
self.PreviewListView = QtGui.QListView(self.scrollAreaWidgetContents) self.PreviewListView = QtGui.QListView(self.scrollAreaWidgetContents)
self.PreviewListView.setFlow(1)
self.PreviewListView.setViewMode(1)
self.PreviewListView.setWrapping(False)
self.PreviewListData = SlideData() self.PreviewListData = SlideData()
self.PreviewListView.isLive = self.isLive
self.PreviewListView.setModel(self.PreviewListData) self.PreviewListView.setModel(self.PreviewListData)
self.PreviewListView.setSelectionRectVisible(True) #self.PreviewListView.setSelectionRectVisible(True)
self.PreviewListView.setSpacing(5) self.PreviewListView.setSpacing(5)
self.PreviewListView.setObjectName("PreviewListView") self.PreviewListView.setObjectName("PreviewListView")
@ -235,7 +238,7 @@ class SlideController(QtGui.QWidget):
if self.isLive: if self.isLive:
no = frame[1] no = frame[1]
LiveFrame = self.serviceitem.frames[no][u'image'] LiveFrame = self.serviceitem.frames[no][u'image']
self.mainDisplay.frameView(LiveFrame) self.parent.mainDisplay.frameView(LiveFrame)
def addServiceItem(self, serviceitem): def addServiceItem(self, serviceitem):
log.debug(u'addServiceItem') log.debug(u'addServiceItem')

View File

@ -215,8 +215,8 @@ class ThemeManager(QtGui.QWidget):
for name in files: for name in files:
if name.endswith(u'.png'): if name.endswith(u'.png'):
self.themeData.addRow(os.path.join(self.path, name)) self.themeData.addRow(os.path.join(self.path, name))
self.EventManager.post_event(Event(EventType.ThemeListChanged)) self.parent.EventManager.post_event(Event(EventType.ThemeListChanged))
self.ServiceManager.updateThemeList(self.getThemes()) self.parent.ServiceManagerContents.updateThemeList(self.getThemes())
self.parent.settingsForm.ThemesTab.updateThemeList(self.getThemes()) self.parent.settingsForm.ThemesTab.updateThemeList(self.getThemes())
def getThemes(self): def getThemes(self):
@ -335,7 +335,7 @@ class ThemeManager(QtGui.QWidget):
outfile = open(theme_file, u'w') outfile = open(theme_file, u'w')
outfile.write(theme_xml) outfile.write(theme_xml)
outfile.close() outfile.close()
if image_from is not None: if image_from is not None and image_from != image_to:
shutil.copyfile(image_from, image_to) shutil.copyfile(image_from, image_to)
self.generateAndSaveImage(self.path, name, theme_xml) self.generateAndSaveImage(self.path, name, theme_xml)
self.themeData.clearItems() self.themeData.clearItems()
@ -356,7 +356,7 @@ class ThemeManager(QtGui.QWidget):
def generateImage(self, themedata): def generateImage(self, themedata):
log.debug(u'generateImage %s ', themedata) log.debug(u'generateImage %s ', themedata)
frame = self.RenderManager.generate_preview(themedata) frame = self.parent.RenderManager.generate_preview(themedata)
return frame return frame
def getPreviewImage(self, theme): def getPreviewImage(self, theme):

View File

@ -128,6 +128,7 @@ class Ui_BibleImportDialog(object):
self.PasswordLabel.setObjectName("PasswordLabel") self.PasswordLabel.setObjectName("PasswordLabel")
self.ProxySettingsLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.PasswordLabel) self.ProxySettingsLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.PasswordLabel)
self.PasswordEdit = QtGui.QLineEdit(self.ProxyGroupBox) self.PasswordEdit = QtGui.QLineEdit(self.ProxyGroupBox)
self.PasswordEdit.setEchoMode(QtGui.QLineEdit.Password)
self.PasswordEdit.setObjectName("PasswordEdit") self.PasswordEdit.setObjectName("PasswordEdit")
self.ProxySettingsLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.PasswordEdit) self.ProxySettingsLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.PasswordEdit)
self.WebBibleLayout.addWidget(self.ProxyGroupBox) self.WebBibleLayout.addWidget(self.ProxyGroupBox)

View File

@ -345,21 +345,18 @@ class BibleMediaItem(MediaManagerItem):
def onBibleLiveClick(self): def onBibleLiveClick(self):
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_verse.png") service_item.addIcon( ":/media/media_verse.png")
service_item.render_manager = self.parent.render_manager
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.live_controller.addServiceItem(service_item) self.parent.live_controller.addServiceItem(service_item)
def onBibleAddClick(self): def onBibleAddClick(self):
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_verse.png") service_item.addIcon( ":/media/media_verse.png")
service_item.render_manager = self.parent.render_manager
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.service_manager.addServiceItem(service_item) self.parent.service_manager.addServiceItem(service_item)
def onBiblePreviewClick(self): def onBiblePreviewClick(self):
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_verse.png") service_item.addIcon( ":/media/media_verse.png")
service_item.render_manager = self.parent.render_manager
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.preview_controller.addServiceItem(service_item) self.parent.preview_controller.addServiceItem(service_item)

View File

@ -210,7 +210,6 @@ class CustomMediaItem(MediaManagerItem):
log.debug(u'Custom Preview Requested') log.debug(u'Custom Preview Requested')
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_song.png") service_item.addIcon( ":/media/media_song.png")
service_item.render_manager = self.parent.render_manager
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.preview_controller.addServiceItem(service_item) self.parent.preview_controller.addServiceItem(service_item)
@ -218,7 +217,6 @@ class CustomMediaItem(MediaManagerItem):
log.debug(u'Custom Live Requested') log.debug(u'Custom Live Requested')
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_song.png") service_item.addIcon( ":/media/media_song.png")
service_item.render_manager = self.parent.render_manager
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.live_controller.addServiceItem(service_item) self.parent.live_controller.addServiceItem(service_item)
@ -226,7 +224,6 @@ class CustomMediaItem(MediaManagerItem):
log.debug(u'Custom Add Requested') log.debug(u'Custom Add Requested')
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_song.png") service_item.addIcon( ":/media/media_song.png")
service_item.render_manager = self.parent.render_manager
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.service_manager.addServiceItem(service_item) self.parent.service_manager.addServiceItem(service_item)

View File

@ -159,7 +159,6 @@ class ImageMediaItem(MediaManagerItem):
log.debug(u'Image Preview Requested') log.debug(u'Image Preview Requested')
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_image.png") service_item.addIcon( ":/media/media_image.png")
service_item.render_manager = self.parent.render_manager
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.preview_controller.addServiceItem(service_item) self.parent.preview_controller.addServiceItem(service_item)
@ -167,7 +166,6 @@ class ImageMediaItem(MediaManagerItem):
log.debug(u'Image Live Requested') log.debug(u'Image Live Requested')
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_image.png") service_item.addIcon( ":/media/media_image.png")
service_item.render_manager = self.parent.render_manager
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.live_controller.addServiceItem(service_item) self.parent.live_controller.addServiceItem(service_item)
@ -175,6 +173,5 @@ class ImageMediaItem(MediaManagerItem):
log.debug(u'Image Add Requested') log.debug(u'Image Add Requested')
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_image.png") service_item.addIcon( ":/media/media_image.png")
service_item.render_manager = self.parent.render_manager
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.service_manager.addServiceItem(service_item) self.parent.service_manager.addServiceItem(service_item)