forked from openlp/openlp
Back out refactor
This commit is contained in:
parent
38615ca5c9
commit
66339eedd6
@ -40,7 +40,6 @@ class Renderer(object):
|
|||||||
Initialise the renderer.
|
Initialise the renderer.
|
||||||
"""
|
"""
|
||||||
self._rect = None
|
self._rect = None
|
||||||
self._footer_rect = None
|
|
||||||
self._debug = 0
|
self._debug = 0
|
||||||
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
|
||||||
@ -216,29 +215,18 @@ class Renderer(object):
|
|||||||
split_pages.append(page)
|
split_pages.append(page)
|
||||||
return split_pages
|
return split_pages
|
||||||
|
|
||||||
def build_text_rectangle(self, theme):
|
def set_text_rectangle(self, rect_main, rect_footer):
|
||||||
"""
|
"""
|
||||||
Builds a text block using the settings in ``theme``.
|
Sets the rectangle within which text should be rendered.
|
||||||
One is needed per slide
|
|
||||||
|
|
||||||
``theme``
|
``rect_main``
|
||||||
The theme to build a text block for.
|
The main text block.
|
||||||
|
|
||||||
|
``rect_footer``
|
||||||
|
The footer text block.
|
||||||
"""
|
"""
|
||||||
log.debug(u'build_text_rectangle')
|
self._rect = rect_main
|
||||||
if theme.font_main_override == False:
|
self._rect_footer = rect_footer
|
||||||
self._rect = QtCore.QRect(10, 0, self.width - 1,
|
|
||||||
self.footer_start - 20)
|
|
||||||
else:
|
|
||||||
self._rect = QtCore.QRect(int(theme.font_main_x),
|
|
||||||
int(theme.font_main_y), int(theme.font_main_width)-1,
|
|
||||||
int(theme.font_main_height) - 1)
|
|
||||||
if theme.font_footer_override == False:
|
|
||||||
self._footer_rect = QtCore.QRect(10,self.footer_start, self.width - 1,
|
|
||||||
self.height-self.footer_start)
|
|
||||||
else:
|
|
||||||
self._footer_rect = QtCore.QRect(int(theme.font_footer_x),
|
|
||||||
int(theme.font_footer_y), int(theme.font_footer_width)-1,
|
|
||||||
int(theme.font_footer_height) - 1)
|
|
||||||
|
|
||||||
def generate_frame_from_lines(self, lines, footer_lines=None):
|
def generate_frame_from_lines(self, lines, footer_lines=None):
|
||||||
"""
|
"""
|
||||||
|
@ -137,24 +137,49 @@ class RenderManager(object):
|
|||||||
self.calculate_default(
|
self.calculate_default(
|
||||||
self.screen_list[self.current_display][u'size'])
|
self.screen_list[self.current_display][u'size'])
|
||||||
self.renderer.set_theme(self.themedata)
|
self.renderer.set_theme(self.themedata)
|
||||||
self.renderer.build_text_rectangle(self.themedata)
|
self.build_text_rectangle(self.themedata)
|
||||||
#Replace the backgrount image from renderer with one from image
|
#Replace the backgrount image from renderer with one from image
|
||||||
if self.override_background is not None:
|
if self.override_background is not None:
|
||||||
if self.save_bg_frame is None:
|
if self.save_bg_frame is None:
|
||||||
self.save_bg_frame = self.renderer.bg_frame
|
self.save_bg_frame = self.renderer.bg_frame
|
||||||
if self.override_background_changed:
|
if self.override_background_changed:
|
||||||
self.renderer.bg_frame = self.resize_image(
|
self.renderer.bg_frame = self.resize_image(self.override_background)
|
||||||
self.override_background)
|
|
||||||
self.override_background_changed = False
|
self.override_background_changed = False
|
||||||
else:
|
else:
|
||||||
if self.override_background_changed:
|
if self.override_background_changed:
|
||||||
self.renderer.bg_frame = self.resize_image(
|
self.renderer.bg_frame = self.resize_image(self.override_background)
|
||||||
self.override_background)
|
|
||||||
self.override_background_changed = False
|
self.override_background_changed = False
|
||||||
if self.save_bg_frame is not None:
|
if self.save_bg_frame is not None:
|
||||||
self.renderer.bg_frame = self.save_bg_frame
|
self.renderer.bg_frame = self.save_bg_frame
|
||||||
self.save_bg_frame = None
|
self.save_bg_frame = None
|
||||||
|
|
||||||
|
def build_text_rectangle(self, theme):
|
||||||
|
"""
|
||||||
|
Builds a text block using the settings in ``theme``.
|
||||||
|
One is needed per slide
|
||||||
|
|
||||||
|
``theme``
|
||||||
|
The theme to build a text block for.
|
||||||
|
"""
|
||||||
|
log.debug(u'build_text_rectangle')
|
||||||
|
main_rect = None
|
||||||
|
footer_rect = None
|
||||||
|
if theme.font_main_override == False:
|
||||||
|
main_rect = QtCore.QRect(10, 0, self.width - 1,
|
||||||
|
self.footer_start - 20)
|
||||||
|
else:
|
||||||
|
main_rect = QtCore.QRect(int(theme.font_main_x),
|
||||||
|
int(theme.font_main_y), int(theme.font_main_width)-1,
|
||||||
|
int(theme.font_main_height) - 1)
|
||||||
|
if theme.font_footer_override == False:
|
||||||
|
footer_rect = QtCore.QRect(10,self.footer_start, self.width - 1,
|
||||||
|
self.height-self.footer_start)
|
||||||
|
else:
|
||||||
|
footer_rect = QtCore.QRect(int(theme.font_footer_x),
|
||||||
|
int(theme.font_footer_y), int(theme.font_footer_width)-1,
|
||||||
|
int(theme.font_footer_height) - 1)
|
||||||
|
self.renderer.set_text_rectangle(main_rect, footer_rect)
|
||||||
|
|
||||||
def generate_preview(self, themedata):
|
def generate_preview(self, themedata):
|
||||||
"""
|
"""
|
||||||
Generate a preview of a theme.
|
Generate a preview of a theme.
|
||||||
@ -165,7 +190,7 @@ class RenderManager(object):
|
|||||||
log.debug(u'generate preview')
|
log.debug(u'generate preview')
|
||||||
self.calculate_default(QtCore.QSize(1024, 768))
|
self.calculate_default(QtCore.QSize(1024, 768))
|
||||||
self.renderer.set_theme(themedata)
|
self.renderer.set_theme(themedata)
|
||||||
self.renderer.build_text_rectangle(themedata)
|
self.build_text_rectangle(themedata)
|
||||||
self.renderer.set_frame_dest(self.width, self.height, True)
|
self.renderer.set_frame_dest(self.width, self.height, True)
|
||||||
verse = []
|
verse = []
|
||||||
verse.append(u'Amazing Grace!')
|
verse.append(u'Amazing Grace!')
|
||||||
@ -187,7 +212,7 @@ class RenderManager(object):
|
|||||||
The words to go on the slides.
|
The words to go on the slides.
|
||||||
"""
|
"""
|
||||||
log.debug(u'format slide')
|
log.debug(u'format slide')
|
||||||
self.renderer.build_text_rectangle(self.themedata)
|
self.build_text_rectangle(self.themedata)
|
||||||
return self.renderer.format_slide(words, False)
|
return self.renderer.format_slide(words, False)
|
||||||
|
|
||||||
def generate_slide(self, main_text, footer_text):
|
def generate_slide(self, main_text, footer_text):
|
||||||
@ -201,7 +226,7 @@ class RenderManager(object):
|
|||||||
The text for the slide footer.
|
The text for the slide footer.
|
||||||
"""
|
"""
|
||||||
log.debug(u'generate slide')
|
log.debug(u'generate slide')
|
||||||
self.renderer.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.generate_frame_from_lines(main_text, footer_text)
|
return self.renderer.generate_frame_from_lines(main_text, footer_text)
|
||||||
|
|
||||||
@ -221,7 +246,7 @@ class RenderManager(object):
|
|||||||
h = height
|
h = height
|
||||||
preview = preview.scaled(w, h, QtCore.Qt.KeepAspectRatio,
|
preview = preview.scaled(w, h, QtCore.Qt.KeepAspectRatio,
|
||||||
QtCore.Qt.SmoothTransformation)
|
QtCore.Qt.SmoothTransformation)
|
||||||
realw = preview.width()
|
realw = preview.width();
|
||||||
realh = preview.height()
|
realh = preview.height()
|
||||||
# and move it to the centre of the preview space
|
# and move it to the centre of the preview space
|
||||||
newImage = QtGui.QImage(w, h, QtGui.QImage.Format_ARGB32_Premultiplied)
|
newImage = QtGui.QImage(w, h, QtGui.QImage.Format_ARGB32_Premultiplied)
|
||||||
|
@ -448,11 +448,9 @@ class SlideController(QtGui.QWidget):
|
|||||||
if self.commandItem is not None and \
|
if self.commandItem is not None and \
|
||||||
self.commandItem.service_item_type == ServiceItemType.Command:
|
self.commandItem.service_item_type == ServiceItemType.Command:
|
||||||
if blanked:
|
if blanked:
|
||||||
Receiver().send_message(
|
Receiver().send_message(u'%s_blank'% self.commandItem.name.lower())
|
||||||
u'%s_blank' % self.commandItem.name.lower())
|
|
||||||
else:
|
else:
|
||||||
Receiver().send_message(
|
Receiver().send_message(u'%s_unblank'% self.commandItem.name.lower())
|
||||||
u'%s_unblank' % self.commandItem.name.lower())
|
|
||||||
else:
|
else:
|
||||||
self.parent.mainDisplay.blankDisplay()
|
self.parent.mainDisplay.blankDisplay()
|
||||||
|
|
||||||
@ -465,8 +463,7 @@ class SlideController(QtGui.QWidget):
|
|||||||
self.row = 0
|
self.row = 0
|
||||||
if row > -1 and row < self.PreviewListWidget.rowCount():
|
if row > -1 and row < self.PreviewListWidget.rowCount():
|
||||||
if self.commandItem.service_item_type == ServiceItemType.Command:
|
if self.commandItem.service_item_type == ServiceItemType.Command:
|
||||||
Receiver().send_message(
|
Receiver().send_message(u'%s_slide'% self.commandItem.name.lower(), [row])
|
||||||
u'%s_slide'% self.commandItem.name.lower(), [row])
|
|
||||||
if self.isLive:
|
if self.isLive:
|
||||||
QtCore.QTimer.singleShot(0.5, self.grabMainDisplay)
|
QtCore.QTimer.singleShot(0.5, self.grabMainDisplay)
|
||||||
else:
|
else:
|
||||||
@ -492,12 +489,10 @@ class SlideController(QtGui.QWidget):
|
|||||||
if not rm.screen_list[rm.current_display][u'primary']:
|
if not rm.screen_list[rm.current_display][u'primary']:
|
||||||
winid = QtGui.QApplication.desktop().winId()
|
winid = QtGui.QApplication.desktop().winId()
|
||||||
rect = rm.screen_list[rm.current_display][u'size']
|
rect = rm.screen_list[rm.current_display][u'size']
|
||||||
winimg = QtGui.QPixmap.grabWindow(
|
winimg = QtGui.QPixmap.grabWindow(winid, rect.x(), rect.y(), rect.width(), rect.height())
|
||||||
winid, rect.x(), rect.y(), rect.width(), rect.height())
|
|
||||||
self.SlidePreview.setPixmap(winimg)
|
self.SlidePreview.setPixmap(winimg)
|
||||||
else:
|
else:
|
||||||
label = self.PreviewListWidget.cellWidget(
|
label = self.PreviewListWidget.cellWidget(self.PreviewListWidget.currentRow(), 0)
|
||||||
self.PreviewListWidget.currentRow(), 0)
|
|
||||||
self.SlidePreview.setPixmap(label.pixmap())
|
self.SlidePreview.setPixmap(label.pixmap())
|
||||||
|
|
||||||
def onSlideSelectedNext(self):
|
def onSlideSelectedNext(self):
|
||||||
|
@ -78,25 +78,17 @@ class ThemeManager(QtGui.QWidget):
|
|||||||
self.ThemeListWidget.addAction(
|
self.ThemeListWidget.addAction(
|
||||||
contextMenuAction(self.ThemeListWidget, u':/themes/theme_edit.png',
|
contextMenuAction(self.ThemeListWidget, u':/themes/theme_edit.png',
|
||||||
self.trUtf8(u'Edit a theme'), self.onEditTheme))
|
self.trUtf8(u'Edit a theme'), self.onEditTheme))
|
||||||
|
self.ThemeListWidget.addAction(contextMenuSeparator(self.ThemeListWidget))
|
||||||
self.ThemeListWidget.addAction(
|
self.ThemeListWidget.addAction(
|
||||||
contextMenuSeparator(self.ThemeListWidget))
|
contextMenuAction(self.ThemeListWidget, u':/themes/theme_delete.png',
|
||||||
|
self.trUtf8(u'Delete theme'), self.onDeleteTheme))
|
||||||
self.ThemeListWidget.addAction(
|
self.ThemeListWidget.addAction(
|
||||||
contextMenuAction(self.ThemeListWidget,
|
contextMenuAction(self.ThemeListWidget, u':/themes/theme_export.png',
|
||||||
u':/themes/theme_delete.png',
|
self.trUtf8(u'Make Global'), self.changeGlobalFromScreen))
|
||||||
self.trUtf8(u'Delete theme'),
|
|
||||||
self.onDeleteTheme))
|
|
||||||
self.ThemeListWidget.addAction(
|
self.ThemeListWidget.addAction(
|
||||||
contextMenuAction(self.ThemeListWidget,
|
contextMenuAction(self.ThemeListWidget, u':/themes/theme_export.png',
|
||||||
u':/themes/theme_export.png',
|
self.trUtf8(u'Export theme'), self.onExportTheme))
|
||||||
self.trUtf8(u'Make Global'),
|
self.ThemeListWidget.addAction(contextMenuSeparator(self.ThemeListWidget))
|
||||||
self.changeGlobalFromScreen))
|
|
||||||
self.ThemeListWidget.addAction(
|
|
||||||
contextMenuAction(self.ThemeListWidget,
|
|
||||||
u':/themes/theme_export.png',
|
|
||||||
self.trUtf8(u'Export theme'),
|
|
||||||
self.onExportTheme))
|
|
||||||
self.ThemeListWidget.addAction(
|
|
||||||
contextMenuSeparator(self.ThemeListWidget))
|
|
||||||
#Signals
|
#Signals
|
||||||
QtCore.QObject.connect(self.ThemeListWidget,
|
QtCore.QObject.connect(self.ThemeListWidget,
|
||||||
QtCore.SIGNAL(u'doubleClicked(QModelIndex)'),
|
QtCore.SIGNAL(u'doubleClicked(QModelIndex)'),
|
||||||
@ -159,8 +151,7 @@ class ThemeManager(QtGui.QWidget):
|
|||||||
if item is not None:
|
if item is not None:
|
||||||
self.amendThemeForm.loadTheme(
|
self.amendThemeForm.loadTheme(
|
||||||
unicode(item.data(QtCore.Qt.UserRole).toString()))
|
unicode(item.data(QtCore.Qt.UserRole).toString()))
|
||||||
self.saveThemeName = unicode(
|
self.saveThemeName = unicode(item.data(QtCore.Qt.UserRole).toString())
|
||||||
item.data(QtCore.Qt.UserRole).toString())
|
|
||||||
self.amendThemeForm.exec_()
|
self.amendThemeForm.exec_()
|
||||||
|
|
||||||
def onDeleteTheme(self):
|
def onDeleteTheme(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user