From c93b073da81dee7c6a315814e14084ab38c552b7 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 27 Mar 2011 09:19:00 +0100 Subject: [PATCH 01/94] Renderer Cleanups - started --- openlp/core/lib/__init__.py | 1 - openlp/core/lib/renderer.py | 121 --------------------- openlp/core/lib/rendermanager.py | 175 ++++++++++++++++++++++++------- openlp/core/lib/serviceitem.py | 2 +- 4 files changed, 137 insertions(+), 162 deletions(-) diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index ddb1ae9b1..6f43a7bf2 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -338,6 +338,5 @@ from htmlbuilder import build_html, build_lyrics_format_css, \ build_lyrics_outline_css from toolbar import OpenLPToolbar from dockwidget import OpenLPDockWidget -from renderer import Renderer from rendermanager import RenderManager from mediamanageritem import MediaManagerItem diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 0eeae6abd..a866072e7 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -23,125 +23,4 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### -""" -The :mod:`renderer` module enables OpenLP to take the input from plugins and -format it for the output display. -""" -import logging -from PyQt4 import QtWebKit - -from openlp.core.lib import expand_tags, build_lyrics_format_css, \ - build_lyrics_outline_css, Receiver - -log = logging.getLogger(__name__) - -class Renderer(object): - """ - Genarates a pixmap image of a array of text. The Text is formatted to - make sure it fits on the screen and if not extra frames are generated. - """ - log.info(u'Renderer Loaded') - - def __init__(self): - """ - Initialise the renderer. - """ - self._rect = None - self.theme_name = None - self._theme = None - - def set_theme(self, theme): - """ - Set the theme to be used. - - ``theme`` - The theme to be used. - """ - log.debug(u'set theme') - self._theme = theme - self.theme_name = theme.theme_name - - def set_text_rectangle(self, rect_main, rect_footer): - """ - Sets the rectangle within which text should be rendered. - - ``rect_main`` - The main text block. - - ``rect_footer`` - The footer text block. - """ - log.debug(u'set_text_rectangle %s , %s' % (rect_main, rect_footer)) - self._rect = rect_main - self._rect_footer = rect_footer - self.page_width = self._rect.width() - self.page_height = self._rect.height() - if self._theme.font_main_shadow: - self.page_width -= int(self._theme.font_main_shadow_size) - self.page_height -= int(self._theme.font_main_shadow_size) - self.web = QtWebKit.QWebView() - self.web.setVisible(False) - self.web.resize(self.page_width, self.page_height) - self.web_frame = self.web.page().mainFrame() - # Adjust width and height to account for shadow. outline done in css - self.page_shell = u'' \ - u'
' % \ - (build_lyrics_format_css(self._theme, self.page_width, - self.page_height), build_lyrics_outline_css(self._theme)) - - def format_slide(self, words, line_break, force_page=False): - """ - Figure out how much text can appear on a slide, using the current - theme settings. - - ``words`` - The words to be fitted on the slide. - - ``line_break`` - Add line endings after each line of text used for bibles. - - ``force_page`` - Flag to tell message lines in page. - - """ - log.debug(u'format_slide - Start') - line_end = u'' - if line_break: - line_end = u'
' - words = words.replace(u'\r\n', u'\n') - verses_text = words.split(u'\n') - text = [] - for verse in verses_text: - lines = verse.split(u'\n') - for line in lines: - text.append(line) - formatted = [] - html_text = u'' - styled_text = u'' - line_count = 0 - for line in text: - if line_count != -1: - line_count += 1 - styled_line = expand_tags(line) + line_end - styled_text += styled_line - html = self.page_shell + styled_text + u'
' - self.web.setHtml(html) - # Text too long so go to next page - if self.web_frame.contentsSize().height() > self.page_height: - if force_page and line_count > 0: - Receiver.send_message(u'theme_line_count', line_count) - line_count = -1 - if html_text.endswith(u'
'): - html_text = html_text[:len(html_text)-4] - formatted.append(html_text) - html_text = u'' - styled_text = styled_line - html_text += line + line_end - if html_text.endswith(u'
'): - html_text = html_text[:len(html_text)-4] - formatted.append(html_text) - log.debug(u'format_slide - End') - return formatted diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index 39c2c3b27..a88bd6e39 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -26,9 +26,10 @@ import logging -from PyQt4 import QtCore +from PyQt4 import QtCore, QtWebKit -from openlp.core.lib import Renderer, ServiceItem, ImageManager +from openlp.core.lib import ServiceItem, ImageManager, expand_tags, \ + build_lyrics_format_css, build_lyrics_outline_css, Receiver from openlp.core.lib.theme import ThemeLevel from openlp.core.ui import MainDisplay @@ -70,25 +71,25 @@ class RenderManager(object): self.display = MainDisplay(self, screens, False) self.display.imageManager = self.image_manager self.theme_manager = theme_manager - self.renderer = Renderer() - self.calculate_default(self.screens.current[u'size']) self.theme = u'' self.service_theme = u'' self.theme_level = u'' self.override_background = None self.theme_data = None self.force_page = False + self.r_theme_name = None + self._r_theme = None def update_display(self): """ Updates the render manager's information about the current screen. """ log.debug(u'Update Display') - self.calculate_default(self.screens.current[u'size']) + self._calculate_default(self.screens.current[u'size']) self.display = MainDisplay(self, self.screens, False) self.display.imageManager = self.image_manager self.display.setup() - self.renderer.bg_frame = None + self.bg_frame = None self.theme_data = None self.image_manager.update_display(self.width, self.height) @@ -155,7 +156,7 @@ class RenderManager(object): self.theme = self.service_theme else: self.theme = self.global_theme - if self.theme != self.renderer.theme_name or self.theme_data is None \ + if self.theme != self.r_theme_name or self.theme_data is None \ or overrideLevels: log.debug(u'theme is now %s', self.theme) # Force the theme to be the one passed in. @@ -163,37 +164,12 @@ class RenderManager(object): self.theme_data = theme else: self.theme_data = self.theme_manager.getThemeData(self.theme) - self.calculate_default(self.screens.current[u'size']) - self.renderer.set_theme(self.theme_data) - self.build_text_rectangle(self.theme_data) + self._calculate_default(self.screens.current[u'size']) + self._set_theme(self.theme_data) + self._build_text_rectangle(self.theme_data) self.image_manager.add_image(self.theme_data.theme_name, self.theme_data.background_filename) - return self.renderer._rect, self.renderer._rect_footer - - def build_text_rectangle(self, theme): - """ - Builds a text block using the settings in ``theme`` - and the size of the display screen.height. - - ``theme`` - The theme to build a text block for. - """ - log.debug(u'build_text_rectangle') - main_rect = None - footer_rect = None - if not theme.font_main_override: - main_rect = QtCore.QRect(10, 0, self.width - 20, self.footer_start) - else: - main_rect = QtCore.QRect(theme.font_main_x, theme.font_main_y, - theme.font_main_width - 1, theme.font_main_height - 1) - if not theme.font_footer_override: - footer_rect = QtCore.QRect(10, self.footer_start, self.width - 20, - self.height - self.footer_start) - else: - footer_rect = QtCore.QRect(theme.font_footer_x, - theme.font_footer_y, theme.font_footer_width - 1, - theme.font_footer_height - 1) - self.renderer.set_text_rectangle(main_rect, footer_rect) + return self._rect, self._rect_footer def generate_preview(self, theme_data, force_page=False): """ @@ -227,7 +203,7 @@ class RenderManager(object): raw_html = serviceItem.get_rendered_frame(0) preview = self.display.text(raw_html) # Reset the real screen size for subsequent render requests - self.calculate_default(self.screens.current[u'size']) + self._calculate_default(self.screens.current[u'size']) return preview def format_slide(self, words, line_break): @@ -241,9 +217,9 @@ class RenderManager(object): Add line endings after each line of text used for bibles. """ log.debug(u'format slide') - return self.renderer.format_slide(words, line_break, self.force_page) + return self._format_slide(words, line_break, self.force_page) - def calculate_default(self, screen): + def _calculate_default(self, screen): """ Calculate the default dimentions of the screen. @@ -258,3 +234,124 @@ class RenderManager(object): self.width, self.height, self.screen_ratio) # 90% is start of footer self.footer_start = int(self.height * 0.90) + + def _build_text_rectangle(self, theme): + """ + Builds a text block using the settings in ``theme`` + and the size of the display screen.height. + + ``theme`` + The theme to build a text block for. + """ + log.debug(u'_build_text_rectangle') + main_rect = None + footer_rect = None + if not theme.font_main_override: + main_rect = QtCore.QRect(10, 0, self.width - 20, self.footer_start) + else: + main_rect = QtCore.QRect(theme.font_main_x, theme.font_main_y, + theme.font_main_width - 1, theme.font_main_height - 1) + if not theme.font_footer_override: + footer_rect = QtCore.QRect(10, self.footer_start, self.width - 20, + self.height - self.footer_start) + else: + footer_rect = QtCore.QRect(theme.font_footer_x, + theme.font_footer_y, theme.font_footer_width - 1, + theme.font_footer_height - 1) + self._set_text_rectangle(main_rect, footer_rect) + + def _set_theme(self, theme): + """ + Set the theme to be used. + + ``theme`` + The theme to be used. + """ + log.debug(u'set theme') + self._r_theme = theme + self.r_theme_name = theme.theme_name + + def _set_text_rectangle(self, rect_main, rect_footer): + """ + Sets the rectangle within which text should be rendered. + + ``rect_main`` + The main text block. + + ``rect_footer`` + The footer text block. + """ + log.debug(u'set_text_rectangle %s , %s' % (rect_main, rect_footer)) + self._rect = rect_main + self._rect_footer = rect_footer + self.page_width = self._rect.width() + self.page_height = self._rect.height() + if self._r_theme.font_main_shadow: + self.page_width -= int(self._r_theme.font_main_shadow_size) + self.page_height -= int(self._r_theme.font_main_shadow_size) + self.web = QtWebKit.QWebView() + self.web.setVisible(False) + self.web.resize(self.page_width, self.page_height) + self.web_frame = self.web.page().mainFrame() + # Adjust width and height to account for shadow. outline done in css + self.page_shell = u'' \ + u'
' % \ + (build_lyrics_format_css(self._r_theme, self.page_width, + self.page_height), build_lyrics_outline_css(self._r_theme)) + + def _format_slide(self, words, line_break, force_page=False): + """ + Figure out how much text can appear on a slide, using the current + theme settings. + + ``words`` + The words to be fitted on the slide. + + ``line_break`` + Add line endings after each line of text used for bibles. + + ``force_page`` + Flag to tell message lines in page. + + """ + log.debug(u'format_slide - Start') + line_end = u'' + if line_break: + line_end = u'
' + words = words.replace(u'\r\n', u'\n') + verses_text = words.split(u'\n') + text = [] + for verse in verses_text: + lines = verse.split(u'\n') + for line in lines: + text.append(line) + formatted = [] + html_text = u'' + styled_text = u'' + line_count = 0 + for line in text: + if line_count != -1: + line_count += 1 + styled_line = expand_tags(line) + line_end + styled_text += styled_line + html = self.page_shell + styled_text + u'
' + self.web.setHtml(html) + # Text too long so go to next page + if self.web_frame.contentsSize().height() > self.page_height: + if force_page and line_count > 0: + Receiver.send_message(u'theme_line_count', line_count) + line_count = -1 + if html_text.endswith(u'
'): + html_text = html_text[:len(html_text)-4] + formatted.append(html_text) + html_text = u'' + styled_text = styled_line + html_text += line + line_end + if html_text.endswith(u'
'): + html_text = html_text[:len(html_text)-4] + formatted.append(html_text) + log.debug(u'format_slide - End') + return formatted + diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 63b9dce00..249236f98 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -165,7 +165,7 @@ class ServiceItem(object): theme = self.theme if self.theme else None self.main, self.footer = \ self.render_manager.set_override_theme(theme, useOverride) - self.themedata = self.render_manager.renderer._theme + self.themedata = self.render_manager._r_theme if self.service_item_type == ServiceItemType.Text: log.debug(u'Formatting slides') for slide in self._raw_frames: From 5a4b91b37c3b634e3646de2feb73442faa896782 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 27 Mar 2011 15:39:43 +0200 Subject: [PATCH 02/94] (suggestion) added support for multiple slides --- openlp/plugins/songs/lib/xml.py | 37 +++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index 87e28591e..daec73d64 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -226,7 +226,6 @@ class OpenLyrics(object): Convert the song to OpenLyrics Format. """ sxml = SongXML() - verse_list = sxml.get_verses(song.lyrics) song_xml = objectify.fromstring(u'') # Append the necessary meta data to the song. song_xml.set(u'xmlns', u'http://openlyrics.info/namespace/2009/song') @@ -268,17 +267,26 @@ class OpenLyrics(object): themes = etree.SubElement(properties, u'themes') for topic in song.topics: self._add_text_to_element(u'theme', themes, topic.name) + # Process the song's lyrics. lyrics = etree.SubElement(song_xml, u'lyrics') + verse_list = sxml.get_verses(song.lyrics) for verse in verse_list: - verse_tag = u'%s%s' % ( - verse[0][u'type'][0].lower(), verse[0][u'label']) - element = \ - self._add_text_to_element(u'verse', lyrics, None, verse_tag) - if verse[0].has_key(u'lang'): - element.set(u'lang', verse[0][u'lang']) - element = self._add_text_to_element(u'lines', element) - for line in unicode(verse[1]).split(u'\n'): - self._add_text_to_element(u'line', element, line) + verse_tag = verse[0][u'type'][0].lower() + verse_number = verse[0][u'label'] + # Create a list with all "sub" verses. + sub_verses = verse[1].split(u'[---]') + for sub_index, sub_verse in enumerate(sub_verses): + verse_def = verse_tag + verse_number + # We have more than one sub verse, consequently we need "v1a". + if len(sub_verses) > 1: + verse_def += list(u'abcdefghijklmnopqrstuvwxyz')[sub_index] + element = \ + self._add_text_to_element(u'verse', lyrics, None, verse_def) + if verse[0].has_key(u'lang'): + element.set(u'lang', verse[0][u'lang']) + element = self._add_text_to_element(u'lines', element) + for line in sub_verse.strip(u'\n').split(u'\n'): + self._add_text_to_element(u'line', element, line) return self._extract_xml(song_xml) def xml_to_song(self, xml): @@ -446,6 +454,7 @@ class OpenLyrics(object): The song object. """ sxml = SongXML() + verses = {} for verse in lyrics.verse: text = u'' for lines in verse.lines: @@ -465,7 +474,13 @@ class OpenLyrics(object): lang = None if self._get(verse, u'lang'): lang = self._get(verse, u'lang') - sxml.add_verse_to_lyrics(verse_tag, verse_number, text, lang) + if verses.has_key((verse_tag, verse_number, lang)): + verses[(verse_tag, verse_number, lang)] += u'\n[---]\n' + text + else: + verses[(verse_tag, verse_number, lang)] = text + for verse in verses: + sxml.add_verse_to_lyrics( + verse[0], verse[1], verses[verse], verse[2]) song.lyrics = unicode(sxml.extract_xml(), u'utf-8') # Process verse order if hasattr(properties, u'verseOrder'): From 239b62a488d2cdda553cecb1e75ce1b0eab1c1a4 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 28 Mar 2011 18:04:31 +0100 Subject: [PATCH 04/94] Render Ester 8:9 on more than 1 page --- openlp/core/lib/rendermanager.py | 109 ++++++++++++++----------- openlp/core/lib/serviceitem.py | 14 ++-- openlp/plugins/bibles/lib/mediaitem.py | 1 + openlp/plugins/custom/lib/mediaitem.py | 1 + openlp/plugins/songs/lib/mediaitem.py | 1 + 5 files changed, 74 insertions(+), 52 deletions(-) diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index d866fd115..c3acc8c34 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -29,7 +29,8 @@ import logging from PyQt4 import QtCore, QtWebKit from openlp.core.lib import ServiceItem, ImageManager, expand_tags, \ - build_lyrics_format_css, build_lyrics_outline_css, Receiver + build_lyrics_format_css, build_lyrics_outline_css, Receiver, \ + ItemCapabilities from openlp.core.lib.theme import ThemeLevel from openlp.core.ui import MainDisplay @@ -77,8 +78,6 @@ class RenderManager(object): self.override_background = None self.theme_data = None self.force_page = False - self.r_theme_name = None - self._r_theme = None def update_display(self): """ @@ -157,19 +156,16 @@ class RenderManager(object): self.theme = self.service_theme else: self.theme = self.global_theme - if self.theme != self.r_theme_name or self.theme_data is None \ - or overrideLevels: - log.debug(u'theme is now %s', self.theme) - # Force the theme to be the one passed in. - if overrideLevels: - self.theme_data = theme - else: - self.theme_data = self.theme_manager.getThemeData(self.theme) - self._calculate_default(self.screens.current[u'size']) - self._set_theme(self.theme_data) - self._build_text_rectangle(self.theme_data) - self.image_manager.add_image(self.theme_data.theme_name, - self.theme_data.background_filename) + log.debug(u'theme is now %s', self.theme) + # Force the theme to be the one passed in. + if overrideLevels: + self.theme_data = theme + else: + self.theme_data = self.theme_manager.getThemeData(self.theme) + self._calculate_default(self.screens.current[u'size']) + self._build_text_rectangle(self.theme_data) + self.image_manager.add_image(self.theme_data.theme_name, + self.theme_data.background_filename) return self._rect, self._rect_footer def generate_preview(self, theme_data, force_page=False): @@ -207,18 +203,29 @@ class RenderManager(object): self._calculate_default(self.screens.current[u'size']) return preview - def format_slide(self, words, line_break): + def format_slide(self, slide, line_break, item): """ Calculate how much text can fit on a slide. - ``words`` + ``slide`` The words to go on the slides. ``line_break`` Add line endings after each line of text used for bibles. """ log.debug(u'format slide') - return self._format_slide(words, line_break, self.force_page) + # clean up line endings + slide = slide.replace(u'\r\n', u'\n') + lines = self._lines(slide) + pages = self._paginate_slide(lines, line_break, self.force_page) + if len(pages) > 1: + if item.is_capable(ItemCapabilities.AllowsVirtualSplit): + lines = self._words(slide) + pages = self._paginate_slide(lines, line_break, self.force_page) + elif item.is_capable(ItemCapabilities.AllowsWordSplit): + lines = self._words(slide) + pages = self._paginate_slide(lines, False, self.force_page) + return pages def _calculate_default(self, screen): """ @@ -261,17 +268,6 @@ class RenderManager(object): theme.font_footer_height - 1) self._set_text_rectangle(main_rect, footer_rect) - def _set_theme(self, theme): - """ - Set the theme to be used. - - ``theme`` - The theme to be used. - """ - log.debug(u'set theme') - self._r_theme = theme - self.r_theme_name = theme.theme_name - def _set_text_rectangle(self, rect_main, rect_footer): """ Sets the rectangle within which text should be rendered. @@ -287,9 +283,9 @@ class RenderManager(object): self._rect_footer = rect_footer self.page_width = self._rect.width() self.page_height = self._rect.height() - if self._r_theme.font_main_shadow: - self.page_width -= int(self._r_theme.font_main_shadow_size) - self.page_height -= int(self._r_theme.font_main_shadow_size) + if self.theme_data.font_main_shadow: + self.page_width -= int(self.theme_data.font_main_shadow_size) + self.page_height -= int(self.theme_data.font_main_shadow_size) self.web = QtWebKit.QWebView() self.web.setVisible(False) self.web.resize(self.page_width, self.page_height) @@ -299,16 +295,16 @@ class RenderManager(object): u'*{margin: 0; padding: 0; border: 0;} '\ u'#main {position:absolute; top:0px; %s %s}' \ u'
' % \ - (build_lyrics_format_css(self._r_theme, self.page_width, - self.page_height), build_lyrics_outline_css(self._r_theme)) + (build_lyrics_format_css(self.theme_data, self.page_width, + self.page_height), build_lyrics_outline_css(self.theme_data)) - def _format_slide(self, words, line_break, force_page=False): + def _paginate_slide(self, lines, line_break, force_page=False): """ Figure out how much text can appear on a slide, using the current theme settings. - ``words`` - The words to be fitted on the slide. + ``lines`` + The words to be fitted on the slide split into lines. ``line_break`` Add line endings after each line of text used for bibles. @@ -321,18 +317,11 @@ class RenderManager(object): line_end = u'' if line_break: line_end = u'
' - words = words.replace(u'\r\n', u'\n') - verses_text = words.split(u'\n') - text = [] - for verse in verses_text: - lines = verse.split(u'\n') - for line in lines: - text.append(line) formatted = [] html_text = u'' styled_text = u'' line_count = 0 - for line in text: + for line in lines: if line_count != -1: line_count += 1 styled_line = expand_tags(line) + line_end @@ -356,3 +345,31 @@ class RenderManager(object): log.debug(u'format_slide - End') return formatted + def _lines(self, words): + """ + Split the slide up by physical line + """ + # this parse we do not want to use this so remove it + words = words.replace(u'[---]', u'') + verses_text = words.split(u'\n') + text = [] + for verse in verses_text: + lines = verse.split(u'\n') + for line in lines: + text.append(line) + return text + + def _words(self, words): + """ + Split the slide up by word so can wrap better + """ + # this parse we are wordy + words = words.replace(u'\n', u' ') + verses_text = words.split(u' ') + text = [] + for verse in verses_text: + lines = verse.split(u' ') + for line in lines: + text.append(line + u' ') + return text + diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 7496bc6b0..f996c3f97 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -63,6 +63,8 @@ class ItemCapabilities(object): ProvidesOwnDisplay = 10 AllowsDetailedTitleDisplay = 11 AllowsVariableStartTime = 12 + AllowsVirtualSplit = 13 + AllowsWordSplit = 14 class ServiceItem(object): @@ -81,7 +83,7 @@ class ServiceItem(object): The plugin that this service item belongs to. """ if plugin: - self.render_manager = plugin.renderManager + self.renderer = plugin.renderManager self.name = plugin.name self.title = u'' self.shortname = u'' @@ -166,13 +168,13 @@ class ServiceItem(object): line_break = False theme = self.theme if self.theme else None self.main, self.footer = \ - self.render_manager.set_override_theme(theme, useOverride) - self.themedata = self.render_manager._r_theme + self.renderer.set_override_theme(theme, useOverride) + self.themedata = self.renderer.theme_data if self.service_item_type == ServiceItemType.Text: log.debug(u'Formatting slides') for slide in self._raw_frames: - formatted = self.render_manager \ - .format_slide(slide[u'raw_slide'], line_break) + formatted = self.renderer \ + .format_slide(slide[u'raw_slide'], line_break, self) for page in formatted: self._display_frames.append( {u'title': clean_tags(page), @@ -205,7 +207,7 @@ class ServiceItem(object): """ self.service_item_type = ServiceItemType.Image self._raw_frames.append({u'title': title, u'path': path}) - self.render_manager.image_manager.add_image(title, path) + self.renderer.image_manager.add_image(title, path) self._new_item() def add_from_text(self, title, raw_slide, verse_tag=None): diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index a9694fd0c..405507523 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -685,6 +685,7 @@ class BibleMediaItem(MediaManagerItem): service_item.add_capability(ItemCapabilities.NoLineBreaks) service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) + service_item.add_capability(ItemCapabilities.AllowsWordSplit) # Service Item: Title service_item.title = u', '.join(raw_title) # Service Item: Theme diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 69265ed75..0bb9c3aa8 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -139,6 +139,7 @@ class CustomMediaItem(MediaManagerItem): service_item.add_capability(ItemCapabilities.AllowsEdit) service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) + service_item.add_capability(ItemCapabilities.AllowsVirtualSplit) customSlide = self.parent.manager.get_object(CustomSlide, item_id) title = customSlide.title credit = customSlide.credits diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 723b6c5d5..72509fab1 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -337,6 +337,7 @@ class SongMediaItem(MediaManagerItem): service_item.add_capability(ItemCapabilities.AllowsLoop) service_item.add_capability(ItemCapabilities.OnLoadUpdate) service_item.add_capability(ItemCapabilities.AddIfNewItem) + service_item.add_capability(ItemCapabilities.AllowsVirtualSplit) song = self.parent.manager.get_object(Song, item_id) service_item.theme = song.theme_name service_item.edit_id = item_id From 9aa6bba3a265b88b6a6addc7843cdcc9b18764af Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 28 Mar 2011 19:01:58 +0100 Subject: [PATCH 05/94] Virtual Splits now work --- openlp/core/lib/rendermanager.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index c3acc8c34..43210259a 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -220,8 +220,15 @@ class RenderManager(object): pages = self._paginate_slide(lines, line_break, self.force_page) if len(pages) > 1: if item.is_capable(ItemCapabilities.AllowsVirtualSplit): - lines = self._words(slide) - pages = self._paginate_slide(lines, line_break, self.force_page) + # do not forget the line breaks ! + slides = slide.split(u'\n[###]\n') + pages = [] + for slide in slides: + lines = self._lines(slide) + new_pages = self._paginate_slide(lines, line_break, + self.force_page) + for page in new_pages: + pages.append(page) elif item.is_capable(ItemCapabilities.AllowsWordSplit): lines = self._words(slide) pages = self._paginate_slide(lines, False, self.force_page) From c8a7594685c4babfe5e02b27645d46ccda89ac56 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 28 Mar 2011 19:12:46 +0100 Subject: [PATCH 06/94] Bye Bye RenderManager --- openlp/core/lib/__init__.py | 2 +- openlp/core/lib/renderer.py | 356 ++++++++++++++++++++++++++++ openlp/core/lib/rendermanager.py | 382 ------------------------------ openlp/core/ui/mainwindow.py | 12 +- openlp/core/ui/servicemanager.py | 6 +- openlp/core/ui/slidecontroller.py | 2 +- openlp/core/ui/themestab.py | 2 +- 7 files changed, 368 insertions(+), 394 deletions(-) delete mode 100644 openlp/core/lib/rendermanager.py diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index 6f43a7bf2..dc25fae0f 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -338,5 +338,5 @@ from htmlbuilder import build_html, build_lyrics_format_css, \ build_lyrics_outline_css from toolbar import OpenLPToolbar from dockwidget import OpenLPDockWidget -from rendermanager import RenderManager +from renderer import Renderer from mediamanageritem import MediaManagerItem diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index a866072e7..9256eb096 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -24,3 +24,359 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +import logging + +from PyQt4 import QtCore, QtWebKit + +from openlp.core.lib import ServiceItem, ImageManager, expand_tags, \ + build_lyrics_format_css, build_lyrics_outline_css, Receiver, \ + ItemCapabilities +from openlp.core.lib.theme import ThemeLevel +from openlp.core.ui import MainDisplay + +log = logging.getLogger(__name__) + +VERSE = u'The Lord said to {r}Noah{/r}: \n' \ + 'There\'s gonna be a {su}floody{/su}, {sb}floody{/sb}\n' \ + 'The Lord said to {g}Noah{/g}:\n' \ + 'There\'s gonna be a {st}floody{/st}, {it}floody{/it}\n' \ + 'Get those children out of the muddy, muddy \n' \ + '{r}C{/r}{b}h{/b}{bl}i{/bl}{y}l{/y}{g}d{/g}{pk}' \ + 'r{/pk}{o}e{/o}{pp}n{/pp} of the Lord\n' +FOOTER = [u'Arky Arky (Unknown)', u'Public Domain', u'CCLI 123456'] + +class Renderer(object): + """ + Class to pull all Renderer interactions into one place. The plugins will + call helper methods to do the rendering but this class will provide + display defense code. + + ``theme_manager`` + The ThemeManager instance, used to get the current theme details. + + ``screens`` + Contains information about the Screens. + + ``screen_number`` + Defaults to *0*. The index of the output/display screen. + """ + log.info(u'RenderManager Loaded') + + def __init__(self, theme_manager, screens): + """ + Initialise the render manager. + """ + log.debug(u'Initilisation started') + self.screens = screens + self.image_manager = ImageManager() + self.display = MainDisplay(self, screens, False) + self.display.imageManager = self.image_manager + self.theme_manager = theme_manager + self.theme = u'' + self.service_theme = u'' + self.theme_level = u'' + self.override_background = None + self.theme_data = None + self.force_page = False + + def update_display(self): + """ + Updates the render manager's information about the current screen. + """ + log.debug(u'Update Display') + self._calculate_default(self.screens.current[u'size']) + self.display = MainDisplay(self, self.screens, False) + self.display.imageManager = self.image_manager + self.display.setup() + self.bg_frame = None + self.theme_data = None + self.image_manager.update_display(self.width, self.height) + + def set_global_theme(self, global_theme, theme_level=ThemeLevel.Global): + """ + Set the global-level theme and the theme level. + + ``global_theme`` + The global-level theme to be set. + + ``theme_level`` + Defaults to *``ThemeLevel.Global``*. The theme level, can be + ``ThemeLevel.Global``, ``ThemeLevel.Service`` or + ``ThemeLevel.Song``. + """ + self.global_theme = global_theme + self.theme_level = theme_level + self.global_theme_data = \ + self.theme_manager.getThemeData(self.global_theme) + self.theme_data = None + + def set_service_theme(self, service_theme): + """ + Set the service-level theme. + + ``service_theme`` + The service-level theme to be set. + """ + self.service_theme = service_theme + self.theme_data = None + + def set_override_theme(self, theme, overrideLevels=False): + """ + Set the appropriate theme depending on the theme level. + Called by the service item when building a display frame + + ``theme`` + The name of the song-level theme. None means the service + item wants to use the given value. + + ``overrideLevels`` + Used to force the theme data passed in to be used. + + """ + log.debug(u'set override theme to %s', theme) + theme_level = self.theme_level + if overrideLevels: + theme_level = ThemeLevel.Song + if theme_level == ThemeLevel.Global: + self.theme = self.global_theme + elif theme_level == ThemeLevel.Service: + if self.service_theme == u'': + self.theme = self.global_theme + else: + self.theme = self.service_theme + else: + # Images have a theme of -1 + if theme and theme != -1: + self.theme = theme + elif theme_level == ThemeLevel.Song or \ + theme_level == ThemeLevel.Service: + if self.service_theme == u'': + self.theme = self.global_theme + else: + self.theme = self.service_theme + else: + self.theme = self.global_theme + log.debug(u'theme is now %s', self.theme) + # Force the theme to be the one passed in. + if overrideLevels: + self.theme_data = theme + else: + self.theme_data = self.theme_manager.getThemeData(self.theme) + self._calculate_default(self.screens.current[u'size']) + self._build_text_rectangle(self.theme_data) + self.image_manager.add_image(self.theme_data.theme_name, + self.theme_data.background_filename) + return self._rect, self._rect_footer + + def generate_preview(self, theme_data, force_page=False): + """ + Generate a preview of a theme. + + ``theme_data`` + The theme to generated a preview for. + + ``force_page`` + Flag to tell message lines per page need to be generated. + """ + log.debug(u'generate preview') + # save value for use in format_slide + self.force_page = force_page + # set the default image size for previews + self.calculate_default(self.screens.preview[u'size']) + # build a service item to generate preview + serviceItem = ServiceItem() + serviceItem.theme = theme_data + if self.force_page: + # make big page for theme edit dialog to get line count + serviceItem.add_from_text(u'', VERSE + VERSE + VERSE, FOOTER) + else: + self.image_manager.del_image(theme_data.theme_name) + serviceItem.add_from_text(u'', VERSE, FOOTER) + serviceItem.render_manager = self + serviceItem.raw_footer = FOOTER + serviceItem.render(True) + if not self.force_page: + self.display.buildHtml(serviceItem) + raw_html = serviceItem.get_rendered_frame(0) + preview = self.display.text(raw_html) + # Reset the real screen size for subsequent render requests + self._calculate_default(self.screens.current[u'size']) + return preview + + def format_slide(self, slide, line_break, item): + """ + Calculate how much text can fit on a slide. + + ``slide`` + The words to go on the slides. + + ``line_break`` + Add line endings after each line of text used for bibles. + """ + log.debug(u'format slide') + # clean up line endings + slide = slide.replace(u'\r\n', u'\n') + lines = self._lines(slide) + pages = self._paginate_slide(lines, line_break, self.force_page) + if len(pages) > 1: + if item.is_capable(ItemCapabilities.AllowsVirtualSplit): + # do not forget the line breaks ! + slides = slide.split(u'\n[###]\n') + pages = [] + for slide in slides: + lines = self._lines(slide) + new_pages = self._paginate_slide(lines, line_break, + self.force_page) + for page in new_pages: + pages.append(page) + elif item.is_capable(ItemCapabilities.AllowsWordSplit): + lines = self._words(slide) + pages = self._paginate_slide(lines, False, self.force_page) + return pages + + def _calculate_default(self, screen): + """ + Calculate the default dimentions of the screen. + + ``screen`` + The QSize of the screen. + """ + log.debug(u'calculate default %s', screen) + self.width = screen.width() + self.height = screen.height() + self.screen_ratio = float(self.height) / float(self.width) + log.debug(u'calculate default %d, %d, %f', + self.width, self.height, self.screen_ratio) + # 90% is start of footer + self.footer_start = int(self.height * 0.90) + + def _build_text_rectangle(self, theme): + """ + Builds a text block using the settings in ``theme`` + and the size of the display screen.height. + + ``theme`` + The theme to build a text block for. + """ + log.debug(u'_build_text_rectangle') + main_rect = None + footer_rect = None + if not theme.font_main_override: + main_rect = QtCore.QRect(10, 0, self.width - 20, self.footer_start) + else: + main_rect = QtCore.QRect(theme.font_main_x, theme.font_main_y, + theme.font_main_width - 1, theme.font_main_height - 1) + if not theme.font_footer_override: + footer_rect = QtCore.QRect(10, self.footer_start, self.width - 20, + self.height - self.footer_start) + else: + footer_rect = QtCore.QRect(theme.font_footer_x, + theme.font_footer_y, theme.font_footer_width - 1, + theme.font_footer_height - 1) + self._set_text_rectangle(main_rect, footer_rect) + + def _set_text_rectangle(self, rect_main, rect_footer): + """ + Sets the rectangle within which text should be rendered. + + ``rect_main`` + The main text block. + + ``rect_footer`` + The footer text block. + """ + log.debug(u'set_text_rectangle %s , %s' % (rect_main, rect_footer)) + self._rect = rect_main + self._rect_footer = rect_footer + self.page_width = self._rect.width() + self.page_height = self._rect.height() + if self.theme_data.font_main_shadow: + self.page_width -= int(self.theme_data.font_main_shadow_size) + self.page_height -= int(self.theme_data.font_main_shadow_size) + self.web = QtWebKit.QWebView() + self.web.setVisible(False) + self.web.resize(self.page_width, self.page_height) + self.web_frame = self.web.page().mainFrame() + # Adjust width and height to account for shadow. outline done in css + self.page_shell = u'' \ + u'
' % \ + (build_lyrics_format_css(self.theme_data, self.page_width, + self.page_height), build_lyrics_outline_css(self.theme_data)) + + def _paginate_slide(self, lines, line_break, force_page=False): + """ + Figure out how much text can appear on a slide, using the current + theme settings. + + ``lines`` + The words to be fitted on the slide split into lines. + + ``line_break`` + Add line endings after each line of text used for bibles. + + ``force_page`` + Flag to tell message lines in page. + + """ + log.debug(u'format_slide - Start') + line_end = u'' + if line_break: + line_end = u'
' + formatted = [] + html_text = u'' + styled_text = u'' + line_count = 0 + for line in lines: + if line_count != -1: + line_count += 1 + styled_line = expand_tags(line) + line_end + styled_text += styled_line + html = self.page_shell + styled_text + u'
' + self.web.setHtml(html) + # Text too long so go to next page + if self.web_frame.contentsSize().height() > self.page_height: + if force_page and line_count > 0: + Receiver.send_message(u'theme_line_count', line_count) + line_count = -1 + if html_text.endswith(u'
'): + html_text = html_text[:len(html_text)-4] + formatted.append(html_text) + html_text = u'' + styled_text = styled_line + html_text += line + line_end + if html_text.endswith(u'
'): + html_text = html_text[:len(html_text)-4] + formatted.append(html_text) + log.debug(u'format_slide - End') + return formatted + + def _lines(self, words): + """ + Split the slide up by physical line + """ + # this parse we do not want to use this so remove it + words = words.replace(u'[---]', u'') + verses_text = words.split(u'\n') + text = [] + for verse in verses_text: + lines = verse.split(u'\n') + for line in lines: + text.append(line) + return text + + def _words(self, words): + """ + Split the slide up by word so can wrap better + """ + # this parse we are wordy + words = words.replace(u'\n', u' ') + verses_text = words.split(u' ') + text = [] + for verse in verses_text: + lines = verse.split(u' ') + for line in lines: + text.append(line + u' ') + return text + diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py deleted file mode 100644 index 43210259a..000000000 --- a/openlp/core/lib/rendermanager.py +++ /dev/null @@ -1,382 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2011 Raoul Snyman # -# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # -# Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, Armin Köhler, # -# Andreas Preikschat, Mattias Põldaru, Christian Richter, Philip Ridout, # -# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Frode Woldsund # -# --------------------------------------------------------------------------- # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the Free # -# Software Foundation; version 2 of the License. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with this program; if not, write to the Free Software Foundation, Inc., 59 # -# Temple Place, Suite 330, Boston, MA 02111-1307 USA # -############################################################################### - -import logging - -from PyQt4 import QtCore, QtWebKit - -from openlp.core.lib import ServiceItem, ImageManager, expand_tags, \ - build_lyrics_format_css, build_lyrics_outline_css, Receiver, \ - ItemCapabilities -from openlp.core.lib.theme import ThemeLevel -from openlp.core.ui import MainDisplay - -log = logging.getLogger(__name__) - -VERSE = u'The Lord said to {r}Noah{/r}: \n' \ - 'There\'s gonna be a {su}floody{/su}, {sb}floody{/sb}\n' \ - 'The Lord said to {g}Noah{/g}:\n' \ - 'There\'s gonna be a {st}floody{/st}, {it}floody{/it}\n' \ - 'Get those children out of the muddy, muddy \n' \ - '{r}C{/r}{b}h{/b}{bl}i{/bl}{y}l{/y}{g}d{/g}{pk}' \ - 'r{/pk}{o}e{/o}{pp}n{/pp} of the Lord\n' -FOOTER = [u'Arky Arky (Unknown)', u'Public Domain', u'CCLI 123456'] - -class RenderManager(object): - """ - Class to pull all Renderer interactions into one place. The plugins will - call helper methods to do the rendering but this class will provide - display defense code. - - ``theme_manager`` - The ThemeManager instance, used to get the current theme details. - - ``screens`` - Contains information about the Screens. - - ``screen_number`` - Defaults to *0*. The index of the output/display screen. - """ - log.info(u'RenderManager Loaded') - - def __init__(self, theme_manager, screens): - """ - Initialise the render manager. - """ - log.debug(u'Initilisation started') - self.screens = screens - self.image_manager = ImageManager() - self.display = MainDisplay(self, screens, False) - self.display.imageManager = self.image_manager - self.theme_manager = theme_manager - self.theme = u'' - self.service_theme = u'' - self.theme_level = u'' - self.override_background = None - self.theme_data = None - self.force_page = False - - def update_display(self): - """ - Updates the render manager's information about the current screen. - """ - log.debug(u'Update Display') - self._calculate_default(self.screens.current[u'size']) - self.display = MainDisplay(self, self.screens, False) - self.display.imageManager = self.image_manager - self.display.setup() - self.bg_frame = None - self.theme_data = None - self.image_manager.update_display(self.width, self.height) - - def set_global_theme(self, global_theme, theme_level=ThemeLevel.Global): - """ - Set the global-level theme and the theme level. - - ``global_theme`` - The global-level theme to be set. - - ``theme_level`` - Defaults to *``ThemeLevel.Global``*. The theme level, can be - ``ThemeLevel.Global``, ``ThemeLevel.Service`` or - ``ThemeLevel.Song``. - """ - self.global_theme = global_theme - self.theme_level = theme_level - self.global_theme_data = \ - self.theme_manager.getThemeData(self.global_theme) - self.theme_data = None - - def set_service_theme(self, service_theme): - """ - Set the service-level theme. - - ``service_theme`` - The service-level theme to be set. - """ - self.service_theme = service_theme - self.theme_data = None - - def set_override_theme(self, theme, overrideLevels=False): - """ - Set the appropriate theme depending on the theme level. - Called by the service item when building a display frame - - ``theme`` - The name of the song-level theme. None means the service - item wants to use the given value. - - ``overrideLevels`` - Used to force the theme data passed in to be used. - - """ - log.debug(u'set override theme to %s', theme) - theme_level = self.theme_level - if overrideLevels: - theme_level = ThemeLevel.Song - if theme_level == ThemeLevel.Global: - self.theme = self.global_theme - elif theme_level == ThemeLevel.Service: - if self.service_theme == u'': - self.theme = self.global_theme - else: - self.theme = self.service_theme - else: - # Images have a theme of -1 - if theme and theme != -1: - self.theme = theme - elif theme_level == ThemeLevel.Song or \ - theme_level == ThemeLevel.Service: - if self.service_theme == u'': - self.theme = self.global_theme - else: - self.theme = self.service_theme - else: - self.theme = self.global_theme - log.debug(u'theme is now %s', self.theme) - # Force the theme to be the one passed in. - if overrideLevels: - self.theme_data = theme - else: - self.theme_data = self.theme_manager.getThemeData(self.theme) - self._calculate_default(self.screens.current[u'size']) - self._build_text_rectangle(self.theme_data) - self.image_manager.add_image(self.theme_data.theme_name, - self.theme_data.background_filename) - return self._rect, self._rect_footer - - def generate_preview(self, theme_data, force_page=False): - """ - Generate a preview of a theme. - - ``theme_data`` - The theme to generated a preview for. - - ``force_page`` - Flag to tell message lines per page need to be generated. - """ - log.debug(u'generate preview') - # save value for use in format_slide - self.force_page = force_page - # set the default image size for previews - self.calculate_default(self.screens.preview[u'size']) - # build a service item to generate preview - serviceItem = ServiceItem() - serviceItem.theme = theme_data - if self.force_page: - # make big page for theme edit dialog to get line count - serviceItem.add_from_text(u'', VERSE + VERSE + VERSE, FOOTER) - else: - self.image_manager.del_image(theme_data.theme_name) - serviceItem.add_from_text(u'', VERSE, FOOTER) - serviceItem.render_manager = self - serviceItem.raw_footer = FOOTER - serviceItem.render(True) - if not self.force_page: - self.display.buildHtml(serviceItem) - raw_html = serviceItem.get_rendered_frame(0) - preview = self.display.text(raw_html) - # Reset the real screen size for subsequent render requests - self._calculate_default(self.screens.current[u'size']) - return preview - - def format_slide(self, slide, line_break, item): - """ - Calculate how much text can fit on a slide. - - ``slide`` - The words to go on the slides. - - ``line_break`` - Add line endings after each line of text used for bibles. - """ - log.debug(u'format slide') - # clean up line endings - slide = slide.replace(u'\r\n', u'\n') - lines = self._lines(slide) - pages = self._paginate_slide(lines, line_break, self.force_page) - if len(pages) > 1: - if item.is_capable(ItemCapabilities.AllowsVirtualSplit): - # do not forget the line breaks ! - slides = slide.split(u'\n[###]\n') - pages = [] - for slide in slides: - lines = self._lines(slide) - new_pages = self._paginate_slide(lines, line_break, - self.force_page) - for page in new_pages: - pages.append(page) - elif item.is_capable(ItemCapabilities.AllowsWordSplit): - lines = self._words(slide) - pages = self._paginate_slide(lines, False, self.force_page) - return pages - - def _calculate_default(self, screen): - """ - Calculate the default dimentions of the screen. - - ``screen`` - The QSize of the screen. - """ - log.debug(u'calculate default %s', screen) - self.width = screen.width() - self.height = screen.height() - self.screen_ratio = float(self.height) / float(self.width) - log.debug(u'calculate default %d, %d, %f', - self.width, self.height, self.screen_ratio) - # 90% is start of footer - self.footer_start = int(self.height * 0.90) - - def _build_text_rectangle(self, theme): - """ - Builds a text block using the settings in ``theme`` - and the size of the display screen.height. - - ``theme`` - The theme to build a text block for. - """ - log.debug(u'_build_text_rectangle') - main_rect = None - footer_rect = None - if not theme.font_main_override: - main_rect = QtCore.QRect(10, 0, self.width - 20, self.footer_start) - else: - main_rect = QtCore.QRect(theme.font_main_x, theme.font_main_y, - theme.font_main_width - 1, theme.font_main_height - 1) - if not theme.font_footer_override: - footer_rect = QtCore.QRect(10, self.footer_start, self.width - 20, - self.height - self.footer_start) - else: - footer_rect = QtCore.QRect(theme.font_footer_x, - theme.font_footer_y, theme.font_footer_width - 1, - theme.font_footer_height - 1) - self._set_text_rectangle(main_rect, footer_rect) - - def _set_text_rectangle(self, rect_main, rect_footer): - """ - Sets the rectangle within which text should be rendered. - - ``rect_main`` - The main text block. - - ``rect_footer`` - The footer text block. - """ - log.debug(u'set_text_rectangle %s , %s' % (rect_main, rect_footer)) - self._rect = rect_main - self._rect_footer = rect_footer - self.page_width = self._rect.width() - self.page_height = self._rect.height() - if self.theme_data.font_main_shadow: - self.page_width -= int(self.theme_data.font_main_shadow_size) - self.page_height -= int(self.theme_data.font_main_shadow_size) - self.web = QtWebKit.QWebView() - self.web.setVisible(False) - self.web.resize(self.page_width, self.page_height) - self.web_frame = self.web.page().mainFrame() - # Adjust width and height to account for shadow. outline done in css - self.page_shell = u'' \ - u'
' % \ - (build_lyrics_format_css(self.theme_data, self.page_width, - self.page_height), build_lyrics_outline_css(self.theme_data)) - - def _paginate_slide(self, lines, line_break, force_page=False): - """ - Figure out how much text can appear on a slide, using the current - theme settings. - - ``lines`` - The words to be fitted on the slide split into lines. - - ``line_break`` - Add line endings after each line of text used for bibles. - - ``force_page`` - Flag to tell message lines in page. - - """ - log.debug(u'format_slide - Start') - line_end = u'' - if line_break: - line_end = u'
' - formatted = [] - html_text = u'' - styled_text = u'' - line_count = 0 - for line in lines: - if line_count != -1: - line_count += 1 - styled_line = expand_tags(line) + line_end - styled_text += styled_line - html = self.page_shell + styled_text + u'
' - self.web.setHtml(html) - # Text too long so go to next page - if self.web_frame.contentsSize().height() > self.page_height: - if force_page and line_count > 0: - Receiver.send_message(u'theme_line_count', line_count) - line_count = -1 - if html_text.endswith(u'
'): - html_text = html_text[:len(html_text)-4] - formatted.append(html_text) - html_text = u'' - styled_text = styled_line - html_text += line + line_end - if html_text.endswith(u'
'): - html_text = html_text[:len(html_text)-4] - formatted.append(html_text) - log.debug(u'format_slide - End') - return formatted - - def _lines(self, words): - """ - Split the slide up by physical line - """ - # this parse we do not want to use this so remove it - words = words.replace(u'[---]', u'') - verses_text = words.split(u'\n') - text = [] - for verse in verses_text: - lines = verse.split(u'\n') - for line in lines: - text.append(line) - return text - - def _words(self, words): - """ - Split the slide up by word so can wrap better - """ - # this parse we are wordy - words = words.replace(u'\n', u' ') - verses_text = words.split(u' ') - text = [] - for verse in verses_text: - lines = verse.split(u' ') - for line in lines: - text.append(line + u' ') - return text - diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 594c6cc91..e94273122 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -30,7 +30,7 @@ from tempfile import gettempdir from PyQt4 import QtCore, QtGui -from openlp.core.lib import RenderManager, build_icon, OpenLPDockWidget, \ +from openlp.core.lib import Renderer, build_icon, OpenLPDockWidget, \ SettingsManager, PluginManager, Receiver, translate from openlp.core.lib.ui import UiStrings, base_action, checkable_action, \ icon_action @@ -587,9 +587,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.SIGNAL(u'openlp_information_message'), self.onInformationMessage) # warning cyclic dependency - # RenderManager needs to call ThemeManager and - # ThemeManager needs to call RenderManager - self.renderManager = RenderManager( + # renderer needs to call ThemeManager and + # ThemeManager needs to call renderer + self.renderer = Renderer( self.themeManagerContents, self.screens) # Define the media Dock Manager self.mediaDockManager = MediaDockManager(self.MediaToolBox) @@ -597,7 +597,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): # make the controllers available to the plugins self.pluginHelpers[u'preview'] = self.previewController self.pluginHelpers[u'live'] = self.liveController - self.pluginHelpers[u'render'] = self.renderManager + self.pluginHelpers[u'render'] = self.renderer self.pluginHelpers[u'service'] = self.ServiceManagerContents self.pluginHelpers[u'settings form'] = self.settingsForm self.pluginHelpers[u'toolbox'] = self.mediaDockManager @@ -818,7 +818,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): their locations """ log.debug(u'screenChanged') - self.renderManager.update_display() + self.renderer.update_display() self.setFocus() self.activateWindow() diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 168ad8a8c..61dc4e3da 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -970,7 +970,7 @@ class ServiceManager(QtGui.QWidget): sure the theme combo box is in the correct state. """ log.debug(u'themeChange') - if self.mainwindow.renderManager.theme_level == ThemeLevel.Global: + if self.mainwindow.renderer.theme_level == ThemeLevel.Global: self.toolbar.actions[u'ThemeLabel'].setVisible(False) self.toolbar.actions[u'ThemeWidget'].setVisible(False) else: @@ -985,7 +985,7 @@ class ServiceManager(QtGui.QWidget): Receiver.send_message(u'cursor_busy') log.debug(u'regenerateServiceItems') # force reset of renderer as theme data has changed - self.mainwindow.renderManager.themedata = None + self.mainwindow.renderer.themedata = None if self.serviceItems: tempServiceItems = self.serviceItems self.serviceManagerList.clear() @@ -1250,7 +1250,7 @@ class ServiceManager(QtGui.QWidget): index = 0 self.service_theme = u'' self.themeComboBox.setCurrentIndex(index) - self.mainwindow.renderManager.set_service_theme(self.service_theme) + self.mainwindow.renderer.set_service_theme(self.service_theme) self.regenerateServiceItems() def onThemeChangeAction(self): diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 232653326..ee617287a 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -407,7 +407,7 @@ class SlideController(QtGui.QWidget): """ # rebuild display as screen size changed self.display = MainDisplay(self, self.screens, self.isLive) - self.display.imageManager = self.parent.renderManager.image_manager + self.display.imageManager = self.parent.renderer.image_manager self.display.alertTab = self.alertTab self.display.setup() if self.isLive: diff --git a/openlp/core/ui/themestab.py b/openlp/core/ui/themestab.py index 1b76d2198..1e6ddb4a8 100644 --- a/openlp/core/ui/themestab.py +++ b/openlp/core/ui/themestab.py @@ -191,7 +191,7 @@ class ThemesTab(SettingsTab): id = 0 # Not Found self.global_theme = u'' self.DefaultComboBox.setCurrentIndex(id) - self.parent.renderManager.set_global_theme( + self.parent.renderer.set_global_theme( self.global_theme, self.theme_level) if self.global_theme is not u'': self.__previewGlobalTheme() From 2ba0d410fc33f8d739b06645fb1ed5d23b1e99e6 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 28 Mar 2011 19:56:39 +0100 Subject: [PATCH 07/94] More Cleanups --- openlp/core/lib/plugin.py | 2 +- openlp/core/lib/renderer.py | 2 +- openlp/core/lib/serviceitem.py | 4 ++-- openlp/core/ui/mainwindow.py | 4 ++-- openlp/core/ui/servicemanager.py | 4 ++-- openlp/core/ui/slidecontroller.py | 12 ++++++------ openlp/core/ui/thememanager.py | 6 +++--- openlp/core/ui/themestab.py | 6 +++--- .../plugins/presentations/lib/impresscontroller.py | 4 ++-- .../presentations/lib/powerpointcontroller.py | 6 +++--- .../plugins/presentations/lib/pptviewcontroller.py | 6 +++--- openlp/plugins/songs/forms/editsongform.py | 4 ++-- 12 files changed, 30 insertions(+), 30 deletions(-) diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index eda8ecfa1..375331719 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -160,7 +160,7 @@ class Plugin(QtCore.QObject): self.log = logging.getLogger(self.name) self.previewController = pluginHelpers[u'preview'] self.liveController = pluginHelpers[u'live'] - self.renderManager = pluginHelpers[u'render'] + self.renderer = pluginHelpers[u'renderer'] self.serviceManager = pluginHelpers[u'service'] self.settingsForm = pluginHelpers[u'settings form'] self.mediadock = pluginHelpers[u'toolbox'] diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 9256eb096..c1a866668 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -60,7 +60,7 @@ class Renderer(object): ``screen_number`` Defaults to *0*. The index of the output/display screen. """ - log.info(u'RenderManager Loaded') + log.info(u'Renderer Loaded') def __init__(self, theme_manager, screens): """ diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index f996c3f97..c3e6b17aa 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -83,7 +83,7 @@ class ServiceItem(object): The plugin that this service item belongs to. """ if plugin: - self.renderer = plugin.renderManager + self.renderer = plugin.renderer self.name = plugin.name self.title = u'' self.shortname = u'' @@ -455,4 +455,4 @@ class ServiceItem(object): elif not start and end: return end else: - return u'%s : %s' % (start, end) + return u'%s : %s' % (start, end) \ No newline at end of file diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index e94273122..e305e06cf 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -588,7 +588,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): self.onInformationMessage) # warning cyclic dependency # renderer needs to call ThemeManager and - # ThemeManager needs to call renderer + # ThemeManager needs to call Renderer self.renderer = Renderer( self.themeManagerContents, self.screens) # Define the media Dock Manager @@ -597,7 +597,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): # make the controllers available to the plugins self.pluginHelpers[u'preview'] = self.previewController self.pluginHelpers[u'live'] = self.liveController - self.pluginHelpers[u'render'] = self.renderer + self.pluginHelpers[u'renderer'] = self.renderer self.pluginHelpers[u'service'] = self.ServiceManagerContents self.pluginHelpers[u'settings form'] = self.settingsForm self.pluginHelpers[u'toolbox'] = self.mediaDockManager diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 61dc4e3da..eaa80afac 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -564,7 +564,7 @@ class ServiceManager(QtGui.QWidget): for item in items: serviceItem = ServiceItem() serviceItem.from_service = True - serviceItem.render_manager = self.mainwindow.renderManager + serviceItem.renderer = self.mainwindow.renderer serviceItem.set_from_service(item, self.servicePath) self.validateItem(serviceItem) self.addServiceItem(serviceItem) @@ -958,7 +958,7 @@ class ServiceManager(QtGui.QWidget): """ log.debug(u'onThemeComboBoxSelected') self.service_theme = unicode(self.themeComboBox.currentText()) - self.mainwindow.renderManager.set_service_theme(self.service_theme) + self.mainwindow.renderer.set_service_theme(self.service_theme) QtCore.QSettings().setValue( self.mainwindow.serviceSettingsSection + u'/service theme', QtCore.QVariant(self.service_theme)) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index ee617287a..da14f3b0a 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -618,19 +618,19 @@ class SlideController(QtGui.QWidget): label.setScaledContents(True) if self.serviceItem.is_command(): image = resize_image(frame[u'image'], - self.parent.renderManager.width, - self.parent.renderManager.height) + self.parent.renderer.width, + self.parent.renderer.height) else: # If current slide set background to image if framenumber == slideno: self.serviceItem.bg_image_bytes = \ - self.parent.renderManager.image_manager. \ + self.parent.renderer.image_manager. \ get_image_bytes(frame[u'title']) - image = self.parent.renderManager.image_manager. \ + image = self.parent.renderer.image_manager. \ get_image(frame[u'title']) label.setPixmap(QtGui.QPixmap.fromImage(image)) self.previewListWidget.setCellWidget(framenumber, 0, label) - slideHeight = width * self.parent.renderManager.screen_ratio + slideHeight = width * self.parent.renderer.screen_ratio row += 1 text.append(unicode(row)) self.previewListWidget.setItem(framenumber, 0, item) @@ -1111,4 +1111,4 @@ class SlideController(QtGui.QWidget): blank.setChecked(False) self.hideMenu.setDefaultAction(blank) QtCore.QSettings().remove( - self.parent.generalSettingsSection + u'/screen blank') + self.parent.generalSettingsSection + u'/screen blank') \ No newline at end of file diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index d033daeb3..1356a30b2 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -656,7 +656,7 @@ class ThemeManager(QtGui.QWidget): def generateImage(self, themeData, forcePage=False): """ - Call the RenderManager to build a Sample Image + Call the renderer to build a Sample Image ``themeData`` The theme to generated a preview for. @@ -665,7 +665,7 @@ class ThemeManager(QtGui.QWidget): Flag to tell message lines per page need to be generated. """ log.debug(u'generateImage \n%s ', themeData) - return self.mainwindow.renderManager.generate_preview( + return self.mainwindow.renderer.generate_preview( themeData, forcePage) def getPreviewImage(self, theme): @@ -802,4 +802,4 @@ class ThemeManager(QtGui.QWidget): vAlignCorrection = VerticalType.Bottom newtheme.display_horizontal_align = theme.HorizontalAlign newtheme.display_vertical_align = vAlignCorrection - return newtheme.extract_xml() + return newtheme.extract_xml() \ No newline at end of file diff --git a/openlp/core/ui/themestab.py b/openlp/core/ui/themestab.py index 1e6ddb4a8..27018af07 100644 --- a/openlp/core/ui/themestab.py +++ b/openlp/core/ui/themestab.py @@ -147,7 +147,7 @@ class ThemesTab(SettingsTab): settings.setValue(u'global theme', QtCore.QVariant(self.global_theme)) settings.endGroup() - self.parent.renderManager.set_global_theme( + self.parent.renderer.set_global_theme( self.global_theme, self.theme_level) Receiver.send_message(u'theme_update_global', self.global_theme) @@ -165,7 +165,7 @@ class ThemesTab(SettingsTab): def onDefaultComboBoxChanged(self, value): self.global_theme = unicode(self.DefaultComboBox.currentText()) - self.parent.renderManager.set_global_theme( + self.parent.renderer.set_global_theme( self.global_theme, self.theme_level) self.__previewGlobalTheme() @@ -206,4 +206,4 @@ class ThemesTab(SettingsTab): if not preview.isNull(): preview = preview.scaled(300, 255, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation) - self.DefaultListView.setPixmap(preview) + self.DefaultListView.setPixmap(preview) \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/impresscontroller.py b/openlp/plugins/presentations/lib/impresscontroller.py index 8166a2258..c84f0ff1e 100644 --- a/openlp/plugins/presentations/lib/impresscontroller.py +++ b/openlp/plugins/presentations/lib/impresscontroller.py @@ -244,7 +244,7 @@ class ImpressDocument(PresentationDocument): return False self.presentation = self.document.getPresentation() self.presentation.Display = \ - self.controller.plugin.renderManager.screens.current_display + 1 + self.controller.plugin.renderer.screens.current_display + 1 self.control = None self.create_thumbnails() return True @@ -463,4 +463,4 @@ class ImpressDocument(PresentationDocument): shape = page.getByIndex(idx) if shape.supportsService("com.sun.star.drawing.Text"): text += shape.getString() + '\n' - return text + return text \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/powerpointcontroller.py b/openlp/plugins/presentations/lib/powerpointcontroller.py index 793b0b75d..3045eed13 100644 --- a/openlp/plugins/presentations/lib/powerpointcontroller.py +++ b/openlp/plugins/presentations/lib/powerpointcontroller.py @@ -253,8 +253,8 @@ class PowerpointDocument(PresentationDocument): dpi = 96 self.presentation.SlideShowSettings.Run() self.presentation.SlideShowWindow.View.GotoSlide(1) - rendermanager = self.controller.plugin.renderManager - rect = rendermanager.screens.current[u'size'] + renderer = self.controller.plugin.renderer + rect = renderer.screens.current[u'size'] self.presentation.SlideShowWindow.Top = rect.y() * 72 / dpi self.presentation.SlideShowWindow.Height = rect.height() * 72 / dpi self.presentation.SlideShowWindow.Left = rect.x() * 72 / dpi @@ -326,4 +326,4 @@ def _get_text_from_shapes(shapes): shape = shapes(idx + 1) if shape.HasTextFrame: text += shape.TextFrame.TextRange.Text + '\n' - return text + return text \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/pptviewcontroller.py b/openlp/plugins/presentations/lib/pptviewcontroller.py index 94fd05f31..354c33361 100644 --- a/openlp/plugins/presentations/lib/pptviewcontroller.py +++ b/openlp/plugins/presentations/lib/pptviewcontroller.py @@ -121,8 +121,8 @@ class PptviewDocument(PresentationDocument): The file name of the presentations to run. """ log.debug(u'LoadPresentation') - rendermanager = self.controller.plugin.renderManager - rect = rendermanager.screens.current[u'size'] + renderer = self.controller.plugin.renderer + rect = renderer.screens.current[u'size'] rect = RECT(rect.x(), rect.y(), rect.right(), rect.bottom()) filepath = str(self.filepath.replace(u'/', u'\\')) if not os.path.isdir(self.get_temp_folder()): @@ -244,4 +244,4 @@ class PptviewDocument(PresentationDocument): """ Triggers the previous slide on the running presentation """ - self.controller.process.PrevStep(self.pptid) + self.controller.process.PrevStep(self.pptid) \ No newline at end of file diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 7f7b7fd90..9bb58bd82 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -89,7 +89,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.onVerseListViewPressed) QtCore.QObject.connect(self.themeAddButton, QtCore.SIGNAL(u'clicked()'), - self.parent.parent.renderManager.theme_manager.onAddTheme) + self.parent.parent.renderer.theme_manager.onAddTheme) QtCore.QObject.connect(self.maintenanceButton, QtCore.SIGNAL(u'clicked()'), self.onMaintenanceButtonClicked) QtCore.QObject.connect(Receiver.get_receiver(), @@ -788,4 +788,4 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.song.verse_order) except: log.exception(u'Problem processing song Lyrics \n%s', - sxml.dump_xml()) + sxml.dump_xml()) \ No newline at end of file From 8790f17afa78303bfad56690ffc3066cc32aab48 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 29 Mar 2011 17:25:48 +0100 Subject: [PATCH 08/94] Fix theme editing --- openlp/core/lib/renderer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index c1a866668..d612c9a58 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -182,7 +182,7 @@ class Renderer(object): # save value for use in format_slide self.force_page = force_page # set the default image size for previews - self.calculate_default(self.screens.preview[u'size']) + self._calculate_default(self.screens.preview[u'size']) # build a service item to generate preview serviceItem = ServiceItem() serviceItem.theme = theme_data @@ -192,7 +192,7 @@ class Renderer(object): else: self.image_manager.del_image(theme_data.theme_name) serviceItem.add_from_text(u'', VERSE, FOOTER) - serviceItem.render_manager = self + serviceItem.renderer = self serviceItem.raw_footer = FOOTER serviceItem.render(True) if not self.force_page: From 6342a2aaa0fef2f379b4ea5e4340a2ec2a3a782e Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 29 Mar 2011 20:04:16 +0200 Subject: [PATCH 09/94] changed --- to ### --- openlp/plugins/songs/lib/xml.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index daec73d64..b4a9840a7 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -274,7 +274,7 @@ class OpenLyrics(object): verse_tag = verse[0][u'type'][0].lower() verse_number = verse[0][u'label'] # Create a list with all "sub" verses. - sub_verses = verse[1].split(u'[---]') + sub_verses = verse[1].split(u'[###]') for sub_index, sub_verse in enumerate(sub_verses): verse_def = verse_tag + verse_number # We have more than one sub verse, consequently we need "v1a". @@ -475,7 +475,7 @@ class OpenLyrics(object): if self._get(verse, u'lang'): lang = self._get(verse, u'lang') if verses.has_key((verse_tag, verse_number, lang)): - verses[(verse_tag, verse_number, lang)] += u'\n[---]\n' + text + verses[(verse_tag, verse_number, lang)] += u'\n[###]\n' + text else: verses[(verse_tag, verse_number, lang)] = text for verse in verses: From a0798b66bbcdafa9a14550e4aa62d62a67fab5ca Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 29 Mar 2011 20:23:01 +0200 Subject: [PATCH 10/94] changed wording --- openlp/plugins/songs/lib/xml.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index b4a9840a7..556835587 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -273,19 +273,19 @@ class OpenLyrics(object): for verse in verse_list: verse_tag = verse[0][u'type'][0].lower() verse_number = verse[0][u'label'] - # Create a list with all "sub" verses. - sub_verses = verse[1].split(u'[###]') - for sub_index, sub_verse in enumerate(sub_verses): + # Create a list with all "virtual" verses. + virtual_verses = verse[1].split(u'[###]') + for index, virtual_verse in enumerate(virtual_verses): verse_def = verse_tag + verse_number - # We have more than one sub verse, consequently we need "v1a". - if len(sub_verses) > 1: - verse_def += list(u'abcdefghijklmnopqrstuvwxyz')[sub_index] + # We need "v1a" because we have more than one virtual verse. + if len(virtual_verses) > 1: + verse_def += list(u'abcdefghijklmnopqrstuvwxyz')[index] element = \ self._add_text_to_element(u'verse', lyrics, None, verse_def) if verse[0].has_key(u'lang'): element.set(u'lang', verse[0][u'lang']) element = self._add_text_to_element(u'lines', element) - for line in sub_verse.strip(u'\n').split(u'\n'): + for line in virtual_verse.strip(u'\n').split(u'\n'): self._add_text_to_element(u'line', element, line) return self._extract_xml(song_xml) From 857756e20f78682e17e56f14cec91605e2e8c6b0 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 29 Mar 2011 21:06:18 +0100 Subject: [PATCH 11/94] Change ### to ==== --- openlp/core/lib/renderer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index d612c9a58..d0bfe6f53 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -221,7 +221,7 @@ class Renderer(object): if len(pages) > 1: if item.is_capable(ItemCapabilities.AllowsVirtualSplit): # do not forget the line breaks ! - slides = slide.split(u'\n[###]\n') + slides = slide.split(u'\n[===]\n') pages = [] for slide in slides: lines = self._lines(slide) From ea6f90fc749933e4db245af029879b892067194e Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 29 Mar 2011 21:38:10 +0100 Subject: [PATCH 12/94] Change === and --- around --- openlp/core/lib/renderer.py | 2 +- openlp/plugins/custom/forms/editcustomform.py | 2 +- openlp/plugins/custom/forms/editcustomslideform.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index d0bfe6f53..16dbfae79 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -221,7 +221,7 @@ class Renderer(object): if len(pages) > 1: if item.is_capable(ItemCapabilities.AllowsVirtualSplit): # do not forget the line breaks ! - slides = slide.split(u'\n[===]\n') + slides = slide.split(u'\n[---]\n') pages = [] for slide in slides: lines = self._lines(slide) diff --git a/openlp/plugins/custom/forms/editcustomform.py b/openlp/plugins/custom/forms/editcustomform.py index f81bd4c7d..1bbc30a49 100644 --- a/openlp/plugins/custom/forms/editcustomform.py +++ b/openlp/plugins/custom/forms/editcustomform.py @@ -173,7 +173,7 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog): item = self.slideListView.item(row) slide_list += item.text() if row != self.slideListView.count() - 1: - slide_list += u'\n[---]\n' + slide_list += u'\n[===]\n' self.editSlideForm.setText(slide_list) if self.editSlideForm.exec_(): self.updateSlideList(self.editSlideForm.getText(), True) diff --git a/openlp/plugins/custom/forms/editcustomslideform.py b/openlp/plugins/custom/forms/editcustomslideform.py index 7d4e32968..bf775a1f2 100644 --- a/openlp/plugins/custom/forms/editcustomslideform.py +++ b/openlp/plugins/custom/forms/editcustomslideform.py @@ -63,7 +63,7 @@ class EditCustomSlideForm(QtGui.QDialog, Ui_CustomSlideEditDialog): """ Returns a list with all slides. """ - return self.slideTextEdit.toPlainText().split(u'\n[---]\n') + return self.slideTextEdit.toPlainText().split(u'\n[===]\n') def onSplitButtonPressed(self): """ @@ -71,5 +71,5 @@ class EditCustomSlideForm(QtGui.QDialog, Ui_CustomSlideEditDialog): """ if self.slideTextEdit.textCursor().columnNumber() != 0: self.slideTextEdit.insertPlainText(u'\n') - self.slideTextEdit.insertPlainText(u'[---]\n') + self.slideTextEdit.insertPlainText(u'[===]\n') self.slideTextEdit.setFocus() From 253087e2c6016adf07f73434f2eea121d372df25 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Wed, 30 Mar 2011 09:13:04 +0200 Subject: [PATCH 13/94] fixed verse sorting, change ### to --- --- openlp/plugins/songs/lib/xml.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index 556835587..05da325e2 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -32,7 +32,7 @@ The basic XML for storing the lyrics in the song database looks like this:: - + @@ -129,7 +129,8 @@ class SongXML(object): The returned list has the following format:: - [[{'lang': 'en', 'type': 'v', 'label': '1'}, u"English verse"], + [[{'type': 'v', 'label': '1'}, + u"virtual slide 1[---]virtual slide 2"], [{'lang': 'en', 'type': 'c', 'label': '1'}, u"English chorus"]] """ self.song_xml = None @@ -274,7 +275,7 @@ class OpenLyrics(object): verse_tag = verse[0][u'type'][0].lower() verse_number = verse[0][u'label'] # Create a list with all "virtual" verses. - virtual_verses = verse[1].split(u'[###]') + virtual_verses = verse[1].split(u'[---]') for index, virtual_verse in enumerate(virtual_verses): verse_def = verse_tag + verse_number # We need "v1a" because we have more than one virtual verse. @@ -455,6 +456,7 @@ class OpenLyrics(object): """ sxml = SongXML() verses = {} + verse_def_list = [] for verse in lyrics.verse: text = u'' for lines in verse.lines: @@ -475,10 +477,12 @@ class OpenLyrics(object): if self._get(verse, u'lang'): lang = self._get(verse, u'lang') if verses.has_key((verse_tag, verse_number, lang)): - verses[(verse_tag, verse_number, lang)] += u'\n[###]\n' + text + verses[(verse_tag, verse_number, lang)] += u'\n[---]\n' + text else: verses[(verse_tag, verse_number, lang)] = text - for verse in verses: + verse_def_list.append((verse_tag, verse_number, lang)) + # We have to use a list to keep the order, as dicts are not sorted. + for verse in verse_def_list: sxml.add_verse_to_lyrics( verse[0], verse[1], verses[verse], verse[2]) song.lyrics = unicode(sxml.extract_xml(), u'utf-8') From 3155bde0b245727af065e7bf2e5ab4b7af715401 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 1 Apr 2011 05:48:09 +0100 Subject: [PATCH 14/94] inprogress --- openlp/core/lib/renderer.py | 58 ++++++++++++++++++++++---- openlp/core/lib/serviceitem.py | 6 +-- openlp/plugins/bibles/lib/mediaitem.py | 8 ++-- 3 files changed, 58 insertions(+), 14 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 16dbfae79..c8e8af41d 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -120,7 +120,7 @@ class Renderer(object): self.service_theme = service_theme self.theme_data = None - def set_override_theme(self, theme, overrideLevels=False): + def set_override_theme(self, theme, override_levels=False): """ Set the appropriate theme depending on the theme level. Called by the service item when building a display frame @@ -129,13 +129,13 @@ class Renderer(object): The name of the song-level theme. None means the service item wants to use the given value. - ``overrideLevels`` + ``override_levels`` Used to force the theme data passed in to be used. """ log.debug(u'set override theme to %s', theme) theme_level = self.theme_level - if overrideLevels: + if override_levels: theme_level = ThemeLevel.Song if theme_level == ThemeLevel.Global: self.theme = self.global_theme @@ -158,7 +158,7 @@ class Renderer(object): self.theme = self.global_theme log.debug(u'theme is now %s', self.theme) # Force the theme to be the one passed in. - if overrideLevels: + if override_levels: self.theme_data = theme else: self.theme_data = self.theme_manager.getThemeData(self.theme) @@ -216,9 +216,13 @@ class Renderer(object): log.debug(u'format slide') # clean up line endings slide = slide.replace(u'\r\n', u'\n') + print "###############" + print [slide] lines = self._lines(slide) pages = self._paginate_slide(lines, line_break, self.force_page) + print len(pages) if len(pages) > 1: + # Songs and Custom if item.is_capable(ItemCapabilities.AllowsVirtualSplit): # do not forget the line breaks ! slides = slide.split(u'\n[---]\n') @@ -229,9 +233,11 @@ class Renderer(object): self.force_page) for page in new_pages: pages.append(page) +# # Bibles elif item.is_capable(ItemCapabilities.AllowsWordSplit): lines = self._words(slide) - pages = self._paginate_slide(lines, False, self.force_page) + pages = self._paginate_slide(lines, False) + print pages return pages def _calculate_default(self, screen): @@ -352,12 +358,50 @@ class Renderer(object): log.debug(u'format_slide - End') return formatted + def _paginate_slide_words(self, lines, line_break): + """ + Figure out how much text can appear on a slide, using the current + theme settings. + + ``lines`` + The words to be fitted on the slide split into lines. + """ + log.debug(u'format_slide - Start') + line_end = u'' + if line_break: + line_end = u'
' + formatted = [] + html_text = u'' + styled_text = u'' + for line in lines: + styled_line = expand_tags(line) + if line.startswith(u'{su}'): + styled_line = line_end + styled_line + styled_text += styled_line + html = self.page_shell + styled_text + u'
' + self.web.setHtml(html) + # Text too long so go to next page + if self.web_frame.contentsSize().height() > self.page_height: + #split + if html_text.endswith(u'
'): + html_text = html_text[:len(html_text)-4] + formatted.append(html_text) + html_text = u'' + styled_text = styled_line + html_text += line# + line_end + if html_text.endswith(u'
'): + html_text = html_text[:len(html_text)-4] + formatted.append(html_text) + log.debug(u'format_slide - End') + return formatted + + def _lines(self, words): """ Split the slide up by physical line """ # this parse we do not want to use this so remove it - words = words.replace(u'[---]', u'') + words = words.replace(u'\n[---]\n', u'') verses_text = words.split(u'\n') text = [] for verse in verses_text: @@ -371,6 +415,7 @@ class Renderer(object): Split the slide up by word so can wrap better """ # this parse we are wordy + words = words.replace(u'[---]', u'').lstrip() words = words.replace(u'\n', u' ') verses_text = words.split(u' ') text = [] @@ -379,4 +424,3 @@ class Renderer(object): for line in lines: text.append(line + u' ') return text - diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index c3e6b17aa..dab4b671a 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -153,7 +153,7 @@ class ServiceItem(object): self.icon = icon self.iconic_representation = build_icon(icon) - def render(self, useOverride=False): + def render(self, use_override=False): """ The render method is what generates the frames for the screen and obtains the display information from the renderemanager. @@ -168,7 +168,7 @@ class ServiceItem(object): line_break = False theme = self.theme if self.theme else None self.main, self.footer = \ - self.renderer.set_override_theme(theme, useOverride) + self.renderer.set_override_theme(theme, use_override) self.themedata = self.renderer.theme_data if self.service_item_type == ServiceItemType.Text: log.debug(u'Formatting slides') @@ -455,4 +455,4 @@ class ServiceItem(object): elif not start and end: return end else: - return u'%s : %s' % (start, end) \ No newline at end of file + return u'%s : %s' % (start, end) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 405507523..afbf9764b 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -799,9 +799,9 @@ class BibleMediaItem(MediaManagerItem): else: verse_text = unicode(verse) if self.settings.display_style == DisplayStyle.Round: - return u'{su}(%s){/su}' % verse_text + return u'\n[---]\n{su}(%s){/su}' % verse_text if self.settings.display_style == DisplayStyle.Curly: - return u'{su}{%s}{/su}' % verse_text + return u'\n[---]\n{su}{%s}{/su}' % verse_text if self.settings.display_style == DisplayStyle.Square: - return u'{su}[%s]{/su}' % verse_text - return u'{su}%s{/su}' % verse_text + return u'\n[---]\n{su}[%s]{/su}' % verse_text + return u'\n[---]\n{su}%s{/su}' % verse_text From 63bfac4b7eb7822b1af8fca9c44fc8c591207a91 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 3 Apr 2011 07:19:03 +0100 Subject: [PATCH 15/94] Changes continue --- openlp/core/lib/renderer.py | 118 ++++++++++++++++--------- openlp/plugins/bibles/lib/mediaitem.py | 8 +- 2 files changed, 80 insertions(+), 46 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index c8e8af41d..0ae9149fa 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -45,6 +45,8 @@ VERSE = u'The Lord said to {r}Noah{/r}: \n' \ 'r{/pk}{o}e{/o}{pp}n{/pp} of the Lord\n' FOOTER = [u'Arky Arky (Unknown)', u'Public Domain', u'CCLI 123456'] +HTML_END = u'' + class Renderer(object): """ Class to pull all Renderer interactions into one place. The plugins will @@ -72,7 +74,6 @@ class Renderer(object): self.display = MainDisplay(self, screens, False) self.display.imageManager = self.image_manager self.theme_manager = theme_manager - self.theme = u'' self.service_theme = u'' self.theme_level = u'' self.override_background = None @@ -120,7 +121,7 @@ class Renderer(object): self.service_theme = service_theme self.theme_data = None - def set_override_theme(self, theme, override_levels=False): + def set_override_theme(self, override_theme, override_levels=False): """ Set the appropriate theme depending on the theme level. Called by the service item when building a display frame @@ -133,35 +134,35 @@ class Renderer(object): Used to force the theme data passed in to be used. """ - log.debug(u'set override theme to %s', theme) + log.debug(u'set override theme to %s', override_theme) theme_level = self.theme_level if override_levels: theme_level = ThemeLevel.Song if theme_level == ThemeLevel.Global: - self.theme = self.global_theme + theme = self.global_theme elif theme_level == ThemeLevel.Service: if self.service_theme == u'': - self.theme = self.global_theme + theme = self.global_theme else: - self.theme = self.service_theme + theme = self.service_theme else: # Images have a theme of -1 - if theme and theme != -1: - self.theme = theme + if override_theme and override_theme != -1: + theme = override_theme elif theme_level == ThemeLevel.Song or \ theme_level == ThemeLevel.Service: if self.service_theme == u'': - self.theme = self.global_theme + theme = self.global_theme else: - self.theme = self.service_theme + theme = self.service_theme else: - self.theme = self.global_theme - log.debug(u'theme is now %s', self.theme) + theme = self.global_theme + log.debug(u'theme is now %s', theme) # Force the theme to be the one passed in. if override_levels: - self.theme_data = theme + self.theme_data = override_theme else: - self.theme_data = self.theme_manager.getThemeData(self.theme) + self.theme_data = self.theme_manager.getThemeData(theme) self._calculate_default(self.screens.current[u'size']) self._build_text_rectangle(self.theme_data) self.image_manager.add_image(self.theme_data.theme_name, @@ -203,11 +204,11 @@ class Renderer(object): self._calculate_default(self.screens.current[u'size']) return preview - def format_slide(self, slide, line_break, item): + def format_slide(self, text, line_break, item): """ Calculate how much text can fit on a slide. - ``slide`` + ``text`` The words to go on the slides. ``line_break`` @@ -215,17 +216,13 @@ class Renderer(object): """ log.debug(u'format slide') # clean up line endings - slide = slide.replace(u'\r\n', u'\n') - print "###############" - print [slide] - lines = self._lines(slide) + lines = self._lines(text) pages = self._paginate_slide(lines, line_break, self.force_page) - print len(pages) if len(pages) > 1: # Songs and Custom if item.is_capable(ItemCapabilities.AllowsVirtualSplit): # do not forget the line breaks ! - slides = slide.split(u'\n[---]\n') + slides = text.split(u'\n[---]\n') pages = [] for slide in slides: lines = self._lines(slide) @@ -235,9 +232,7 @@ class Renderer(object): pages.append(page) # # Bibles elif item.is_capable(ItemCapabilities.AllowsWordSplit): - lines = self._words(slide) - pages = self._paginate_slide(lines, False) - print pages + pages = self._paginate_slide_words(text, line_break) return pages def _calculate_default(self, screen): @@ -339,7 +334,7 @@ class Renderer(object): line_count += 1 styled_line = expand_tags(line) + line_end styled_text += styled_line - html = self.page_shell + styled_text + u'' + html = self.page_shell + styled_text + HTML_END self.web.setHtml(html) # Text too long so go to next page if self.web_frame.contentsSize().height() > self.page_height: @@ -358,14 +353,20 @@ class Renderer(object): log.debug(u'format_slide - End') return formatted - def _paginate_slide_words(self, lines, line_break): + def _paginate_slide_words(self, text, line_break): """ Figure out how much text can appear on a slide, using the current - theme settings. + theme settings. This version is to handle text which needs to be split + into words to get it to fit. - ``lines`` + ``text`` The words to be fitted on the slide split into lines. + + ``line_break`` + Add line endings after each line of text used for bibles. + """ + print [text] log.debug(u'format_slide - Start') line_end = u'' if line_break: @@ -373,35 +374,69 @@ class Renderer(object): formatted = [] html_text = u'' styled_text = u'' + line_count = 0 + force_current = False + lines = self._lines(text, u'[---]') + # Loop through the lines for line in lines: + line_count += 1 styled_line = expand_tags(line) - if line.startswith(u'{su}'): - styled_line = line_end + styled_line + styled_line = line_end + styled_line styled_text += styled_line - html = self.page_shell + styled_text + u'' + html = self.page_shell + styled_text + HTML_END self.web.setHtml(html) # Text too long so go to next page + print self.web_frame.contentsSize().height() , self.page_height, [line] if self.web_frame.contentsSize().height() > self.page_height: - #split - if html_text.endswith(u'
'): - html_text = html_text[:len(html_text)-4] - formatted.append(html_text) + # we have more than 1 verse on the slide + print "A", line_count + if line_count > 1: + if html_text.endswith(u'
'): + html_text = html_text[:len(html_text)-4] + formatted.append(html_text) + force_current = True + print "##### > 1" + print [html_text] html_text = u'' - styled_text = styled_line - html_text += line# + line_end + # only one block on page so lets make it words. + if line_count == 1 or force_current: + print "##### = 1" + print [line] + force_current = False + styled_text = u'' + words = self._words(line) + styled_text = u'' + for word in words: + styled_line = expand_tags(word) + styled_text += styled_line + html = self.page_shell + styled_text + HTML_END + self.web.setHtml(html) + # Text too long so go to next page + print "B", self.web_frame.contentsSize().height() , self.page_height + if self.web_frame.contentsSize().height() > self.page_height: + if html_text.endswith(u'
'): + html_text = html_text[:len(html_text)-4] + print "c", [html_text] + formatted.append(html_text) + html_text = u'' + + styled_text = styled_line + html_text += word + line_count = 0 + styled_text = styled_line + html_text += line + line_end if html_text.endswith(u'
'): html_text = html_text[:len(html_text)-4] formatted.append(html_text) log.debug(u'format_slide - End') return formatted - - def _lines(self, words): + def _lines(self, words, split=u'\n[---]\n'): """ Split the slide up by physical line """ # this parse we do not want to use this so remove it - words = words.replace(u'\n[---]\n', u'') + words = words.replace(split, u'') verses_text = words.split(u'\n') text = [] for verse in verses_text: @@ -415,7 +450,6 @@ class Renderer(object): Split the slide up by word so can wrap better """ # this parse we are wordy - words = words.replace(u'[---]', u'').lstrip() words = words.replace(u'\n', u' ') verses_text = words.split(u' ') text = [] diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index afbf9764b..8440cb783 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -799,9 +799,9 @@ class BibleMediaItem(MediaManagerItem): else: verse_text = unicode(verse) if self.settings.display_style == DisplayStyle.Round: - return u'\n[---]\n{su}(%s){/su}' % verse_text + return u'[---]{su}(%s){/su}' % verse_text if self.settings.display_style == DisplayStyle.Curly: - return u'\n[---]\n{su}{%s}{/su}' % verse_text + return u'[---]{su}{%s}{/su}' % verse_text if self.settings.display_style == DisplayStyle.Square: - return u'\n[---]\n{su}[%s]{/su}' % verse_text - return u'\n[---]\n{su}%s{/su}' % verse_text + return u'[---]{su}[%s]{/su}' % verse_text + return u'[---]{su}%s{/su}' % verse_text From 34348c84656bc910bc4ac749a755a3888d35097c Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 8 Apr 2011 16:35:33 +0100 Subject: [PATCH 16/94] More changes --- openlp/core/lib/renderer.py | 144 ++++++++++++++++++++++++------------ 1 file changed, 96 insertions(+), 48 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 0ae9149fa..7a9e89f7b 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -214,9 +214,10 @@ class Renderer(object): ``line_break`` Add line endings after each line of text used for bibles. """ + print [text] log.debug(u'format slide') # clean up line endings - lines = self._lines(text) + lines = self._lines_split(text) pages = self._paginate_slide(lines, line_break, self.force_page) if len(pages) > 1: # Songs and Custom @@ -377,66 +378,99 @@ class Renderer(object): line_count = 0 force_current = False lines = self._lines(text, u'[---]') + previous_line = u'' # Loop through the lines for line in lines: - line_count += 1 - styled_line = expand_tags(line) - styled_line = line_end + styled_line - styled_text += styled_line - html = self.page_shell + styled_text + HTML_END - self.web.setHtml(html) - # Text too long so go to next page - print self.web_frame.contentsSize().height() , self.page_height, [line] - if self.web_frame.contentsSize().height() > self.page_height: - # we have more than 1 verse on the slide - print "A", line_count - if line_count > 1: - if html_text.endswith(u'
'): - html_text = html_text[:len(html_text)-4] - formatted.append(html_text) - force_current = True - print "##### > 1" - print [html_text] - html_text = u'' + line_added = False + while not line_added: + line_added = True + line_count += 1 + styled_line = expand_tags(line) + styled_line = line_end + styled_line + previous_line = line + previous_styled = styled_line + styled_text += styled_line + html = self.page_shell + styled_text + HTML_END + self.web.setHtml(html) + # Text too long so go to next page + print self.web_frame.contentsSize().height() , self.page_height, [line] + if self.web_frame.contentsSize().height() > self.page_height: + # we have more than 1 verse on the slide + print "A", line_count + print "AA", [previous_line] + print "AAA", [styled_text] + if line_count > 1: + if html_text.endswith(u'
'): + html_text = html_text[:len(html_text)-4] + formatted.append(html_text) + line_added = False + line = previous_line + line_count = 0 + html_text = u'' + print "c", [html_text] + if line_count == 1: + words = self._words_split(line) + for word in words: + styled_word = expand_tags(word) + styled_line = styled_word + #previous_line = line + #previous_styled = styled_line + styled_text += styled_word + html = self.page_shell + styled_text + HTML_END + self.web.setHtml(html) + # Text too long so go to next page + print self.web_frame.contentsSize().height() , self.page_height, [line] + if self.web_frame.contentsSize().height() > self.page_height: + if html_text.endswith(u'
'): + html_text = html_text[:len(html_text)-4] + formatted.append(html_text) + html_text = u'' + html_text += word + pass + print "##### > 1" + print [html_text] # only one block on page so lets make it words. - if line_count == 1 or force_current: - print "##### = 1" - print [line] - force_current = False - styled_text = u'' - words = self._words(line) - styled_text = u'' - for word in words: - styled_line = expand_tags(word) - styled_text += styled_line - html = self.page_shell + styled_text + HTML_END - self.web.setHtml(html) - # Text too long so go to next page - print "B", self.web_frame.contentsSize().height() , self.page_height - if self.web_frame.contentsSize().height() > self.page_height: - if html_text.endswith(u'
'): - html_text = html_text[:len(html_text)-4] - print "c", [html_text] - formatted.append(html_text) - html_text = u'' - - styled_text = styled_line - html_text += word - line_count = 0 +# if line_count == 1 or force_current: +# print "##### = 1" +# print [line] +# print [styled_text] +# print [previous_line] +# force_current = False +# #styled_text = u'' +# words = self._words(previous_line) +# styled_text = u'' +# for word in words: +# styled_line = expand_tags(word) +# styled_text += styled_line +# html = self.page_shell + styled_text + HTML_END +# self.web.setHtml(html) +# # Text too long so go to next page +# print "B", self.web_frame.contentsSize().height() , self.page_height +# if self.web_frame.contentsSize().height() > self.page_height: +# if html_text.endswith(u'
'): +# html_text = html_text[:len(html_text)-4] +# print "c", [html_text] +# formatted.append(html_text) +# html_text = u'' +# +# styled_text = styled_line +# html_text += word + #line_count = 0 styled_text = styled_line html_text += line + line_end + previous_line = line if html_text.endswith(u'
'): html_text = html_text[:len(html_text)-4] formatted.append(html_text) log.debug(u'format_slide - End') return formatted - def _lines(self, words, split=u'\n[---]\n'): + def _lines(self, words, split=u'n[---]n'): """ Split the slide up by physical line """ # this parse we do not want to use this so remove it - words = words.replace(split, u'') + #words = words.replace(split, u'') verses_text = words.split(u'\n') text = [] for verse in verses_text: @@ -445,11 +479,11 @@ class Renderer(object): text.append(line) return text - def _words(self, words): + def _words_split(self, words): """ Split the slide up by word so can wrap better """ - # this parse we are wordy + # this parse we are to be wordy words = words.replace(u'\n', u' ') verses_text = words.split(u' ') text = [] @@ -458,3 +492,17 @@ class Renderer(object): for line in lines: text.append(line + u' ') return text + + def _lines_split(self, text): + """ + Split the slide up by physical line + """ + # this parse we do not want to use this so remove it + lines = text.split(u'\n') + real_lines = [] + for line in lines: + line = line.replace(u' [---]', u'[---]') + sub_lines = line.split(u'\n') + for sub_line in sub_lines: + real_lines.append(sub_line) + return real_lines From 9ce234598aa8ab777b51873c0af88a4abda94374 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 8 Apr 2011 20:40:18 +0100 Subject: [PATCH 17/94] Humm --- openlp/core/lib/renderer.py | 39 ++++++------------------------------- 1 file changed, 6 insertions(+), 33 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 7a9e89f7b..34a555229 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -405,14 +405,16 @@ class Renderer(object): formatted.append(html_text) line_added = False line = previous_line - line_count = 0 + line_count = 1 html_text = u'' print "c", [html_text] if line_count == 1: + line_count = 0 words = self._words_split(line) + styled_text = u'' for word in words: styled_word = expand_tags(word) - styled_line = styled_word + #styled_line = styled_word #previous_line = line #previous_styled = styled_line styled_text += styled_word @@ -420,42 +422,13 @@ class Renderer(object): self.web.setHtml(html) # Text too long so go to next page print self.web_frame.contentsSize().height() , self.page_height, [line] - if self.web_frame.contentsSize().height() > self.page_height: + if self.web_frame.contentsSize().height() >= self.page_height: if html_text.endswith(u'
'): html_text = html_text[:len(html_text)-4] formatted.append(html_text) html_text = u'' + styled_text = u'' html_text += word - pass - print "##### > 1" - print [html_text] - # only one block on page so lets make it words. -# if line_count == 1 or force_current: -# print "##### = 1" -# print [line] -# print [styled_text] -# print [previous_line] -# force_current = False -# #styled_text = u'' -# words = self._words(previous_line) -# styled_text = u'' -# for word in words: -# styled_line = expand_tags(word) -# styled_text += styled_line -# html = self.page_shell + styled_text + HTML_END -# self.web.setHtml(html) -# # Text too long so go to next page -# print "B", self.web_frame.contentsSize().height() , self.page_height -# if self.web_frame.contentsSize().height() > self.page_height: -# if html_text.endswith(u'
'): -# html_text = html_text[:len(html_text)-4] -# print "c", [html_text] -# formatted.append(html_text) -# html_text = u'' -# -# styled_text = styled_line -# html_text += word - #line_count = 0 styled_text = styled_line html_text += line + line_end previous_line = line From 501235a6956bca0491582fb6280f7c0b26dcf57d Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 9 Apr 2011 09:11:46 +0100 Subject: [PATCH 18/94] Looking better --- openlp/core/lib/renderer.py | 96 ++++++++++++++++++------------------- 1 file changed, 46 insertions(+), 50 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 34a555229..703e477cd 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -381,57 +381,53 @@ class Renderer(object): previous_line = u'' # Loop through the lines for line in lines: - line_added = False - while not line_added: - line_added = True - line_count += 1 - styled_line = expand_tags(line) - styled_line = line_end + styled_line - previous_line = line - previous_styled = styled_line - styled_text += styled_line - html = self.page_shell + styled_text + HTML_END - self.web.setHtml(html) - # Text too long so go to next page - print self.web_frame.contentsSize().height() , self.page_height, [line] - if self.web_frame.contentsSize().height() > self.page_height: - # we have more than 1 verse on the slide - print "A", line_count - print "AA", [previous_line] - print "AAA", [styled_text] - if line_count > 1: - if html_text.endswith(u'
'): - html_text = html_text[:len(html_text)-4] - formatted.append(html_text) - line_added = False - line = previous_line - line_count = 1 - html_text = u'' - print "c", [html_text] - if line_count == 1: - line_count = 0 - words = self._words_split(line) - styled_text = u'' - for word in words: - styled_word = expand_tags(word) - #styled_line = styled_word - #previous_line = line - #previous_styled = styled_line - styled_text += styled_word - html = self.page_shell + styled_text + HTML_END - self.web.setHtml(html) - # Text too long so go to next page - print self.web_frame.contentsSize().height() , self.page_height, [line] - if self.web_frame.contentsSize().height() >= self.page_height: - if html_text.endswith(u'
'): - html_text = html_text[:len(html_text)-4] - formatted.append(html_text) - html_text = u'' - styled_text = u'' - html_text += word - styled_text = styled_line - html_text += line + line_end + line_count += 1 + styled_line = expand_tags(line) + styled_line = line_end + styled_line previous_line = line + previous_styled = styled_line + styled_text += styled_line + html = self.page_shell + styled_text + HTML_END + self.web.setHtml(html) + # Text too long so go to next page + print self.web_frame.contentsSize().height() , self.page_height, [line] + if self.web_frame.contentsSize().height() > self.page_height: + # we have more than 1 verse on the slide + print "A", line_count + print "AA", [previous_line] + print "AAA", [styled_text] + if line_count > 1: + if html_text.endswith(u'
'): + html_text = html_text[:len(html_text)-4] + formatted.append(html_text) + line = previous_line + line_count = 1 + html_text = u'' + print "c", [html_text] + if line_count == 1: + line_count = 0 + words = self._words_split(line) + styled_text = u'' + styled_line = u'' + for word in words: + styled_word = expand_tags(word) + styled_text += styled_word + html = self.page_shell + styled_text + HTML_END + self.web.setHtml(html) + # Text too long so go to next page + print self.web_frame.contentsSize().height() , self.page_height, [line] + if self.web_frame.contentsSize().height() > self.page_height: + if html_text.endswith(u'
'): + html_text = html_text[:len(html_text)-4] + formatted.append(html_text) + html_text = u'' + styled_text = u'' + html_text += word + a=1 + else: + styled_text = styled_line + html_text += line + line_end + previous_line = line if html_text.endswith(u'
'): html_text = html_text[:len(html_text)-4] formatted.append(html_text) From 4bc46598114da36468d48aff363dd29e671c4900 Mon Sep 17 00:00:00 2001 From: Wesley Stout Date: Wed, 13 Apr 2011 17:13:53 -0500 Subject: [PATCH 19/94] added info about usb projector connections to dualdisplay.rst and also added a link to the dual display in the troubleshooting.rst --- documentation/manual/source/dualmonitors.rst | 11 +++++++++++ documentation/manual/source/troubleshooting.rst | 16 ++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/documentation/manual/source/dualmonitors.rst b/documentation/manual/source/dualmonitors.rst index 3e1a8d210..00a5a9dbe 100644 --- a/documentation/manual/source/dualmonitors.rst +++ b/documentation/manual/source/dualmonitors.rst @@ -1,3 +1,5 @@ +.. _dualmonitors: + ================== Dual Monitor Setup ================== @@ -32,6 +34,15 @@ projector hooked up to your computer as the second monitor. With the option of extending your desktop across the second monitor, or your operating system's equivalent. +**Special Note For Projectors Using USB Connections** + +We have experienced difficulties with users using a projector with a USB +connection. It seems that third party software many times is required to +properly setup dual monitors. When possible, it is best to use a direct output +(VGA, DVI, HDMI, S-Video) from your machine's video card. If a USB connection +is your only option please carefully read the manual from the manufacture on +proper setup. + Microsoft Windows ----------------- diff --git a/documentation/manual/source/troubleshooting.rst b/documentation/manual/source/troubleshooting.rst index 1d200ed8e..5452d99cb 100644 --- a/documentation/manual/source/troubleshooting.rst +++ b/documentation/manual/source/troubleshooting.rst @@ -175,3 +175,19 @@ only download the section you search for. If you do not have an internet connection where you intend to use OpenLP you will need another scripture source. For more information about acquiring Bibles please see :ref:`bibleimporter`. +I am using high amounts of RAM when showing PowerPoint or Impress slides +------------------------------------------------------------------------ + +The reason OpenLP usa greater amounts of RAM is because it does not load the +presentation by itself. OpenLP uses PowerPoint or Impress to load the +presentation. Then OpenLP displays images of each slide. This results in the +higher than expected RAM usage. + +OpenLP is not displaying correctly, or on the correct screen +------------------------------------------------------------ + +Please read the documentation on :ref:`dualmonitors`. It is very important to +have dual monitors setup properly for OpenLP to function as expected. + + + From cfa815e1dc68ea0ca76cf99bf1877a4c811f369c Mon Sep 17 00:00:00 2001 From: Wesley Stout Date: Wed, 13 Apr 2011 17:22:09 -0500 Subject: [PATCH 20/94] added notes about powerpoint ram usage and directed people to the dual monitor section in dualmonitor.rst and addressed dual monitors/projectors using usb connections in dualmonitors.rst --- documentation/manual/source/troubleshooting.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/manual/source/troubleshooting.rst b/documentation/manual/source/troubleshooting.rst index 5452d99cb..f55c19e59 100644 --- a/documentation/manual/source/troubleshooting.rst +++ b/documentation/manual/source/troubleshooting.rst @@ -178,7 +178,7 @@ source. For more information about acquiring Bibles please see :ref:`bibleimport I am using high amounts of RAM when showing PowerPoint or Impress slides ------------------------------------------------------------------------ -The reason OpenLP usa greater amounts of RAM is because it does not load the +The reason OpenLP uses greater amounts of RAM is because it does not load the presentation by itself. OpenLP uses PowerPoint or Impress to load the presentation. Then OpenLP displays images of each slide. This results in the higher than expected RAM usage. From cb7e8aadb24d10cf14c8356bbe60325b4e3a3a80 Mon Sep 17 00:00:00 2001 From: Wesley Stout Date: Thu, 14 Apr 2011 21:33:22 -0500 Subject: [PATCH 21/94] grammar correction to dualmonitors.rst --- documentation/manual/source/dualmonitors.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/manual/source/dualmonitors.rst b/documentation/manual/source/dualmonitors.rst index 00a5a9dbe..29884289c 100644 --- a/documentation/manual/source/dualmonitors.rst +++ b/documentation/manual/source/dualmonitors.rst @@ -38,7 +38,7 @@ equivalent. We have experienced difficulties with users using a projector with a USB connection. It seems that third party software many times is required to -properly setup dual monitors. When possible, it is best to use a direct output +properly setup dual monitors. If possible, it is best to use a direct output (VGA, DVI, HDMI, S-Video) from your machine's video card. If a USB connection is your only option please carefully read the manual from the manufacture on proper setup. From 237cabfeff8744971b7dd877cd6073025ccd9df1 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 15 Apr 2011 16:10:31 +0200 Subject: [PATCH 22/94] only try to import a database when it is a v1 database, clean ups --- openlp/plugins/songs/forms/songimportform.py | 5 +- openlp/plugins/songs/lib/olp1import.py | 4 +- openlp/plugins/songs/lib/songbeamerimport.py | 106 ++++++++++--------- 3 files changed, 58 insertions(+), 57 deletions(-) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 468d2f341..7666d8f52 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -459,10 +459,7 @@ class SongImportForm(OpenLPWizard): """ Return a list of file from the listbox """ - files = [] - for row in range(0, listbox.count()): - files.append(unicode(listbox.item(row).text())) - return files + return [unicode(listbox.item(i).text()) for i in range(listbox.count())] def removeSelectedItems(self, listbox): """ diff --git a/openlp/plugins/songs/lib/olp1import.py b/openlp/plugins/songs/lib/olp1import.py index 232b17db0..61cdcbe06 100644 --- a/openlp/plugins/songs/lib/olp1import.py +++ b/openlp/plugins/songs/lib/olp1import.py @@ -61,10 +61,12 @@ class OpenLP1SongImport(SongImport): """ Run the import for an openlp.org 1.x song database. """ - # Connect to the database + if not self.import_source.endswith(u'.olp'): + return False encoding = self.get_encoding() if not encoding: return False + # Connect to the database connection = sqlite.connect(self.import_source, mode=0444, encoding=(encoding, 'replace')) cursor = connection.cursor() diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index 5cd2c4329..f90c05965 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -78,58 +78,60 @@ class SongBeamerImport(SongImport): """ Receive a single file or a list of files to import. """ - if isinstance(self.import_source, list): - self.import_wizard.progressBar.setMaximum( - len(self.import_source)) - for file in self.import_source: - # TODO: check that it is a valid SongBeamer file - self.set_defaults() - self.current_verse = u'' - self.current_verse_type = VerseType.Tags[VerseType.Verse] - read_verses = False - file_name = os.path.split(file)[1] - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % file_name, 0) - if os.path.isfile(file): - detect_file = open(file, u'r') - details = chardet.detect(detect_file.read(2048)) - detect_file.close() - infile = codecs.open(file, u'r', details['encoding']) - songData = infile.readlines() - infile.close() - else: - return False - self.title = file_name.split('.sng')[0] - read_verses = False - for line in songData: - # Just make sure that the line is of the type 'Unicode'. - line = unicode(line).strip() - if line.startswith(u'#') and not read_verses: - self.parse_tags(line) - elif line.startswith(u'---'): - if self.current_verse: - self.replace_html_tags() - self.add_verse(self.current_verse, - self.current_verse_type) - self.current_verse = u'' - self.current_verse_type = VerseType.Tags[VerseType.Verse] - read_verses = True - verse_start = True - elif read_verses: - if verse_start: - verse_start = False - if not self.check_verse_marks(line): - self.current_verse = line + u'\n' - else: - self.current_verse += line + u'\n' - if self.current_verse: - self.replace_html_tags() - self.add_verse(self.current_verse, self.current_verse_type) - if self.check_complete(): - self.finish() - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % file_name) - return True + self.import_wizard.progressBar.setMaximum(len(self.import_source)) + if not isinstance(self.import_source, list): + return False + for file in self.import_source: + # TODO: check that it is a valid SongBeamer file + if self.stop_import_flag: + return False + self.set_defaults() + self.current_verse = u'' + self.current_verse_type = VerseType.Tags[VerseType.Verse] + read_verses = False + file_name = os.path.split(file)[1] + self.import_wizard.incrementProgressBar( + WizardStrings.ImportingType % file_name, 0) + if os.path.isfile(file): + detect_file = open(file, u'r') + details = chardet.detect(detect_file.read(2048)) + detect_file.close() + infile = codecs.open(file, u'r', details['encoding']) + songData = infile.readlines() + infile.close() + else: + return False + self.title = file_name.split('.sng')[0] + read_verses = False + for line in songData: + # Just make sure that the line is of the type 'Unicode'. + line = unicode(line).strip() + if line.startswith(u'#') and not read_verses: + self.parse_tags(line) + elif line.startswith(u'---'): + if self.current_verse: + self.replace_html_tags() + self.add_verse(self.current_verse, + self.current_verse_type) + self.current_verse = u'' + self.current_verse_type = VerseType.Tags[VerseType.Verse] + read_verses = True + verse_start = True + elif read_verses: + if verse_start: + verse_start = False + if not self.check_verse_marks(line): + self.current_verse = line + u'\n' + else: + self.current_verse += line + u'\n' + if self.current_verse: + self.replace_html_tags() + self.add_verse(self.current_verse, self.current_verse_type) + if self.check_complete(): + self.finish() + self.import_wizard.incrementProgressBar( + WizardStrings.ImportingType % file_name) + return True def replace_html_tags(self): """ From a13cf4994078f0d9dbaa1410ce774ed879de436a Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 15 Apr 2011 18:01:15 +0200 Subject: [PATCH 23/94] idea to improve song import feedback --- openlp/core/ui/wizard.py | 1 + openlp/plugins/songs/forms/songimportform.py | 13 ++++++++----- openlp/plugins/songs/lib/cclifileimport.py | 1 - openlp/plugins/songs/lib/easislidesimport.py | 1 - openlp/plugins/songs/lib/ewimport.py | 3 ++- openlp/plugins/songs/lib/foilpresenterimport.py | 2 -- openlp/plugins/songs/lib/olp1import.py | 5 ++++- openlp/plugins/songs/lib/olpimport.py | 4 +++- openlp/plugins/songs/lib/oooimport.py | 9 ++------- openlp/plugins/songs/lib/openlyricsimport.py | 1 - openlp/plugins/songs/lib/opensongimport.py | 3 ++- openlp/plugins/songs/lib/sofimport.py | 2 +- openlp/plugins/songs/lib/songbeamerimport.py | 1 - openlp/plugins/songs/lib/songshowplusimport.py | 3 +-- openlp/plugins/songs/lib/wowimport.py | 1 - 15 files changed, 24 insertions(+), 26 deletions(-) diff --git a/openlp/core/ui/wizard.py b/openlp/core/ui/wizard.py index cb3a75294..a27086b33 100644 --- a/openlp/core/ui/wizard.py +++ b/openlp/core/ui/wizard.py @@ -132,6 +132,7 @@ class OpenLPWizard(QtGui.QWizard): self.progressLayout.addWidget(self.progressLabel) self.progressBar = QtGui.QProgressBar(self.progressPage) self.progressBar.setObjectName(u'progressBar') + self.progressLabel.setWordWrap(True) self.progressLayout.addWidget(self.progressBar) self.addPage(self.progressPage) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 7666d8f52..786bbb960 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -740,12 +740,15 @@ class SongImportForm(OpenLPWizard): importer = self.plugin.importSongs(SongFormat.FoilPresenter, filenames=self.getListOfFiles(self.foilPresenterFileListWidget) ) - if importer.do_import(): - self.progressLabel.setText(WizardStrings.FinishedImport) - else: - self.progressLabel.setText( + message = importer.do_import() + if isinstance(message, bool) and not message: + self.progressLabel.setText(self.progressLabel.setText( translate('SongsPlugin.SongImportForm', - 'Your song import failed.')) + 'Your song import failed.'))) + elif not isinstance(message, bool) and message: + self.progressLabel.setText(message) + else: + self.progressLabel.setText(WizardStrings.FinishedImport) def addFileSelectItem(self, prefix, obj_prefix=None, can_disable=False, single_select=False): diff --git a/openlp/plugins/songs/lib/cclifileimport.py b/openlp/plugins/songs/lib/cclifileimport.py index 03a86c455..c63a9fa98 100644 --- a/openlp/plugins/songs/lib/cclifileimport.py +++ b/openlp/plugins/songs/lib/cclifileimport.py @@ -93,7 +93,6 @@ class CCLIFileImport(SongImport): song_count += 1 if self.stop_import_flag: return False - return True def do_import_usr_file(self, textList): """ diff --git a/openlp/plugins/songs/lib/easislidesimport.py b/openlp/plugins/songs/lib/easislidesimport.py index d326e83ca..8ef6dc1a7 100644 --- a/openlp/plugins/songs/lib/easislidesimport.py +++ b/openlp/plugins/songs/lib/easislidesimport.py @@ -75,7 +75,6 @@ class EasiSlidesImport(SongImport): return False elif self.commit: self.finish() - return True def _parse_song(self, song): self._success = True diff --git a/openlp/plugins/songs/lib/ewimport.py b/openlp/plugins/songs/lib/ewimport.py index e68b19494..43be5bd07 100644 --- a/openlp/plugins/songs/lib/ewimport.py +++ b/openlp/plugins/songs/lib/ewimport.py @@ -273,7 +273,8 @@ class EasyWorshipSongImport(SongImport): self.import_wizard.incrementProgressBar(u'') db_file.close() self.memo_file.close() - return success + if not success: + return False def find_field(self, field_name): return [i for i, x in enumerate(self.field_descs) \ diff --git a/openlp/plugins/songs/lib/foilpresenterimport.py b/openlp/plugins/songs/lib/foilpresenterimport.py index 44ea56147..fef2bd41b 100644 --- a/openlp/plugins/songs/lib/foilpresenterimport.py +++ b/openlp/plugins/songs/lib/foilpresenterimport.py @@ -131,7 +131,6 @@ class FoilPresenterImport(SongImport): log.debug(u'File could not be imported: %s' % file_path) except etree.XMLSyntaxError: log.exception(u'XML syntax error in file %s' % file_path) - return True class FoilPresenter(object): @@ -235,7 +234,6 @@ class FoilPresenter(object): self._process_topics(foilpresenterfolie, song) clean_song(self.manager, song) self.manager.save_object(song) - return song.id def _child(self, element): """ diff --git a/openlp/plugins/songs/lib/olp1import.py b/openlp/plugins/songs/lib/olp1import.py index 61cdcbe06..b4995caed 100644 --- a/openlp/plugins/songs/lib/olp1import.py +++ b/openlp/plugins/songs/lib/olp1import.py @@ -32,6 +32,7 @@ import logging from chardet.universaldetector import UniversalDetector import sqlite +from openlp.core.lib import translate from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib import retrieve_windows_encoding from songimport import SongImport @@ -62,7 +63,9 @@ class OpenLP1SongImport(SongImport): Run the import for an openlp.org 1.x song database. """ if not self.import_source.endswith(u'.olp'): - return False + return translate('SongsPlugin.OpenLP1SongImport', 'The file you ' + 'were trying to import is not a valid openlp.org 1.x song ' + 'database.') encoding = self.get_encoding() if not encoding: return False diff --git a/openlp/plugins/songs/lib/olpimport.py b/openlp/plugins/songs/lib/olpimport.py index e8b9f0dd7..4e0116198 100644 --- a/openlp/plugins/songs/lib/olpimport.py +++ b/openlp/plugins/songs/lib/olpimport.py @@ -100,6 +100,9 @@ class OpenLPSongImport(SongImport): """ Run the import for an OpenLP version 2 song database. """ + if not self.import_source.endswith(u'.sqlite'): + return translate('SongsPlugin.OpenLPSongImport', 'The file you were' + ' trying to import is not a valid OpenLP 2.0 song database.') engine = create_engine(self.import_source) source_meta = MetaData() source_meta.reflect(engine) @@ -217,4 +220,3 @@ class OpenLPSongImport(SongImport): if self.stop_import_flag: return False engine.dispose() - return True diff --git a/openlp/plugins/songs/lib/oooimport.py b/openlp/plugins/songs/lib/oooimport.py index 2ab66820c..47cdace26 100644 --- a/openlp/plugins/songs/lib/oooimport.py +++ b/openlp/plugins/songs/lib/oooimport.py @@ -56,13 +56,11 @@ class OooImport(SongImport): self.process_started = False def do_import(self): - self.stop_import_flag = False - self.import_wizard.progressBar.setMaximum(0) self.start_ooo() + self.import_wizard.progressBar.setMaximum(self.import_source) for filename in self.import_source: if self.stop_import_flag: - self.import_wizard.incrementProgressBar(u'Import cancelled', 0) - return + return False filename = unicode(filename) if os.path.isfile(filename): self.open_ooo_file(filename) @@ -70,9 +68,6 @@ class OooImport(SongImport): self.process_ooo_document() self.close_ooo_file() self.close_ooo() - self.import_wizard.progressBar.setMaximum(1) - self.import_wizard.incrementProgressBar(u'', 1) - return True def process_ooo_document(self): """ diff --git a/openlp/plugins/songs/lib/openlyricsimport.py b/openlp/plugins/songs/lib/openlyricsimport.py index c29abc0b5..c72f1af89 100644 --- a/openlp/plugins/songs/lib/openlyricsimport.py +++ b/openlp/plugins/songs/lib/openlyricsimport.py @@ -71,4 +71,3 @@ class OpenLyricsImport(SongImport): log.debug(u'File could not be imported: %s' % file_path) except etree.XMLSyntaxError: log.exception(u'XML syntax error in file %s' % file_path) - return True diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py index 37fc2b5ef..a5798dc33 100644 --- a/openlp/plugins/songs/lib/opensongimport.py +++ b/openlp/plugins/songs/lib/opensongimport.py @@ -163,7 +163,8 @@ class OpenSongImport(SongImport): else: success = False break - return success + if not success: + return False def do_import_file(self, file): """ diff --git a/openlp/plugins/songs/lib/sofimport.py b/openlp/plugins/songs/lib/sofimport.py index 0b7e0c139..84955f33a 100644 --- a/openlp/plugins/songs/lib/sofimport.py +++ b/openlp/plugins/songs/lib/sofimport.py @@ -89,7 +89,7 @@ class SofImport(OooImport): while paragraphs.hasMoreElements(): if self.stop_import_flag: self.import_wizard.incrementProgressBar(u'Import cancelled', 0) - return + return False paragraph = paragraphs.nextElement() if paragraph.supportsService("com.sun.star.text.Paragraph"): self.process_paragraph(paragraph) diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index f90c05965..fcfa2f44b 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -131,7 +131,6 @@ class SongBeamerImport(SongImport): self.finish() self.import_wizard.incrementProgressBar( WizardStrings.ImportingType % file_name) - return True def replace_html_tags(self): """ diff --git a/openlp/plugins/songs/lib/songshowplusimport.py b/openlp/plugins/songs/lib/songshowplusimport.py index d5ab85f89..c7a6b6a3c 100644 --- a/openlp/plugins/songs/lib/songshowplusimport.py +++ b/openlp/plugins/songs/lib/songshowplusimport.py @@ -107,7 +107,7 @@ class SongShowPlusImport(SongImport): self.import_wizard.incrementProgressBar( WizardStrings.ImportingType % file_name, 0) songData = open(file, 'rb') - while (1): + while True: blockKey, = struct.unpack("I", songData.read(4)) # The file ends with 4 NUL's if blockKey == 0: @@ -173,7 +173,6 @@ class SongShowPlusImport(SongImport): self.finish() self.import_wizard.incrementProgressBar( WizardStrings.ImportingType % file_name) - return True def toOpenLPVerseTag(self, verseName, ignoreUnique=False): if verseName.find(" ") != -1: diff --git a/openlp/plugins/songs/lib/wowimport.py b/openlp/plugins/songs/lib/wowimport.py index cbdd40758..e6495a2b9 100644 --- a/openlp/plugins/songs/lib/wowimport.py +++ b/openlp/plugins/songs/lib/wowimport.py @@ -156,4 +156,3 @@ class WowImport(SongImport): self.finish() self.import_wizard.incrementProgressBar( WizardStrings.ImportingType % file_name) - return True From 7dfce92bc2865a4b2a3e6c3ad5a6a1763b9b6147 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Fri, 15 Apr 2011 23:18:49 +0200 Subject: [PATCH 24/94] Fixed up the Bible import documentation so that we don't have the same two screenshots all the way down the page. --- documentation/manual/source/bibles.rst | 105 ++++++++++--------------- 1 file changed, 40 insertions(+), 65 deletions(-) diff --git a/documentation/manual/source/bibles.rst b/documentation/manual/source/bibles.rst index 9fbae9b81..005ab72db 100644 --- a/documentation/manual/source/bibles.rst +++ b/documentation/manual/source/bibles.rst @@ -21,20 +21,35 @@ You will see the Bible Importer window, click :guilabel:`Next`. .. image:: pics/bibleimport01.png -After clicking :guilabel:`Next` you can select from the various types of -software that OpenLP will convert Bibles from. +After clicking :guilabel:`Next` you can select from the various types of +software that OpenLP will convert Bibles from. Click on the file folder icon to +choose the file(s) of the Bible database you want to import. See the sections +below for more information on the different formats that OpenLP will import. +Click :guilabel:`Next` to continue. .. image:: pics/bibleimport02.png -Click on the file folder icon to choose the file of the Bible database you -want to import. See the following sections for information on the different -formats that OpenLP will import. +After selecting your file(s), you'll be asked to fill in the details of the +Bible you are importing. Remember to check what information you need to display +for your Bible's translation, as some of them have strict rules around the +copyright notice. Click :guilabel:`Next` to continue. -Importing from OpenLP Version 1 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. image:: pics/bibleimportdetails1.png -Converting from OpenLP Version 1 is a simple process. First you will need to -locate your Version 1 Bibles. +After filling in the copyright details, OpenLP will start to import your Bible. +It may take some time to import your Bible so please be patient. + +.. image:: pics/bibleimportfinished1.png + +When the import has finished click :guilabel:`Finish` and you should be +ready to use your Bible in OpenLP. + +Importing from openlp.org 1.x +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Importing Bibles from openlp.org 1.x is a simple process. First you will need to +locate your version 1.x Bibles. Version 1.x Bibles have the `.bible` file +extension. Windows XP:: @@ -44,22 +59,15 @@ Windows Vista / Windows 7:: C:\ProgramData\openlp.org\Data\Bibles\ -OpenLP Version 1 Bibles have the `.bible` file extension. After selecting -all of the OpenLP Version 1 Bibles you want to convert, click :guilabel:`Next` - -.. image:: pics/bibleimportdetails1.png - -Enter your Bible name and copyright details. Click :guilabel:`Next`. It may -take some time to convert your Bibles so please be patient. - -.. image:: pics/bibleimportfinished1.png - -When the import has finished click :guilabel:`Finish` and you should be -ready to use your OpenLP Version 1 Bibles. +After selecting all of the openlp.org 1.x Bibles you want to convert, click +:guilabel:`Next` to continue the import process. Importing OSIS Bibles ^^^^^^^^^^^^^^^^^^^^^ +Importing OSIS files is very simple. Select OSIS as your import source, select +your OSIS Bible file and continue the import process. + **About OSIS Formatted Bibles** The OSIS XML standard was designed to provide a common format for distribution @@ -69,24 +77,11 @@ of electronic Bibles. More information can be found out at the `Bible Technologi If you have any software installed that is part of the `Sword Project `_ it can be easily converted. -Importing OSIS files is very simple. Select your OSIS Bible file and click -:guilabel:`Next` - -.. image:: pics/bibleimportdetails1.png - -Enter you Bible name and copyright details. Click :guilabel:`Next`. It may take -some time to convert your Bibles so please be patient. - -.. image:: pics/bibleimportfinished1.png - -Click :guilabel:`Finish` and you should be ready to use your OpenLP Version -1 Bibles. - You can use the commands below convert Bibles from that software to OSIS format. The following commands are used in all platforms and the commands are case -sensitive across all platforms. To convert a Bible using Command Prompt in -Windows or a Terminal in Linux or MAC you would type:: +sensitive across all platforms. To convert a Bible using the command prompt in +Windows or a terminal in Linux or Mac OS X you would type:: mod2osis biblename > biblename.osis @@ -114,17 +109,9 @@ You may also import downloaded bibles from OpenSong. The process is the same, except you will need to extract the bible from a zip file. This is usually done by right clicking on the downloaded file and select `Extract` or `Extract Here`. -After selecting the OpenSong Bibles you want to convert, click :guilabel:`Next` - -.. image:: pics/bibleimportdetails1.png - -Enter your Bible name and copyright details. Click :guilabel:`Next`. It may -take some time to convert your Bibles so please be patient. - -.. image:: pics/bibleimportfinished1.png - -When the import has finished then click :guilabel:`Finish` and you should now be -ready to use your OpenSong Bibles. +After selecting the OpenSong Bibles you want to import, follow the rest of the +import process. When the import has finished you should be ready to use your +OpenSong Bibles. Importing Web Download Bibles ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -139,8 +126,6 @@ as another option and does require an internet connection. To use the web download feature select web download from the import wizard. -.. image:: pics/bibleimport01.png - You can select from several options of location to download from and also what Bible translation you need. You will probably want to choose the location from where you get the best performance or has the translation you need. @@ -154,30 +139,20 @@ not be needed. .. image:: pics/webbibleproxy1.png After selecting your download location and the Bible you wish to use, click -:guilabel:`Next` When your import is completed click :guilabel:`Finish` - -.. image:: pics/biblewebcomplete.png - -You should now be ready to use the web bible. +:guilabel:`Next` to continue the import process. When your import is completed +you should now be ready to use the web bible. Importing CSV formatted Bibles ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you have a Bible in .csv format OpenLP can import it. CSV Bibles will -consist of two files a `books` file and a `verse` file. - -Select CSV from the list of Bible types to import. - -.. image:: pics/bibleimport02.png +consist of two files a `books` file and a `verse` file. Select CSV from the list +of Bible types to import. You are now ready to select your .csv files. You will need to select both your books and verse file location. .. image:: pics/csvimport1.png -After you have selected the file locations you can click :guilabel:`Next` - -.. image:: pics/bibleimportfinished1.png - -Click :guilabel:`Finish` and you should now be ready to use your imported CSV -Bible \ No newline at end of file +After you have selected the file locations you can continue with the import +process. Once it is complete you should be ready to use your imported CSV Bible. From 8090adf1bc4167ede05e137f2c68efd763b05936 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Fri, 15 Apr 2011 23:43:59 +0200 Subject: [PATCH 25/94] Made UiStrings a Singleton, and updated all usage of it. --- openlp.pyw | 4 +- openlp/core/lib/mediamanageritem.py | 12 +- openlp/core/lib/plugin.py | 18 +- openlp/core/lib/serviceitem.py | 6 +- openlp/core/lib/theme.py | 4 +- openlp/core/lib/ui.py | 176 ++++++++++-------- openlp/core/ui/aboutdialog.py | 6 +- openlp/core/ui/advancedtab.py | 6 +- openlp/core/ui/displaytagdialog.py | 6 +- openlp/core/ui/exceptionform.py | 4 +- openlp/core/ui/generaltab.py | 4 +- openlp/core/ui/mainwindow.py | 86 ++++----- openlp/core/ui/plugindialog.py | 6 +- openlp/core/ui/printservicedialog.py | 4 +- openlp/core/ui/printserviceform.py | 6 +- openlp/core/ui/servicemanager.py | 30 +-- openlp/core/ui/slidecontroller.py | 22 +-- openlp/core/ui/starttimedialog.py | 14 +- openlp/core/ui/starttimeform.py | 8 +- openlp/core/ui/themeform.py | 6 +- openlp/core/ui/thememanager.py | 6 +- openlp/core/ui/themestab.py | 4 +- openlp/core/ui/themewizard.py | 16 +- openlp/core/ui/wizard.py | 4 +- openlp/plugins/alerts/alertsplugin.py | 4 +- openlp/plugins/alerts/lib/alertstab.py | 10 +- openlp/plugins/bibles/bibleplugin.py | 10 +- .../plugins/bibles/forms/bibleimportform.py | 24 +-- openlp/plugins/bibles/lib/biblestab.py | 12 +- openlp/plugins/bibles/lib/mediaitem.py | 20 +- .../plugins/custom/forms/editcustomdialog.py | 6 +- openlp/plugins/custom/lib/mediaitem.py | 6 +- openlp/plugins/images/lib/mediaitem.py | 14 +- openlp/plugins/media/lib/mediaitem.py | 14 +- openlp/plugins/presentations/lib/mediaitem.py | 4 +- .../presentations/lib/presentationtab.py | 4 +- openlp/plugins/songs/forms/editsongdialog.py | 12 +- openlp/plugins/songs/forms/editsongform.py | 6 +- openlp/plugins/songs/forms/songexportform.py | 6 +- openlp/plugins/songs/forms/songimportform.py | 52 +++--- .../songs/forms/songmaintenancedialog.py | 20 +- .../songs/forms/songmaintenanceform.py | 4 +- openlp/plugins/songs/lib/mediaitem.py | 12 +- openlp/plugins/songs/songsplugin.py | 16 +- 44 files changed, 366 insertions(+), 348 deletions(-) diff --git a/openlp.pyw b/openlp.pyw index 5c3b8ca77..425d3c874 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -140,7 +140,7 @@ class OpenLP(QtGui.QApplication): self.sharedMemory = QtCore.QSharedMemory('OpenLP') if self.sharedMemory.attach(): status = QtGui.QMessageBox.critical(None, - UiStrings.Error, UiStrings.OpenLPStart, + UiStrings().Error, UiStrings().OpenLPStart, QtGui.QMessageBox.StandardButtons( QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)) if status == QtGui.QMessageBox.No: @@ -250,4 +250,4 @@ if __name__ == u'__main__': """ Instantiate and run the application. """ - main() + main() \ No newline at end of file diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 7671064df..e7d7bc4ec 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -435,7 +435,7 @@ class MediaManagerItem(QtGui.QWidget): item to the preview slide controller. """ if not self.listView.selectedIndexes() and not self.remoteTriggered: - QtGui.QMessageBox.information(self, UiStrings.NISp, + QtGui.QMessageBox.information(self, UiStrings().NISp, translate('OpenLP.MediaManagerItem', 'You must select one or more items to preview.')) else: @@ -453,7 +453,7 @@ class MediaManagerItem(QtGui.QWidget): item to the live slide controller. """ if not self.listView.selectedIndexes(): - QtGui.QMessageBox.information(self, UiStrings.NISp, + QtGui.QMessageBox.information(self, UiStrings().NISp, translate('OpenLP.MediaManagerItem', 'You must select one or more items to send live.')) else: @@ -468,7 +468,7 @@ class MediaManagerItem(QtGui.QWidget): Add a selected item to the current service """ if not self.listView.selectedIndexes() and not self.remoteTriggered: - QtGui.QMessageBox.information(self, UiStrings.NISp, + QtGui.QMessageBox.information(self, UiStrings().NISp, translate('OpenLP.MediaManagerItem', 'You must select one or more items.')) else: @@ -494,14 +494,14 @@ class MediaManagerItem(QtGui.QWidget): Add a selected item to an existing item in the current service. """ if not self.listView.selectedIndexes() and not self.remoteTriggered: - QtGui.QMessageBox.information(self, UiStrings.NISp, + QtGui.QMessageBox.information(self, UiStrings().NISp, translate('OpenLP.MediaManagerItem', 'You must select one or more items.')) else: log.debug(u'%s Add requested', self.plugin.name) serviceItem = self.parent.serviceManager.getServiceItem() if not serviceItem: - QtGui.QMessageBox.information(self, UiStrings.NISs, + QtGui.QMessageBox.information(self, UiStrings().NISs, translate('OpenLP.MediaManagerItem', 'You must select an existing service item to add to.')) elif self.plugin.name.lower() == serviceItem.name.lower(): @@ -554,4 +554,4 @@ class MediaManagerItem(QtGui.QWidget): item_id = remoteItem else: item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] - return item_id + return item_id \ No newline at end of file diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index 2ec1045bb..08be86541 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -330,28 +330,28 @@ class Plugin(QtCore.QObject): """ ## Load Action ## self.__setNameTextString(StringContent.Load, - UiStrings.Load, tooltips[u'load']) + UiStrings().Load, tooltips[u'load']) ## Import Action ## self.__setNameTextString(StringContent.Import, - UiStrings.Import, tooltips[u'import']) + UiStrings().Import, tooltips[u'import']) ## New Action ## self.__setNameTextString(StringContent.New, - UiStrings.Add, tooltips[u'new']) + UiStrings().Add, tooltips[u'new']) ## Edit Action ## self.__setNameTextString(StringContent.Edit, - UiStrings.Edit, tooltips[u'edit']) + UiStrings().Edit, tooltips[u'edit']) ## Delete Action ## self.__setNameTextString(StringContent.Delete, - UiStrings.Delete, tooltips[u'delete']) + UiStrings().Delete, tooltips[u'delete']) ## Preview Action ## self.__setNameTextString(StringContent.Preview, - UiStrings.Preview, tooltips[u'preview']) + UiStrings().Preview, tooltips[u'preview']) ## Send Live Action ## self.__setNameTextString(StringContent.Live, - UiStrings.Live, tooltips[u'live']) + UiStrings().Live, tooltips[u'live']) ## Add to Service Action ## self.__setNameTextString(StringContent.Service, - UiStrings.Service, tooltips[u'service']) + UiStrings().Service, tooltips[u'service']) def __setNameTextString(self, name, title, tooltip): """ @@ -359,4 +359,4 @@ class Plugin(QtCore.QObject): use of the singular name of the plugin object so must only be called after this has been set. """ - self.textStrings[name] = {u'title': title, u'tooltip': tooltip} + self.textStrings[name] = {u'title': title, u'tooltip': tooltip} \ No newline at end of file diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 48a277633..5de25f6aa 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -441,10 +441,10 @@ class ServiceItem(object): start = None end = None if self.start_time != 0: - start = UiStrings.StartTimeCode % \ + start = UiStrings().StartTimeCode % \ unicode(datetime.timedelta(seconds=self.start_time)) if self.media_length != 0: - end = UiStrings.LengthTime % \ + end = UiStrings().LengthTime % \ unicode(datetime.timedelta(seconds=self.media_length)) if not start and not end: return None @@ -453,4 +453,4 @@ class ServiceItem(object): elif not start and end: return end else: - return u'%s : %s' % (start, end) + return u'%s : %s' % (start, end) \ No newline at end of file diff --git a/openlp/core/lib/theme.py b/openlp/core/lib/theme.py index 134df7652..698f0d644 100644 --- a/openlp/core/lib/theme.py +++ b/openlp/core/lib/theme.py @@ -192,7 +192,7 @@ class VerticalType(object): Bottom = 2 Names = [u'top', u'middle', u'bottom'] - TranslatedNames = [UiStrings.Top, UiStrings.Middle, UiStrings.Bottom] + TranslatedNames = [UiStrings().Top, UiStrings().Middle, UiStrings().Bottom] BOOLEAN_LIST = [u'bold', u'italics', u'override', u'outline', u'shadow', @@ -637,4 +637,4 @@ class ThemeXML(object): self.font_footer_shadow_size) self.add_display(self.display_horizontal_align, self.display_vertical_align, - self.display_slide_transition) + self.display_slide_transition) \ No newline at end of file diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index bd47ee627..013231b8c 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -39,78 +39,96 @@ class UiStrings(object): """ Provide standard strings for objects to use. """ - # These strings should need a good reason to be retranslated elsewhere. - # Should some/more/less of these have an & attached? - About = translate('OpenLP.Ui', 'About') - Add = translate('OpenLP.Ui', '&Add') - Advanced = translate('OpenLP.Ui', 'Advanced') - AllFiles = translate('OpenLP.Ui', 'All Files') - Bottom = translate('OpenLP.Ui', 'Bottom') - Browse = translate('OpenLP.Ui', 'Browse...') - Cancel = translate('OpenLP.Ui', 'Cancel') - CCLINumberLabel = translate('OpenLP.Ui', 'CCLI number:') - CreateService = translate('OpenLP.Ui', 'Create a new service.') - Continuous = translate('OpenLP.Ui', 'Continuous') - Default = unicode(translate('OpenLP.Ui', 'Default')) - Delete = translate('OpenLP.Ui', '&Delete') - DisplayStyle = translate('OpenLP.Ui', 'Display style:') - Edit = translate('OpenLP.Ui', '&Edit') - EmptyField = translate('OpenLP.Ui', 'Empty Field') - Error = translate('OpenLP.Ui', 'Error') - Export = translate('OpenLP.Ui', 'Export') - File = translate('OpenLP.Ui', 'File') - FontSizePtUnit = translate('OpenLP.Ui', 'pt', - 'Abbreviated font pointsize unit') - Help = translate('OpenLP.Ui', 'Help') - Hours = translate('OpenLP.Ui', 'h', 'The abbreviated unit for hours') - Image = translate('OpenLP.Ui', 'Image') - Import = translate('OpenLP.Ui', 'Import') - LayoutStyle = translate('OpenLP.Ui', 'Layout style:') - LengthTime = unicode(translate('OpenLP.Ui', 'Length %s')) - Live = translate('OpenLP.Ui', 'Live') - LiveBGError = translate('OpenLP.Ui', 'Live Background Error') - LivePanel = translate('OpenLP.Ui', 'Live Panel') - LiveToolbar = translate('OpenLP.Ui', 'Live Toolbar') - Load = translate('OpenLP.Ui', 'Load') - Minutes = translate('OpenLP.Ui', 'm', 'The abbreviated unit for minutes') - Middle = translate('OpenLP.Ui', 'Middle') - New = translate('OpenLP.Ui', 'New') - NewService = translate('OpenLP.Ui', 'New Service') - NewTheme = translate('OpenLP.Ui', 'New Theme') - NFSs = translate('OpenLP.Ui', 'No File Selected', 'Singular') - NFSp = translate('OpenLP.Ui', 'No Files Selected', 'Plural') - NISs = translate('OpenLP.Ui', 'No Item Selected', 'Singular') - NISp = translate('OpenLP.Ui', 'No Items Selected', 'Plural') - OLPV1 = translate('OpenLP.Ui', 'openlp.org 1.x') - OLPV2 = translate('OpenLP.Ui', 'OpenLP 2.0') - OpenLPStart = translate('OpenLP.Ui', 'OpenLP is already running. Do you ' - 'wish to continue?') - OpenService = translate('OpenLP.Ui', 'Open Service') - Preview = translate('OpenLP.Ui', 'Preview') - PreviewPanel = translate('OpenLP.Ui', 'Preview Panel') - PrintServiceOrder = translate('OpenLP.Ui', 'Print Service Order') - ReplaceBG = translate('OpenLP.Ui', 'Replace Background') - ReplaceLiveBG = translate('OpenLP.Ui', 'Replace Live Background') - ResetBG = translate('OpenLP.Ui', 'Reset Background') - ResetLiveBG = translate('OpenLP.Ui', 'Reset Live Background') - Seconds = translate('OpenLP.Ui', 's', 'The abbreviated unit for seconds') - SaveAndPreview = translate('OpenLP.Ui', 'Save && Preview') - Search = translate('OpenLP.Ui', 'Search') - SelectDelete = translate('OpenLP.Ui', 'You must select an item to delete.') - SelectEdit = translate('OpenLP.Ui', 'You must select an item to edit.') - Settings = translate('OpenLP.Ui', 'Settings') - SaveService = translate('OpenLP.Ui', 'Save Service') - Service = translate('OpenLP.Ui', 'Service') - StartTimeCode = unicode(translate('OpenLP.Ui', 'Start %s')) - Theme = translate('OpenLP.Ui', 'Theme', 'Singular') - Themes = translate('OpenLP.Ui', 'Themes', 'Plural') - Tools = translate('OpenLP.Ui', 'Tools') - Top = translate('OpenLP.Ui', 'Top') - VersePerSlide = translate('OpenLP.Ui', 'Verse Per Slide') - VersePerLine = translate('OpenLP.Ui', 'Verse Per Line') - Version = translate('OpenLP.Ui', 'Version') - View = translate('OpenLP.Ui', 'View') - ViewMode = translate('OpenLP.Ui', 'View Model') + __instance__ = None + + def __new__(cls): + """ + Override the default object creation method to return a single instance. + """ + if not cls.__instance__: + cls.__instance__ = object.__new__(cls) + return cls.__instance__ + + def __init__(self): + """ + These strings should need a good reason to be retranslated elsewhere. + Should some/more/less of these have an & attached? + """ + self.About = translate('OpenLP.Ui', 'About') + self.Add = translate('OpenLP.Ui', '&Add') + self.Advanced = translate('OpenLP.Ui', 'Advanced') + self.AllFiles = translate('OpenLP.Ui', 'All Files') + self.Bottom = translate('OpenLP.Ui', 'Bottom') + self.Browse = translate('OpenLP.Ui', 'Browse...') + self.Cancel = translate('OpenLP.Ui', 'Cancel') + self.CCLINumberLabel = translate('OpenLP.Ui', 'CCLI number:') + self.CreateService = translate('OpenLP.Ui', 'Create a new service.') + self.Continuous = translate('OpenLP.Ui', 'Continuous') + self.Default = unicode(translate('OpenLP.Ui', 'Default')) + self.Delete = translate('OpenLP.Ui', '&Delete') + self.DisplayStyle = translate('OpenLP.Ui', 'Display style:') + self.Edit = translate('OpenLP.Ui', '&Edit') + self.EmptyField = translate('OpenLP.Ui', 'Empty Field') + self.Error = translate('OpenLP.Ui', 'Error') + self.Export = translate('OpenLP.Ui', 'Export') + self.File = translate('OpenLP.Ui', 'File') + self.FontSizePtUnit = translate('OpenLP.Ui', 'pt', + 'Abbreviated font pointsize unit') + self.Help = translate('OpenLP.Ui', 'Help') + self.Hours = translate('OpenLP.Ui', 'h', + 'The abbreviated unit for hours') + self.Image = translate('OpenLP.Ui', 'Image') + self.Import = translate('OpenLP.Ui', 'Import') + self.LayoutStyle = translate('OpenLP.Ui', 'Layout style:') + self.LengthTime = unicode(translate('OpenLP.Ui', 'Length %s')) + self.Live = translate('OpenLP.Ui', 'Live') + self.LiveBGError = translate('OpenLP.Ui', 'Live Background Error') + self.LivePanel = translate('OpenLP.Ui', 'Live Panel') + self.LiveToolbar = translate('OpenLP.Ui', 'Live Toolbar') + self.Load = translate('OpenLP.Ui', 'Load') + self.Minutes = translate('OpenLP.Ui', 'm', + 'The abbreviated unit for minutes') + self.Middle = translate('OpenLP.Ui', 'Middle') + self.New = translate('OpenLP.Ui', 'New') + self.NewService = translate('OpenLP.Ui', 'New Service') + self.NewTheme = translate('OpenLP.Ui', 'New Theme') + self.NFSs = translate('OpenLP.Ui', 'No File Selected', 'Singular') + self.NFSp = translate('OpenLP.Ui', 'No Files Selected', 'Plural') + self.NISs = translate('OpenLP.Ui', 'No Item Selected', 'Singular') + self.NISp = translate('OpenLP.Ui', 'No Items Selected', 'Plural') + self.OLPV1 = translate('OpenLP.Ui', 'openlp.org 1.x') + self.OLPV2 = translate('OpenLP.Ui', 'OpenLP 2.0') + self.OpenLPStart = translate('OpenLP.Ui', 'OpenLP is already running. ' + 'Do you wish to continue?') + self.OpenService = translate('OpenLP.Ui', 'Open Service') + self.Preview = translate('OpenLP.Ui', 'Preview') + self.PreviewPanel = translate('OpenLP.Ui', 'Preview Panel') + self.PrintServiceOrder = translate('OpenLP.Ui', 'Print Service Order') + self.ReplaceBG = translate('OpenLP.Ui', 'Replace Background') + self.ReplaceLiveBG = translate('OpenLP.Ui', 'Replace Live Background') + self.ResetBG = translate('OpenLP.Ui', 'Reset Background') + self.ResetLiveBG = translate('OpenLP.Ui', 'Reset Live Background') + self.Seconds = translate('OpenLP.Ui', 's', + 'The abbreviated unit for seconds') + self.SaveAndPreview = translate('OpenLP.Ui', 'Save && Preview') + self.Search = translate('OpenLP.Ui', 'Search') + self.SelectDelete = translate('OpenLP.Ui', 'You must select an item ' + 'to delete.') + self.SelectEdit = translate('OpenLP.Ui', 'You must select an item to ' + 'edit.') + self.Settings = translate('OpenLP.Ui', 'Settings') + self.SaveService = translate('OpenLP.Ui', 'Save Service') + self.Service = translate('OpenLP.Ui', 'Service') + self.StartTimeCode = unicode(translate('OpenLP.Ui', 'Start %s')) + self.Theme = translate('OpenLP.Ui', 'Theme', 'Singular') + self.Themes = translate('OpenLP.Ui', 'Themes', 'Plural') + self.Tools = translate('OpenLP.Ui', 'Tools') + self.Top = translate('OpenLP.Ui', 'Top') + self.VersePerSlide = translate('OpenLP.Ui', 'Verse Per Slide') + self.VersePerLine = translate('OpenLP.Ui', 'Verse Per Line') + self.Version = translate('OpenLP.Ui', 'Version') + self.View = translate('OpenLP.Ui', 'View') + self.ViewMode = translate('OpenLP.Ui', 'View Model') def add_welcome_page(parent, image): """ @@ -184,11 +202,11 @@ def critical_error_message_box(title=None, message=None, parent=None, Should this message box question the user. """ if question: - return QtGui.QMessageBox.critical(parent, UiStrings.Error, message, + return QtGui.QMessageBox.critical(parent, UiStrings().Error, message, QtGui.QMessageBox.StandardButtons( QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)) data = {u'message': message} - data[u'title'] = title if title else UiStrings.Error + data[u'title'] = title if title else UiStrings().Error return Receiver.send_message(u'openlp_error_message', data) def media_item_combo_box(parent, name): @@ -218,7 +236,7 @@ def create_delete_push_button(parent, icon=None): delete_button.setObjectName(u'deleteButton') delete_icon = icon if icon else u':/general/general_delete.png' delete_button.setIcon(build_icon(delete_icon)) - delete_button.setText(UiStrings.Delete) + delete_button.setText(UiStrings().Delete) delete_button.setToolTip( translate('OpenLP.Ui', 'Delete the selected item.')) QtCore.QObject.connect(delete_button, @@ -406,9 +424,9 @@ def create_valign_combo(form, parent, layout): verticalLabel.setText(translate('OpenLP.Ui', '&Vertical Align:')) form.verticalComboBox = QtGui.QComboBox(parent) form.verticalComboBox.setObjectName(u'VerticalComboBox') - form.verticalComboBox.addItem(UiStrings.Top) - form.verticalComboBox.addItem(UiStrings.Middle) - form.verticalComboBox.addItem(UiStrings.Bottom) + form.verticalComboBox.addItem(UiStrings().Top) + form.verticalComboBox.addItem(UiStrings().Middle) + form.verticalComboBox.addItem(UiStrings().Bottom) verticalLabel.setBuddy(form.verticalComboBox) layout.addRow(verticalLabel, form.verticalComboBox) @@ -427,4 +445,4 @@ def find_and_set_in_combo_box(combo_box, value_to_find): if index == -1: # Not Found. index = 0 - combo_box.setCurrentIndex(index) + combo_box.setCurrentIndex(index) \ No newline at end of file diff --git a/openlp/core/ui/aboutdialog.py b/openlp/core/ui/aboutdialog.py index 719cb02c2..d4ea463ea 100644 --- a/openlp/core/ui/aboutdialog.py +++ b/openlp/core/ui/aboutdialog.py @@ -87,7 +87,7 @@ class Ui_AboutDialog(object): QtCore.QMetaObject.connectSlotsByName(aboutDialog) def retranslateUi(self, aboutDialog): - aboutDialog.setWindowTitle(u'%s OpenLP' % UiStrings.About) + aboutDialog.setWindowTitle(u'%s OpenLP' % UiStrings().About) self.aboutTextEdit.setPlainText(translate('OpenLP.AboutForm', 'OpenLP - Open Source Lyrics ' 'Projection\n' @@ -105,7 +105,7 @@ class Ui_AboutDialog(object): 'consider contributing by using the button below.' )) self.aboutNotebook.setTabText( - self.aboutNotebook.indexOf(self.aboutTab), UiStrings.About) + self.aboutNotebook.indexOf(self.aboutTab), UiStrings().About) lead = u'Raoul "superfly" Snyman' developers = [u'Tim "TRB143" Bentley', u'Jonathan "gushie" Corwin', u'Michael "cocooncrash" Gorven', @@ -615,4 +615,4 @@ class Ui_AboutDialog(object): self.aboutNotebook.indexOf(self.licenseTab), translate('OpenLP.AboutForm', 'License')) self.contributeButton.setText(translate('OpenLP.AboutForm', - 'Contribute')) + 'Contribute')) \ No newline at end of file diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 199ebff60..94bcb0801 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -127,7 +127,7 @@ class AdvancedTab(SettingsTab): """ Setup the interface translation strings. """ - self.tabTitleVisible = UiStrings.Advanced + self.tabTitleVisible = UiStrings().Advanced self.uiGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'UI Settings')) self.recentLabel.setText( translate('OpenLP.AdvancedTab', @@ -226,10 +226,10 @@ class AdvancedTab(SettingsTab): def onDefaultBrowseButtonPressed(self): file_filters = u'%s;;%s (*.*) (*)' % (get_images_filter(), - UiStrings.AllFiles) + UiStrings().AllFiles) filename = QtGui.QFileDialog.getOpenFileName(self, translate('OpenLP.AdvancedTab', 'Open File'), '', file_filters) if filename: self.defaultFileEdit.setText(filename) - self.defaultFileEdit.setFocus() + self.defaultFileEdit.setFocus() \ No newline at end of file diff --git a/openlp/core/ui/displaytagdialog.py b/openlp/core/ui/displaytagdialog.py index 848818e88..8e71a60ff 100644 --- a/openlp/core/ui/displaytagdialog.py +++ b/openlp/core/ui/displaytagdialog.py @@ -136,10 +136,10 @@ class Ui_DisplayTagDialog(object): translate('OpenLP.DisplayTagDialog', 'Start tag')) self.endTagLabel.setText( translate('OpenLP.DisplayTagDialog', 'End tag')) - self.deletePushButton.setText(UiStrings.Delete) + self.deletePushButton.setText(UiStrings().Delete) self.defaultPushButton.setText( translate('OpenLP.DisplayTagDialog', 'Default')) - self.newPushButton.setText(UiStrings.New) + self.newPushButton.setText(UiStrings().New) self.tagTableWidget.horizontalHeaderItem(0).setText( translate('OpenLP.DisplayTagDialog', 'Description')) self.tagTableWidget.horizontalHeaderItem(1).setText( @@ -151,4 +151,4 @@ class Ui_DisplayTagDialog(object): self.tagTableWidget.setColumnWidth(0, 120) self.tagTableWidget.setColumnWidth(1, 40) self.tagTableWidget.setColumnWidth(2, 240) - self.tagTableWidget.setColumnWidth(3, 240) + self.tagTableWidget.setColumnWidth(3, 240) \ No newline at end of file diff --git a/openlp/core/ui/exceptionform.py b/openlp/core/ui/exceptionform.py index 0ae9497c9..622d60f79 100644 --- a/openlp/core/ui/exceptionform.py +++ b/openlp/core/ui/exceptionform.py @@ -178,11 +178,11 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog): self,translate('ImagePlugin.ExceptionDialog', 'Select Attachment'), SettingsManager.get_last_dir(u'exceptions'), - u'%s (*.*) (*)' % UiStrings.AllFiles) + u'%s (*.*) (*)' % UiStrings().AllFiles) log.info(u'New files(s) %s', unicode(files)) if files: self.fileAttachment = unicode(files) def __buttonState(self, state): self.saveReportButton.setEnabled(state) - self.sendReportButton.setEnabled(state) + self.sendReportButton.setEnabled(state) \ No newline at end of file diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py index cfde7810c..7dac2fe9d 100644 --- a/openlp/core/ui/generaltab.py +++ b/openlp/core/ui/generaltab.py @@ -238,7 +238,7 @@ class GeneralTab(SettingsTab): self.timeoutSpinBox.setSuffix(translate('OpenLP.GeneralTab', ' sec')) self.ccliGroupBox.setTitle( translate('OpenLP.GeneralTab', 'CCLI Details')) - self.numberLabel.setText(UiStrings.CCLINumberLabel) + self.numberLabel.setText(UiStrings().CCLINumberLabel) self.usernameLabel.setText( translate('OpenLP.GeneralTab', 'SongSelect username:')) self.passwordLabel.setText( @@ -394,4 +394,4 @@ class GeneralTab(SettingsTab): """ Called when the width, height, x position or y position has changed. """ - self.overrideChanged = True + self.overrideChanged = True \ No newline at end of file diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 2038e1972..d2fbaef9e 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -163,82 +163,82 @@ class Ui_MainWindow(object): self.themeManagerDock) # Create the menu items action_list = ActionList.get_instance() - action_list.add_category(UiStrings.File, CategoryOrder.standardMenu) + action_list.add_category(UiStrings().File, CategoryOrder.standardMenu) self.FileNewItem = shortcut_action(mainWindow, u'FileNewItem', [QtGui.QKeySequence(u'Ctrl+N')], self.ServiceManagerContents.onNewServiceClicked, - u':/general/general_new.png', category=UiStrings.File) + u':/general/general_new.png', category=UiStrings().File) self.FileOpenItem = shortcut_action(mainWindow, u'FileOpenItem', [QtGui.QKeySequence(u'Ctrl+O')], self.ServiceManagerContents.onLoadServiceClicked, - u':/general/general_open.png', category=UiStrings.File) + u':/general/general_open.png', category=UiStrings().File) self.FileSaveItem = shortcut_action(mainWindow, u'FileSaveItem', [QtGui.QKeySequence(u'Ctrl+S')], self.ServiceManagerContents.saveFile, - u':/general/general_save.png', category=UiStrings.File) + u':/general/general_save.png', category=UiStrings().File) self.FileSaveAsItem = shortcut_action(mainWindow, u'FileSaveAsItem', [QtGui.QKeySequence(u'Ctrl+Shift+S')], - self.ServiceManagerContents.saveFileAs, category=UiStrings.File) + self.ServiceManagerContents.saveFileAs, category=UiStrings().File) self.printServiceOrderItem = shortcut_action(mainWindow, u'printServiceItem', [QtGui.QKeySequence(u'Ctrl+P')], self.ServiceManagerContents.printServiceOrder, - category=UiStrings.File) + category=UiStrings().File) self.FileExitItem = shortcut_action(mainWindow, u'FileExitItem', [QtGui.QKeySequence(u'Alt+F4')], mainWindow.close, - u':/system/system_exit.png', category=UiStrings.File) - action_list.add_category(UiStrings.Import, CategoryOrder.standardMenu) + u':/system/system_exit.png', category=UiStrings().File) + action_list.add_category(UiStrings().Import, CategoryOrder.standardMenu) self.ImportThemeItem = base_action( - mainWindow, u'ImportThemeItem', UiStrings.Import) + mainWindow, u'ImportThemeItem', UiStrings().Import) self.ImportLanguageItem = base_action( - mainWindow, u'ImportLanguageItem')#, UiStrings.Import) - action_list.add_category(UiStrings.Export, CategoryOrder.standardMenu) + mainWindow, u'ImportLanguageItem')#, UiStrings().Import) + action_list.add_category(UiStrings().Export, CategoryOrder.standardMenu) self.ExportThemeItem = base_action( - mainWindow, u'ExportThemeItem', UiStrings.Export) + mainWindow, u'ExportThemeItem', UiStrings().Export) self.ExportLanguageItem = base_action( - mainWindow, u'ExportLanguageItem')#, UiStrings.Export) - action_list.add_category(UiStrings.View, CategoryOrder.standardMenu) + mainWindow, u'ExportLanguageItem')#, UiStrings().Export) + action_list.add_category(UiStrings().View, CategoryOrder.standardMenu) self.ViewMediaManagerItem = shortcut_action(mainWindow, u'ViewMediaManagerItem', [QtGui.QKeySequence(u'F8')], self.toggleMediaManager, u':/system/system_mediamanager.png', - self.mediaManagerDock.isVisible(), UiStrings.View) + self.mediaManagerDock.isVisible(), UiStrings().View) self.ViewThemeManagerItem = shortcut_action(mainWindow, u'ViewThemeManagerItem', [QtGui.QKeySequence(u'F10')], self.toggleThemeManager, u':/system/system_thememanager.png', - self.themeManagerDock.isVisible(), UiStrings.View) + self.themeManagerDock.isVisible(), UiStrings().View) self.ViewServiceManagerItem = shortcut_action(mainWindow, u'ViewServiceManagerItem', [QtGui.QKeySequence(u'F9')], self.toggleServiceManager, u':/system/system_servicemanager.png', - self.serviceManagerDock.isVisible(), UiStrings.View) + self.serviceManagerDock.isVisible(), UiStrings().View) self.ViewPreviewPanel = shortcut_action(mainWindow, u'ViewPreviewPanel', [QtGui.QKeySequence(u'F11')], self.setPreviewPanelVisibility, checked=previewVisible, - category=UiStrings.View) + category=UiStrings().View) self.ViewLivePanel = shortcut_action(mainWindow, u'ViewLivePanel', [QtGui.QKeySequence(u'F12')], self.setLivePanelVisibility, - checked=liveVisible, category=UiStrings.View) - action_list.add_category(UiStrings.ViewMode, CategoryOrder.standardMenu) + checked=liveVisible, category=UiStrings().View) + action_list.add_category(UiStrings().ViewMode, CategoryOrder.standardMenu) self.ModeDefaultItem = checkable_action( - mainWindow, u'ModeDefaultItem', category=UiStrings.ViewMode) + mainWindow, u'ModeDefaultItem', category=UiStrings().ViewMode) self.ModeSetupItem = checkable_action( - mainWindow, u'ModeLiveItem', category=UiStrings.ViewMode) + mainWindow, u'ModeLiveItem', category=UiStrings().ViewMode) self.ModeLiveItem = checkable_action( - mainWindow, u'ModeLiveItem', True, UiStrings.ViewMode) + mainWindow, u'ModeLiveItem', True, UiStrings().ViewMode) self.ModeGroup = QtGui.QActionGroup(mainWindow) self.ModeGroup.addAction(self.ModeDefaultItem) self.ModeGroup.addAction(self.ModeSetupItem) self.ModeGroup.addAction(self.ModeLiveItem) self.ModeDefaultItem.setChecked(True) - action_list.add_category(UiStrings.Tools, CategoryOrder.standardMenu) + action_list.add_category(UiStrings().Tools, CategoryOrder.standardMenu) self.ToolsAddToolItem = icon_action(mainWindow, u'ToolsAddToolItem', - u':/tools/tools_add.png', category=UiStrings.Tools) + u':/tools/tools_add.png', category=UiStrings().Tools) self.ToolsOpenDataFolder = icon_action(mainWindow, u'ToolsOpenDataFolder', u':/general/general_open.png', - category=UiStrings.Tools) - action_list.add_category(UiStrings.Settings, CategoryOrder.standardMenu) + category=UiStrings().Tools) + action_list.add_category(UiStrings().Settings, CategoryOrder.standardMenu) self.settingsPluginListItem = shortcut_action(mainWindow, u'settingsPluginListItem', [QtGui.QKeySequence(u'Alt+F7')], self.onPluginItemClicked, u':/system/settings_plugin_list.png', - category=UiStrings.Settings) + category=UiStrings().Settings) # i18n Language Items self.AutoLanguageItem = checkable_action(mainWindow, u'AutoLanguageItem', LanguageManager.auto_language) @@ -255,25 +255,25 @@ class Ui_MainWindow(object): self.SettingsShortcutsItem = icon_action(mainWindow, u'SettingsShortcutsItem', u':/system/system_configure_shortcuts.png', - category=UiStrings.Settings) + category=UiStrings().Settings) self.DisplayTagItem = icon_action(mainWindow, u'DisplayTagItem', u':/system/tag_editor.png', - category=UiStrings.Settings) + category=UiStrings().Settings) self.SettingsConfigureItem = icon_action(mainWindow, u'SettingsConfigureItem', u':/system/system_settings.png', - category=UiStrings.Settings) - action_list.add_category(UiStrings.Help, CategoryOrder.standardMenu) + category=UiStrings().Settings) + action_list.add_category(UiStrings().Help, CategoryOrder.standardMenu) self.HelpDocumentationItem = icon_action(mainWindow, u'HelpDocumentationItem', u':/system/system_help_contents.png', - category=None)#UiStrings.Help) + category=None)#UiStrings().Help) self.HelpDocumentationItem.setEnabled(False) self.HelpAboutItem = shortcut_action(mainWindow, u'HelpAboutItem', [QtGui.QKeySequence(u'Ctrl+F1')], self.onHelpAboutItemClicked, - u':/system/system_about.png', category=UiStrings.Help) + u':/system/system_about.png', category=UiStrings().Help) self.HelpOnlineHelpItem = base_action( - mainWindow, u'HelpOnlineHelpItem', category=UiStrings.Help) + mainWindow, u'HelpOnlineHelpItem', category=UiStrings().Help) self.helpWebSiteItem = base_action( - mainWindow, u'helpWebSiteItem', category=UiStrings.Help) + mainWindow, u'helpWebSiteItem', category=UiStrings().Help) add_actions(self.FileImportMenu, (self.ImportThemeItem, self.ImportLanguageItem)) add_actions(self.FileExportMenu, @@ -320,7 +320,7 @@ class Ui_MainWindow(object): """ Set up the translation system """ - mainWindow.mainTitle = UiStrings.OLPV2 + mainWindow.mainTitle = UiStrings().OLPV2 mainWindow.setWindowTitle(mainWindow.mainTitle) self.FileMenu.setTitle(translate('OpenLP.MainWindow', '&File')) self.FileImportMenu.setTitle(translate('OpenLP.MainWindow', '&Import')) @@ -339,14 +339,14 @@ class Ui_MainWindow(object): self.themeManagerDock.setWindowTitle( translate('OpenLP.MainWindow', 'Theme Manager')) self.FileNewItem.setText(translate('OpenLP.MainWindow', '&New')) - self.FileNewItem.setToolTip(UiStrings.NewService) - self.FileNewItem.setStatusTip(UiStrings.CreateService) + self.FileNewItem.setToolTip(UiStrings().NewService) + self.FileNewItem.setStatusTip(UiStrings().CreateService) self.FileOpenItem.setText(translate('OpenLP.MainWindow', '&Open')) - self.FileOpenItem.setToolTip(UiStrings.OpenService) + self.FileOpenItem.setToolTip(UiStrings().OpenService) self.FileOpenItem.setStatusTip( translate('OpenLP.MainWindow', 'Open an existing service.')) self.FileSaveItem.setText(translate('OpenLP.MainWindow', '&Save')) - self.FileSaveItem.setToolTip(UiStrings.SaveService) + self.FileSaveItem.setToolTip(UiStrings().SaveService) self.FileSaveItem.setStatusTip( translate('OpenLP.MainWindow', 'Save the current service to disk.')) self.FileSaveAsItem.setText( @@ -355,7 +355,7 @@ class Ui_MainWindow(object): translate('OpenLP.MainWindow', 'Save Service As')) self.FileSaveAsItem.setStatusTip(translate('OpenLP.MainWindow', 'Save the current service under a new name.')) - self.printServiceOrderItem.setText(UiStrings.PrintServiceOrder) + self.printServiceOrderItem.setText(UiStrings().PrintServiceOrder) self.printServiceOrderItem.setStatusTip(translate('OpenLP.MainWindow', 'Print the current Service Order.')) self.FileExitItem.setText( @@ -1011,4 +1011,4 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): self.recentFiles.insert(0, QtCore.QString(filename)) while self.recentFiles.count() > maxRecentFiles: # Don't care what API says takeLast works, removeLast doesn't! - self.recentFiles.takeLast() + self.recentFiles.takeLast() \ No newline at end of file diff --git a/openlp/core/ui/plugindialog.py b/openlp/core/ui/plugindialog.py index 0ead739a5..84fb845c6 100644 --- a/openlp/core/ui/plugindialog.py +++ b/openlp/core/ui/plugindialog.py @@ -78,11 +78,11 @@ class Ui_PluginViewDialog(object): translate('OpenLP.PluginForm', 'Plugin List')) self.pluginInfoGroupBox.setTitle( translate('OpenLP.PluginForm', 'Plugin Details')) - self.versionLabel.setText(u'%s:' % UiStrings.Version) - self.aboutLabel.setText(u'%s:' % UiStrings.About) + self.versionLabel.setText(u'%s:' % UiStrings().Version) + self.aboutLabel.setText(u'%s:' % UiStrings().About) self.statusLabel.setText( translate('OpenLP.PluginForm', 'Status:')) self.statusComboBox.setItemText(0, translate('OpenLP.PluginForm', 'Active')) self.statusComboBox.setItemText(1, - translate('OpenLP.PluginForm', 'Inactive')) + translate('OpenLP.PluginForm', 'Inactive')) \ No newline at end of file diff --git a/openlp/core/ui/printservicedialog.py b/openlp/core/ui/printservicedialog.py index 9593e9ec4..889bc4f7d 100644 --- a/openlp/core/ui/printservicedialog.py +++ b/openlp/core/ui/printservicedialog.py @@ -148,7 +148,7 @@ class Ui_PrintServiceDialog(object): QtCore.SIGNAL(u'toggled(bool)'), self.toggleOptions) def retranslateUi(self, printServiceDialog): - printServiceDialog.setWindowTitle(UiStrings.PrintServiceOrder) + printServiceDialog.setWindowTitle(UiStrings().PrintServiceOrder) self.slideTextCheckBox.setText(translate('OpenLP.PrintServiceForm', 'Include slide text if available')) self.pageBreakAfterText.setText(translate('OpenLP.PrintServiceForm', @@ -164,4 +164,4 @@ class Ui_PrintServiceDialog(object): self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.OneHundred]) self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.SeventyFive]) self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.Fifty]) - self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.TwentyFive]) + self.zoomComboBox.addItem(ZoomSize.Sizes[ZoomSize.TwentyFive]) \ No newline at end of file diff --git a/openlp/core/ui/printserviceform.py b/openlp/core/ui/printserviceform.py index 0de20d8a9..42b773198 100644 --- a/openlp/core/ui/printserviceform.py +++ b/openlp/core/ui/printserviceform.py @@ -354,9 +354,9 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): Called when html copy check box is selected. """ if value == QtCore.Qt.Checked: - self.copyTextButton.setText(UiStrings.CopyToHtml) + self.copyTextButton.setText(UiStrings().CopyToHtml) else: - self.copyTextButton.setText(UiStrings.CopyToText) + self.copyTextButton.setText(UiStrings().CopyToText) def onSlideTextCheckBoxChanged(self, state): """ @@ -380,4 +380,4 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): QtCore.QVariant(self.metaDataCheckBox.isChecked())) settings.setValue(u'print notes', QtCore.QVariant(self.notesCheckBox.isChecked())) - settings.endGroup() + settings.endGroup() \ No newline at end of file diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index ba9ca718a..d682f5b52 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -111,18 +111,18 @@ class ServiceManager(QtGui.QWidget): # Create the top toolbar self.toolbar = OpenLPToolbar(self) self.toolbar.addToolbarButton( - UiStrings.NewService, u':/general/general_new.png', - UiStrings.CreateService, self.onNewServiceClicked) + UiStrings().NewService, u':/general/general_new.png', + UiStrings().CreateService, self.onNewServiceClicked) self.toolbar.addToolbarButton( - UiStrings.OpenService, u':/general/general_open.png', + UiStrings().OpenService, u':/general/general_open.png', translate('OpenLP.ServiceManager', 'Load an existing service'), self.onLoadServiceClicked) self.toolbar.addToolbarButton( - UiStrings.SaveService, u':/general/general_save.png', + UiStrings().SaveService, u':/general/general_save.png', translate('OpenLP.ServiceManager', 'Save this service'), self.saveFile) self.toolbar.addSeparator() - self.themeLabel = QtGui.QLabel(u'%s:' % UiStrings.Theme, self) + self.themeLabel = QtGui.QLabel(u'%s:' % UiStrings().Theme, self) self.themeLabel.setMargin(3) self.themeLabel.setObjectName(u'themeLabel') self.toolbar.addToolbarWidget(u'ThemeLabel', self.themeLabel) @@ -169,9 +169,9 @@ class ServiceManager(QtGui.QWidget): self.onServiceTop, shortcuts=[QtCore.Qt.Key_Home]) self.serviceManagerList.moveTop.setObjectName(u'moveTop') action_list = ActionList.get_instance() - action_list.add_category(UiStrings.Service, CategoryOrder.standardToolbar) + action_list.add_category(UiStrings().Service, CategoryOrder.standardToolbar) action_list.add_action( - self.serviceManagerList.moveTop, UiStrings.Service) + self.serviceManagerList.moveTop, UiStrings().Service) self.serviceManagerList.moveUp = self.orderToolbar.addToolbarButton( translate('OpenLP.ServiceManager', 'Move &up'), u':/services/service_up.png', @@ -179,7 +179,7 @@ class ServiceManager(QtGui.QWidget): 'Move item up one position in the service.'), self.onServiceUp, shortcuts=[QtCore.Qt.Key_PageUp]) self.serviceManagerList.moveUp.setObjectName(u'moveUp') - action_list.add_action(self.serviceManagerList.moveUp, UiStrings.Service) + action_list.add_action(self.serviceManagerList.moveUp, UiStrings().Service) self.serviceManagerList.moveDown = self.orderToolbar.addToolbarButton( translate('OpenLP.ServiceManager', 'Move &down'), u':/services/service_down.png', @@ -188,7 +188,7 @@ class ServiceManager(QtGui.QWidget): self.onServiceDown, shortcuts=[QtCore.Qt.Key_PageDown]) self.serviceManagerList.moveDown.setObjectName(u'moveDown') action_list.add_action( - self.serviceManagerList.moveDown, UiStrings.Service) + self.serviceManagerList.moveDown, UiStrings().Service) self.serviceManagerList.moveBottom = self.orderToolbar.addToolbarButton( translate('OpenLP.ServiceManager', 'Move to &bottom'), u':/services/service_bottom.png', @@ -197,7 +197,7 @@ class ServiceManager(QtGui.QWidget): self.onServiceEnd, shortcuts=[QtCore.Qt.Key_End]) self.serviceManagerList.moveBottom.setObjectName(u'moveBottom') action_list.add_action( - self.serviceManagerList.moveBottom, UiStrings.Service) + self.serviceManagerList.moveBottom, UiStrings().Service) self.serviceManagerList.down = self.orderToolbar.addToolbarButton( translate('OpenLP.ServiceManager', 'Move &down'), None, @@ -231,7 +231,7 @@ class ServiceManager(QtGui.QWidget): 'Expand all the service items.'), self.onExpandAll, shortcuts=[QtCore.Qt.Key_Plus]) self.serviceManagerList.expand.setObjectName(u'expand') - action_list.add_action(self.serviceManagerList.expand, UiStrings.Service) + action_list.add_action(self.serviceManagerList.expand, UiStrings().Service) self.serviceManagerList.collapse = self.orderToolbar.addToolbarButton( translate('OpenLP.ServiceManager', '&Collapse all'), u':/services/service_collapse_all.png', @@ -240,7 +240,7 @@ class ServiceManager(QtGui.QWidget): self.onCollapseAll, shortcuts=[QtCore.Qt.Key_Minus]) self.serviceManagerList.collapse.setObjectName(u'collapse') action_list.add_action( - self.serviceManagerList.collapse, UiStrings.Service) + self.serviceManagerList.collapse, UiStrings().Service) self.orderToolbar.addSeparator() self.serviceManagerList.makeLive = self.orderToolbar.addToolbarButton( translate('OpenLP.ServiceManager', 'Go Live'), @@ -250,7 +250,7 @@ class ServiceManager(QtGui.QWidget): shortcuts=[QtCore.Qt.Key_Enter, QtCore.Qt.Key_Return]) self.serviceManagerList.makeLive.setObjectName(u'orderToolbar') action_list.add_action( - self.serviceManagerList.makeLive, UiStrings.Service) + self.serviceManagerList.makeLive, UiStrings().Service) self.layout.addWidget(self.orderToolbar) # Connect up our signals and slots QtCore.QObject.connect(self.themeComboBox, @@ -525,7 +525,7 @@ class ServiceManager(QtGui.QWidget): save the file. """ fileName = unicode(QtGui.QFileDialog.getSaveFileName(self.mainwindow, - UiStrings.SaveService, + UiStrings().SaveService, SettingsManager.get_last_dir( self.mainwindow.serviceSettingsSection), translate('OpenLP.ServiceManager', 'OpenLP Service Files (*.osz)'))) @@ -1311,4 +1311,4 @@ class ServiceManager(QtGui.QWidget): Print a Service Order Sheet. """ settingDialog = PrintServiceForm(self.mainwindow, self) - settingDialog.exec_() + settingDialog.exec_() \ No newline at end of file diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 2ae39c5e7..5f2c63c23 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -88,11 +88,11 @@ class SlideController(QtGui.QWidget): # Type label for the top of the slide controller self.typeLabel = QtGui.QLabel(self.panel) if self.isLive: - self.typeLabel.setText(UiStrings.Live) + self.typeLabel.setText(UiStrings().Live) self.split = 1 self.typePrefix = u'live' else: - self.typeLabel.setText(UiStrings.Preview) + self.typeLabel.setText(UiStrings().Preview) self.split = 0 self.typePrefix = u'preview' self.typeLabel.setStyleSheet(u'font-weight: bold; font-size: 12pt;') @@ -161,18 +161,18 @@ class SlideController(QtGui.QWidget): translate('OpenLP.SlideController', 'Hide'), self.toolbar)) self.blankScreen = shortcut_action(self.hideMenu, u'blankScreen', [QtCore.Qt.Key_Period], self.onBlankDisplay, - u':/slides/slide_blank.png', False, UiStrings.LiveToolbar) + u':/slides/slide_blank.png', False, UiStrings().LiveToolbar) self.blankScreen.setText( translate('OpenLP.SlideController', 'Blank Screen')) self.themeScreen = shortcut_action(self.hideMenu, u'themeScreen', [QtGui.QKeySequence(u'T')], self.onThemeDisplay, - u':/slides/slide_theme.png', False, UiStrings.LiveToolbar) + u':/slides/slide_theme.png', False, UiStrings().LiveToolbar) self.themeScreen.setText( translate('OpenLP.SlideController', 'Blank to Theme')) self.desktopScreen = shortcut_action(self.hideMenu, u'desktopScreen', [QtGui.QKeySequence(u'D')], self.onHideDisplay, u':/slides/slide_desktop.png', False, - UiStrings.LiveToolbar) + UiStrings().LiveToolbar) self.desktopScreen.setText( translate('OpenLP.SlideController', 'Show Desktop')) self.hideMenu.setDefaultAction(self.blankScreen) @@ -194,7 +194,7 @@ class SlideController(QtGui.QWidget): self.delaySpinBox.setMinimum(1) self.delaySpinBox.setMaximum(180) self.toolbar.addToolbarWidget(u'Image SpinBox', self.delaySpinBox) - self.delaySpinBox.setSuffix(UiStrings.Seconds) + self.delaySpinBox.setSuffix(UiStrings().Seconds) self.delaySpinBox.setToolTip(translate('OpenLP.SlideController', 'Delay between slides in seconds')) else: @@ -376,21 +376,21 @@ class SlideController(QtGui.QWidget): self.nextItem.setObjectName(u'nextItemLive') action_list = ActionList.get_instance() action_list.add_category( - UiStrings.LiveToolbar, CategoryOrder.standardToolbar) + UiStrings().LiveToolbar, CategoryOrder.standardToolbar) action_list.add_action(self.previousItem) action_list.add_action(self.nextItem) self.previousService = shortcut_action(parent, u'previousService', - [QtCore.Qt.Key_Left], self.servicePrevious, UiStrings.LiveToolbar) + [QtCore.Qt.Key_Left], self.servicePrevious, UiStrings().LiveToolbar) self.previousService.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut) self.previousService.setText( translate('OpenLP.SlideController', 'Previous Service')) self.nextService = shortcut_action(parent, 'nextService', - [QtCore.Qt.Key_Right], self.serviceNext, UiStrings.LiveToolbar) + [QtCore.Qt.Key_Right], self.serviceNext, UiStrings().LiveToolbar) self.nextService.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut) self.nextService.setText( translate('OpenLP.SlideController', 'Next Service')) self.escapeItem = shortcut_action(parent, 'escapeItem', - [QtCore.Qt.Key_Escape], self.liveEscape, UiStrings.LiveToolbar) + [QtCore.Qt.Key_Escape], self.liveEscape, UiStrings().LiveToolbar) self.escapeItem.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut) self.escapeItem.setText( translate('OpenLP.SlideController', 'Escape Item')) @@ -1150,4 +1150,4 @@ class SlideController(QtGui.QWidget): elif self.desktopScreen.isChecked(): return HideMode.Screen else: - return None + return None \ No newline at end of file diff --git a/openlp/core/ui/starttimedialog.py b/openlp/core/ui/starttimedialog.py index be34b765e..2d1711231 100644 --- a/openlp/core/ui/starttimedialog.py +++ b/openlp/core/ui/starttimedialog.py @@ -107,15 +107,15 @@ class Ui_StartTimeDialog(object): def retranslateUi(self, StartTimeDialog): self.setWindowTitle(translate('OpenLP.StartTimeForm', 'Item Start and Finish Time')) - self.hourSpinBox.setSuffix(UiStrings.Hours) - self.minuteSpinBox.setSuffix(UiStrings.Minutes) - self.secondSpinBox.setSuffix(UiStrings.Seconds) - self.hourFinishSpinBox.setSuffix(UiStrings.Hours) - self.minuteFinishSpinBox.setSuffix(UiStrings.Minutes) - self.secondFinishSpinBox.setSuffix(UiStrings.Seconds) + self.hourSpinBox.setSuffix(UiStrings().Hours) + self.minuteSpinBox.setSuffix(UiStrings().Minutes) + self.secondSpinBox.setSuffix(UiStrings().Seconds) + self.hourFinishSpinBox.setSuffix(UiStrings().Hours) + self.minuteFinishSpinBox.setSuffix(UiStrings().Minutes) + self.secondFinishSpinBox.setSuffix(UiStrings().Seconds) self.hourLabel.setText(translate('OpenLP.StartTimeForm', 'Hours:')) self.minuteLabel.setText(translate('OpenLP.StartTimeForm', 'Minutes:')) self.secondLabel.setText(translate('OpenLP.StartTimeForm', 'Seconds:')) self.startLabel.setText(translate('OpenLP.StartTimeForm', 'Start')) self.finishLabel.setText(translate('OpenLP.StartTimeForm', 'Finish')) - self.lengthLabel.setText(translate('OpenLP.StartTimeForm', 'Length')) + self.lengthLabel.setText(translate('OpenLP.StartTimeForm', 'Length')) \ No newline at end of file diff --git a/openlp/core/ui/starttimeform.py b/openlp/core/ui/starttimeform.py index a30dd3b8e..b460bbbd0 100644 --- a/openlp/core/ui/starttimeform.py +++ b/openlp/core/ui/starttimeform.py @@ -53,11 +53,11 @@ class StartTimeForm(QtGui.QDialog, Ui_StartTimeDialog): self.hourFinishSpinBox.setValue(hours) self.minuteFinishSpinBox.setValue(minutes) self.secondFinishSpinBox.setValue(seconds) - self.hourFinishLabel.setText(u'%s%s' % (unicode(hour), UiStrings.Hours)) + self.hourFinishLabel.setText(u'%s%s' % (unicode(hour), UiStrings().Hours)) self.minuteFinishLabel.setText(u'%s%s' % - (unicode(minutes), UiStrings.Minutes)) + (unicode(minutes), UiStrings().Minutes)) self.secondFinishLabel.setText(u'%s%s' % - (unicode(seconds), UiStrings.Seconds)) + (unicode(seconds), UiStrings().Seconds)) return QtGui.QDialog.exec_(self) def accept(self): @@ -90,4 +90,4 @@ class StartTimeForm(QtGui.QDialog, Ui_StartTimeDialog): seconds -= 3600 * hours minutes = seconds / 60 seconds -= 60 * minutes - return hours, minutes, seconds + return hours, minutes, seconds \ No newline at end of file diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 3a3b3bb61..ebba45e7c 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -290,7 +290,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): 'Edit Theme - %s')) % self.theme.theme_name) self.next() else: - self.setWindowTitle(UiStrings.NewTheme) + self.setWindowTitle(UiStrings().NewTheme) return QtGui.QWizard.exec_(self) def initializePage(self, id): @@ -473,7 +473,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ images_filter = get_images_filter() images_filter = u'%s;;%s (*.*) (*)' % ( - images_filter, UiStrings.AllFiles) + images_filter, UiStrings().AllFiles) filename = QtGui.QFileDialog.getOpenFileName(self, translate('OpenLP.ThemeForm', 'Select Image'), u'', images_filter) @@ -589,4 +589,4 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): QtGui.QColor(field), self) if new_color.isValid(): field = new_color.name() - return field + return field \ No newline at end of file diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 81da6e021..d2a653a26 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -63,7 +63,7 @@ class ThemeManager(QtGui.QWidget): self.layout.setMargin(0) self.layout.setObjectName(u'layout') self.toolbar = OpenLPToolbar(self) - self.toolbar.addToolbarButton(UiStrings.NewTheme, + self.toolbar.addToolbarButton(UiStrings().NewTheme, u':/themes/theme_new.png', translate('OpenLP.ThemeManager', 'Create a new theme.'), self.onAddTheme) @@ -449,7 +449,7 @@ class ThemeManager(QtGui.QWidget): # No themes have been found so create one if len(files) == 0: theme = ThemeXML() - theme.theme_name = UiStrings.Default + theme.theme_name = UiStrings().Default self._writeTheme(theme, None, None) QtCore.QSettings().setValue( self.settingsSection + u'/global theme', @@ -803,4 +803,4 @@ class ThemeManager(QtGui.QWidget): vAlignCorrection = VerticalType.Bottom newtheme.display_horizontal_align = theme.HorizontalAlign newtheme.display_vertical_align = vAlignCorrection - return newtheme.extract_xml() + return newtheme.extract_xml() \ No newline at end of file diff --git a/openlp/core/ui/themestab.py b/openlp/core/ui/themestab.py index 372ee0cc8..fccef1244 100644 --- a/openlp/core/ui/themestab.py +++ b/openlp/core/ui/themestab.py @@ -102,7 +102,7 @@ class ThemesTab(SettingsTab): QtCore.SIGNAL(u'theme_update_list'), self.updateThemeList) def retranslateUi(self): - self.tabTitleVisible = UiStrings.Themes + self.tabTitleVisible = UiStrings().Themes self.GlobalGroupBox.setTitle( translate('OpenLP.ThemesTab', 'Global Theme')) self.LevelGroupBox.setTitle( @@ -203,4 +203,4 @@ class ThemesTab(SettingsTab): if not preview.isNull(): preview = preview.scaled(300, 255, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation) - self.DefaultListView.setPixmap(preview) + self.DefaultListView.setPixmap(preview) \ No newline at end of file diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index 9e464aa7a..759b36101 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -424,7 +424,7 @@ class Ui_ThemeWizard(object): self.backgroundComboBox.setItemText(BackgroundType.Gradient, translate('OpenLP.ThemeWizard', 'Gradient')) self.backgroundComboBox.setItemText( - BackgroundType.Image, UiStrings.Image) + BackgroundType.Image, UiStrings().Image) self.colorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:')) self.gradientStartLabel.setText( translate(u'OpenLP.ThemeWizard', 'Starting color:')) @@ -442,7 +442,7 @@ class Ui_ThemeWizard(object): translate('OpenLP.ThemeWizard', 'Top Left - Bottom Right')) self.gradientComboBox.setItemText(BackgroundGradientType.LeftBottom, translate('OpenLP.ThemeWizard', 'Bottom Left - Top Right')) - self.imageLabel.setText(u'%s:' % UiStrings.Image) + self.imageLabel.setText(u'%s:' % UiStrings().Image) self.mainAreaPage.setTitle( translate('OpenLP.ThemeWizard', 'Main Area Font Details')) self.mainAreaPage.setSubTitle( @@ -451,17 +451,17 @@ class Ui_ThemeWizard(object): self.mainFontLabel.setText(translate('OpenLP.ThemeWizard', 'Font:')) self.mainColorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:')) self.mainSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:')) - self.mainSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit) + self.mainSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit) self.lineSpacingLabel.setText( translate('OpenLP.ThemeWizard', 'Line Spacing:')) - self.lineSpacingSpinBox.setSuffix(UiStrings.FontSizePtUnit) + self.lineSpacingSpinBox.setSuffix(UiStrings().FontSizePtUnit) self.outlineCheckBox.setText( translate('OpenLP.ThemeWizard', '&Outline:')) self.outlineSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:')) - self.outlineSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit) + self.outlineSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit) self.shadowCheckBox.setText(translate('OpenLP.ThemeWizard', '&Shadow:')) self.shadowSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:')) - self.shadowSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit) + self.shadowSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit) self.mainBoldCheckBox.setText(translate('OpenLP.ThemeWizard', 'Bold')) self.mainItalicsCheckBox.setText( translate('OpenLP.ThemeWizard', 'Italic')) @@ -473,7 +473,7 @@ class Ui_ThemeWizard(object): self.footerFontLabel.setText(translate('OpenLP.ThemeWizard', 'Font:')) self.footerColorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:')) self.footerSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:')) - self.footerSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit) + self.footerSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit) self.alignmentPage.setTitle( translate('OpenLP.ThemeWizard', 'Text Formatting Details')) self.alignmentPage.setSubTitle( @@ -537,4 +537,4 @@ class Ui_ThemeWizard(object): labelWidth = max(self.backgroundLabel.minimumSizeHint().width(), self.horizontalLabel.minimumSizeHint().width()) self.spacer.changeSize(labelWidth, 0, - QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) + QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) \ No newline at end of file diff --git a/openlp/core/ui/wizard.py b/openlp/core/ui/wizard.py index cb3a75294..74ca0715a 100644 --- a/openlp/core/ui/wizard.py +++ b/openlp/core/ui/wizard.py @@ -212,11 +212,11 @@ class OpenLPWizard(QtGui.QWizard): """ if filters: filters += u';;' - filters += u'%s (*)' % UiStrings.AllFiles + filters += u'%s (*)' % UiStrings().AllFiles filename = QtGui.QFileDialog.getOpenFileName(self, title, os.path.dirname(SettingsManager.get_last_dir( self.plugin.settingsSection, 1)), filters) if filename: editbox.setText(filename) SettingsManager.set_last_dir(self.plugin.settingsSection, - filename, 1) + filename, 1) \ No newline at end of file diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index c5714c914..0cfa9c60a 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -77,7 +77,7 @@ class AlertsPlugin(Plugin): Plugin.initialise(self) self.toolsAlertItem.setVisible(True) action_list = ActionList.get_instance() - action_list.add_action(self.toolsAlertItem, UiStrings.Tools) + action_list.add_action(self.toolsAlertItem, UiStrings().Tools) self.liveController.alertTab = self.settings_tab def finalise(self): @@ -118,4 +118,4 @@ class AlertsPlugin(Plugin): ## Name for MediaDockManager, SettingsManager ## self.textStrings[StringContent.VisibleName] = { u'title': translate('AlertsPlugin', 'Alerts', 'container title') - } + } \ No newline at end of file diff --git a/openlp/plugins/alerts/lib/alertstab.py b/openlp/plugins/alerts/lib/alertstab.py index 3b6c50a10..2ec2be24b 100644 --- a/openlp/plugins/alerts/lib/alertstab.py +++ b/openlp/plugins/alerts/lib/alertstab.py @@ -109,12 +109,12 @@ class AlertsTab(SettingsTab): translate('AlertsPlugin.AlertsTab', 'Background color:')) self.FontSizeLabel.setText( translate('AlertsPlugin.AlertsTab', 'Font size:')) - self.FontSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit) + self.FontSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit) self.TimeoutLabel.setText( translate('AlertsPlugin.AlertsTab', 'Alert timeout:')) - self.TimeoutSpinBox.setSuffix(UiStrings.Seconds) - self.PreviewGroupBox.setTitle(UiStrings.Preview) - self.FontPreview.setText(UiStrings.OLPV2) + self.TimeoutSpinBox.setSuffix(UiStrings().Seconds) + self.PreviewGroupBox.setTitle(UiStrings().Preview) + self.FontPreview.setText(UiStrings().OLPV2) def onBackgroundColorButtonClicked(self): new_color = QtGui.QColorDialog.getColor( @@ -191,4 +191,4 @@ class AlertsTab(SettingsTab): font.setPointSize(self.font_size) self.FontPreview.setFont(font) self.FontPreview.setStyleSheet(u'background-color: %s; color: %s' % - (self.bg_color, self.font_color)) + (self.bg_color, self.font_color)) \ No newline at end of file diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index aea732688..5a631bf00 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -53,9 +53,9 @@ class BiblePlugin(Plugin): Plugin.initialise(self) self.importBibleItem.setVisible(True) action_list = ActionList.get_instance() - action_list.add_action(self.importBibleItem, UiStrings.Import) + action_list.add_action(self.importBibleItem, UiStrings().Import) # Do not add the action to the list yet. - #action_list.add_action(self.exportBibleItem, UiStrings.Export) + #action_list.add_action(self.exportBibleItem, UiStrings().Export) # Set to invisible until we can export bibles self.exportBibleItem.setVisible(False) @@ -67,9 +67,9 @@ class BiblePlugin(Plugin): self.manager.finalise() Plugin.finalise(self) action_list = ActionList.get_instance() - action_list.remove_action(self.importBibleItem, UiStrings.Import) + action_list.remove_action(self.importBibleItem, UiStrings().Import) self.importBibleItem.setVisible(False) - #action_list.remove_action(self.exportBibleItem, UiStrings.Export) + #action_list.remove_action(self.exportBibleItem, UiStrings().Export) self.exportBibleItem.setVisible(False) def addImportMenuItem(self, import_menu): @@ -146,4 +146,4 @@ class BiblePlugin(Plugin): u'service': translate('BiblesPlugin', 'Add the selected Bible to the service') } - self.setPluginUiTextStrings(tooltips) + self.setPluginUiTextStrings(tooltips) \ No newline at end of file diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 35cd17c4b..439724b66 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -377,7 +377,7 @@ class BibleImportForm(OpenLPWizard): self.formatComboBox.setItemText(BibleFormat.OpenSong, WizardStrings.OS) self.formatComboBox.setItemText(BibleFormat.WebDownload, translate('BiblesPlugin.ImportWizardForm', 'Web Download')) - self.formatComboBox.setItemText(BibleFormat.OpenLP1, UiStrings.OLPV1) + self.formatComboBox.setItemText(BibleFormat.OpenLP1, UiStrings().OLPV1) self.openlp1FileLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'Bible file:')) self.osisFileLabel.setText( @@ -451,13 +451,13 @@ class BibleImportForm(OpenLPWizard): elif self.currentPage() == self.selectPage: if self.field(u'source_format').toInt()[0] == BibleFormat.OSIS: if not self.field(u'osis_location').toString(): - critical_error_message_box(UiStrings.NFSs, + critical_error_message_box(UiStrings().NFSs, WizardStrings.YouSpecifyFile % WizardStrings.OSIS) self.osisFileEdit.setFocus() return False elif self.field(u'source_format').toInt()[0] == BibleFormat.CSV: if not self.field(u'csv_testamentsfile').toString(): - answer = critical_error_message_box(UiStrings.NFSs, + answer = critical_error_message_box(UiStrings().NFSs, translate('BiblesPlugin.ImportWizardForm', 'You have not specified a testaments file. Do you ' 'want to proceed with the import?'), question=True) @@ -465,14 +465,14 @@ class BibleImportForm(OpenLPWizard): self.csvTestamentsEdit.setFocus() return False if not self.field(u'csv_booksfile').toString(): - critical_error_message_box(UiStrings.NFSs, + critical_error_message_box(UiStrings().NFSs, translate('BiblesPlugin.ImportWizardForm', 'You need to specify a file with books of ' 'the Bible to use in the import.')) self.csvBooksEdit.setFocus() return False elif not self.field(u'csv_versefile').toString(): - critical_error_message_box(UiStrings.NFSs, + critical_error_message_box(UiStrings().NFSs, translate('BiblesPlugin.ImportWizardForm', 'You need to specify a file of Bible ' 'verses to import.')) @@ -481,14 +481,14 @@ class BibleImportForm(OpenLPWizard): elif self.field(u'source_format').toInt()[0] == \ BibleFormat.OpenSong: if not self.field(u'opensong_file').toString(): - critical_error_message_box(UiStrings.NFSs, + critical_error_message_box(UiStrings().NFSs, WizardStrings.YouSpecifyFile % WizardStrings.OS) self.openSongFileEdit.setFocus() return False elif self.field(u'source_format').toInt()[0] == BibleFormat.OpenLP1: if not self.field(u'openlp1_location').toString(): - critical_error_message_box(UiStrings.NFSs, - WizardStrings.YouSpecifyFile % UiStrings.OLPV1) + critical_error_message_box(UiStrings().NFSs, + WizardStrings.YouSpecifyFile % UiStrings().OLPV1) self.openlp1FileEdit.setFocus() return False return True @@ -497,13 +497,13 @@ class BibleImportForm(OpenLPWizard): license_copyright = \ unicode(self.field(u'license_copyright').toString()) if not license_version: - critical_error_message_box(UiStrings.EmptyField, + critical_error_message_box(UiStrings().EmptyField, translate('BiblesPlugin.ImportWizardForm', 'You need to specify a version name for your Bible.')) self.versionNameEdit.setFocus() return False elif not license_copyright: - critical_error_message_box(UiStrings.EmptyField, + critical_error_message_box(UiStrings().EmptyField, translate('BiblesPlugin.ImportWizardForm', 'You need to set a copyright for your Bible. ' 'Bibles in the Public Domain need to be marked as such.')) @@ -576,7 +576,7 @@ class BibleImportForm(OpenLPWizard): """ Show the file open dialog for the openlp.org 1.x file. """ - self.getFileName(WizardStrings.OpenTypeFile % UiStrings.OLPV1, + self.getFileName(WizardStrings.OpenTypeFile % UiStrings().OLPV1, self.openlp1FileEdit, u'%s (*.bible)' % translate('BiblesPlugin.ImportWizardForm', 'openlp.org 1.x Bible Files')) @@ -765,4 +765,4 @@ class BibleImportForm(OpenLPWizard): self.progressLabel.setText(translate( 'BiblesPlugin.ImportWizardForm', 'Your Bible import failed.')) del self.manager.db_cache[importer.name] - delete_database(self.plugin.settingsSection, importer.file) + delete_database(self.plugin.settingsSection, importer.file) \ No newline at end of file diff --git a/openlp/plugins/bibles/lib/biblestab.py b/openlp/plugins/bibles/lib/biblestab.py index b013c402a..33c2c1f9f 100644 --- a/openlp/plugins/bibles/lib/biblestab.py +++ b/openlp/plugins/bibles/lib/biblestab.py @@ -118,16 +118,16 @@ class BiblesTab(SettingsTab): self.newChaptersCheckBox.setText( translate('BiblesPlugin.BiblesTab', 'Only show new chapter numbers')) - self.layoutStyleLabel.setText(UiStrings.LayoutStyle) - self.displayStyleLabel.setText(UiStrings.DisplayStyle) + self.layoutStyleLabel.setText(UiStrings().LayoutStyle) + self.displayStyleLabel.setText(UiStrings().DisplayStyle) self.bibleThemeLabel.setText( translate('BiblesPlugin.BiblesTab', 'Bible theme:')) self.layoutStyleComboBox.setItemText(LayoutStyle.VersePerSlide, - UiStrings.VersePerSlide) + UiStrings().VersePerSlide) self.layoutStyleComboBox.setItemText(LayoutStyle.VersePerLine, - UiStrings.VersePerLine) + UiStrings().VersePerLine) self.layoutStyleComboBox.setItemText(LayoutStyle.Continuous, - UiStrings.Continuous) + UiStrings().Continuous) self.displayStyleComboBox.setItemText(DisplayStyle.NoBrackets, translate('BiblesPlugin.BiblesTab', 'No Brackets')) self.displayStyleComboBox.setItemText(DisplayStyle.Round, @@ -207,4 +207,4 @@ class BiblesTab(SettingsTab): self.bibleThemeComboBox.addItem(u'') for theme in theme_list: self.bibleThemeComboBox.addItem(theme) - find_and_set_in_combo_box(self.bibleThemeComboBox, self.bible_theme) + find_and_set_in_combo_box(self.bibleThemeComboBox, self.bible_theme) \ No newline at end of file diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index bb72b9ff2..e0e06b02f 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -193,7 +193,7 @@ class BibleMediaItem(MediaManagerItem): self.advancedSearchButtonLayout.addWidget(self.advancedSearchButton) self.advancedLayout.addLayout( self.advancedSearchButtonLayout, 7, 0, 1, 3) - self.searchTabWidget.addTab(self.advancedTab, UiStrings.Advanced) + self.searchTabWidget.addTab(self.advancedTab, UiStrings().Advanced) # Add the search tab widget to the page layout. self.pageLayout.addWidget(self.searchTabWidget) # Combo Boxes @@ -242,15 +242,15 @@ class BibleMediaItem(MediaManagerItem): def retranslateUi(self): log.debug(u'retranslateUi') - self.quickVersionLabel.setText(u'%s:' % UiStrings.Version) + self.quickVersionLabel.setText(u'%s:' % UiStrings().Version) self.quickSecondLabel.setText( translate('BiblesPlugin.MediaItem', 'Second:')) self.quickSearchLabel.setText( translate('BiblesPlugin.MediaItem', 'Find:')) - self.quickSearchButton.setText(UiStrings.Search) + self.quickSearchButton.setText(UiStrings().Search) self.quickClearLabel.setText( translate('BiblesPlugin.MediaItem', 'Results:')) - self.advancedVersionLabel.setText(u'%s:' % UiStrings.Version) + self.advancedVersionLabel.setText(u'%s:' % UiStrings().Version) self.advancedSecondLabel.setText( translate('BiblesPlugin.MediaItem', 'Second:')) self.advancedBookLabel.setText( @@ -265,7 +265,7 @@ class BibleMediaItem(MediaManagerItem): translate('BiblesPlugin.MediaItem', 'To:')) self.advancedClearLabel.setText( translate('BiblesPlugin.MediaItem', 'Results:')) - self.advancedSearchButton.setText(UiStrings.Search) + self.advancedSearchButton.setText(UiStrings().Search) self.quickClearComboBox.addItem( translate('BiblesPlugin.MediaItem', 'Clear')) self.quickClearComboBox.addItem( @@ -274,13 +274,13 @@ class BibleMediaItem(MediaManagerItem): translate('BiblesPlugin.MediaItem', 'Clear')) self.advancedClearComboBox.addItem( translate('BiblesPlugin.MediaItem', 'Keep')) - self.quickLayoutLabel.setText(UiStrings.LayoutStyle) + self.quickLayoutLabel.setText(UiStrings().LayoutStyle) self.quickLayoutComboBox.setItemText(LayoutStyle.VersePerSlide, - UiStrings.VersePerSlide) + UiStrings().VersePerSlide) self.quickLayoutComboBox.setItemText(LayoutStyle.VersePerLine, - UiStrings.VersePerLine) + UiStrings().VersePerLine) self.quickLayoutComboBox.setItemText(LayoutStyle.Continuous, - UiStrings.Continuous) + UiStrings().Continuous) def initialise(self): log.debug(u'bible manager initialise') @@ -849,4 +849,4 @@ class BibleMediaItem(MediaManagerItem): self.settings.layout_style) QtCore.QSettings().setValue( self.settingsSection + u'/verse layout style', - QtCore.QVariant(self.settings.layout_style)) + QtCore.QVariant(self.settings.layout_style)) \ No newline at end of file diff --git a/openlp/plugins/custom/forms/editcustomdialog.py b/openlp/plugins/custom/forms/editcustomdialog.py index 1ea0413ff..7a6c1f07b 100644 --- a/openlp/plugins/custom/forms/editcustomdialog.py +++ b/openlp/plugins/custom/forms/editcustomdialog.py @@ -107,11 +107,11 @@ class Ui_CustomEditDialog(object): translate('CustomPlugin.EditCustomForm', 'Edit Custom Slides')) self.titleLabel.setText( translate('CustomPlugin.EditCustomForm', '&Title:')) - self.addButton.setText(UiStrings.Add) + self.addButton.setText(UiStrings().Add) self.addButton.setToolTip( translate('CustomPlugin.EditCustomForm', 'Add a new slide at ' 'bottom.')) - self.editButton.setText(UiStrings.Edit) + self.editButton.setText(UiStrings().Edit) self.editButton.setToolTip( translate('CustomPlugin.EditCustomForm', 'Edit the selected ' 'slide.')) @@ -124,4 +124,4 @@ class Ui_CustomEditDialog(object): translate('CustomPlugin.EditCustomForm', 'The&me:')) self.creditLabel.setText( translate('CustomPlugin.EditCustomForm', '&Credits:')) - self.previewButton.setText(UiStrings.SaveAndPreview) + self.previewButton.setText(UiStrings().SaveAndPreview) \ No newline at end of file diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index b045c58a4..b508104c4 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -110,7 +110,7 @@ class CustomMediaItem(MediaManagerItem): """ Edit a custom item """ - if check_item_selected(self.listView, UiStrings.SelectEdit): + if check_item_selected(self.listView, UiStrings().SelectEdit): item = self.listView.currentItem() item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] self.parent.edit_custom_form.loadCustom(item_id, False) @@ -121,7 +121,7 @@ class CustomMediaItem(MediaManagerItem): """ Remove a custom item from the list and database """ - if check_item_selected(self.listView, UiStrings.SelectDelete): + if check_item_selected(self.listView, UiStrings().SelectDelete): row_list = [item.row() for item in self.listView.selectedIndexes()] row_list.sort(reverse=True) id_list = [(item.data(QtCore.Qt.UserRole)).toInt()[0] @@ -160,4 +160,4 @@ class CustomMediaItem(MediaManagerItem): else: raw_footer.append(u'') service_item.raw_footer = raw_footer - return True + return True \ No newline at end of file diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index c29adc3b1..298e701e3 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -55,11 +55,11 @@ class ImageMediaItem(MediaManagerItem): 'Select Image(s)') file_formats = get_images_filter() self.onNewFileMasks = u'%s;;%s (*.*) (*)' % (file_formats, - UiStrings.AllFiles) - self.replaceAction.setText(UiStrings.ReplaceBG) - self.replaceAction.setToolTip(UiStrings.ReplaceLiveBG) - self.resetAction.setText(UiStrings.ResetBG) - self.resetAction.setToolTip(UiStrings.ResetLiveBG) + UiStrings().AllFiles) + self.replaceAction.setText(UiStrings().ReplaceBG) + self.replaceAction.setToolTip(UiStrings().ReplaceLiveBG) + self.resetAction.setText(UiStrings().ResetBG) + self.resetAction.setToolTip(UiStrings().ResetLiveBG) def requiredIcons(self): MediaManagerItem.requiredIcons(self) @@ -198,7 +198,7 @@ class ImageMediaItem(MediaManagerItem): self.parent.liveController.display.directImage(name, filename) self.resetAction.setVisible(True) else: - critical_error_message_box(UiStrings.LiveBGError, + critical_error_message_box(UiStrings().LiveBGError, unicode(translate('ImagePlugin.MediaItem', 'There was a problem replacing your background, ' - 'the image file "%s" no longer exists.')) % filename) + 'the image file "%s" no longer exists.')) % filename) \ No newline at end of file diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 7612ab7c9..559af11e2 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -60,11 +60,11 @@ class MediaMediaItem(MediaManagerItem): self.onNewFileMasks = unicode(translate('MediaPlugin.MediaItem', 'Videos (%s);;Audio (%s);;%s (*)')) % ( u' '.join(self.parent.video_extensions_list), - u' '.join(self.parent.audio_extensions_list), UiStrings.AllFiles) - self.replaceAction.setText(UiStrings.ReplaceBG) - self.replaceAction.setToolTip(UiStrings.ReplaceLiveBG) - self.resetAction.setText(UiStrings.ResetBG) - self.resetAction.setToolTip(UiStrings.ResetLiveBG) + u' '.join(self.parent.audio_extensions_list), UiStrings().AllFiles) + self.replaceAction.setText(UiStrings().ReplaceBG) + self.replaceAction.setToolTip(UiStrings().ReplaceLiveBG) + self.resetAction.setText(UiStrings().ResetBG) + self.resetAction.setToolTip(UiStrings().ResetLiveBG) def requiredIcons(self): MediaManagerItem.requiredIcons(self) @@ -111,7 +111,7 @@ class MediaMediaItem(MediaManagerItem): self.parent.liveController.display.video(filename, 0, True) self.resetAction.setVisible(True) else: - critical_error_message_box(UiStrings.LiveBGError, + critical_error_message_box(UiStrings().LiveBGError, unicode(translate('MediaPlugin.MediaItem', 'There was a problem replacing your background, ' 'the media file "%s" no longer exists.')) % filename) @@ -209,4 +209,4 @@ class MediaMediaItem(MediaManagerItem): img = QtGui.QPixmap(u':/media/media_video.png').toImage() item_name.setIcon(build_icon(img)) item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) - self.listView.addItem(item_name) + self.listView.addItem(item_name) \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 6009ff906..74ff3fea8 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -203,7 +203,7 @@ class PresentationMediaItem(MediaManagerItem): """ Remove a presentation item from the list """ - if check_item_selected(self.listView, UiStrings.SelectDelete): + if check_item_selected(self.listView, UiStrings().SelectDelete): items = self.listView.selectedIndexes() row_list = [item.row() for item in items] row_list.sort(reverse=True) @@ -296,4 +296,4 @@ class PresentationMediaItem(MediaManagerItem): if self.controllers[controller].enabled(): if filetype in self.controllers[controller].alsosupports: return controller - return None + return None \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/presentationtab.py b/openlp/plugins/presentations/lib/presentationtab.py index 8e3a98031..bba2b469e 100644 --- a/openlp/plugins/presentations/lib/presentationtab.py +++ b/openlp/plugins/presentations/lib/presentationtab.py @@ -86,7 +86,7 @@ class PresentationTab(SettingsTab): checkbox.setText( unicode(translate('PresentationPlugin.PresentationTab', '%s (unavailable)')) % controller.name) - self.AdvancedGroupBox.setTitle(UiStrings.Advanced) + self.AdvancedGroupBox.setTitle(UiStrings().Advanced) self.OverrideAppCheckBox.setText( translate('PresentationPlugin.PresentationTab', 'Allow presentation application to be overriden')) @@ -131,4 +131,4 @@ class PresentationTab(SettingsTab): QtCore.QVariant(self.OverrideAppCheckBox.checkState())) changed = True if changed: - Receiver.send_message(u'mediaitem_presentation_rebuild') + Receiver.send_message(u'mediaitem_presentation_rebuild') \ No newline at end of file diff --git a/openlp/plugins/songs/forms/editsongdialog.py b/openlp/plugins/songs/forms/editsongdialog.py index a9bd132cd..749d5184d 100644 --- a/openlp/plugins/songs/forms/editsongdialog.py +++ b/openlp/plugins/songs/forms/editsongdialog.py @@ -260,11 +260,11 @@ class Ui_EditSongDialog(object): translate('SongsPlugin.EditSongForm', '&Lyrics:')) self.verseOrderLabel.setText( translate('SongsPlugin.EditSongForm', '&Verse order:')) - self.verseAddButton.setText(UiStrings.Add) - self.verseEditButton.setText(UiStrings.Edit) + self.verseAddButton.setText(UiStrings().Add) + self.verseEditButton.setText(UiStrings().Edit) self.verseEditAllButton.setText( translate('SongsPlugin.EditSongForm', 'Ed&it All')) - self.verseDeleteButton.setText(UiStrings.Delete) + self.verseDeleteButton.setText(UiStrings().Delete) self.songTabWidget.setTabText( self.songTabWidget.indexOf(self.lyricsTab), translate('SongsPlugin.EditSongForm', 'Title && Lyrics')) @@ -289,13 +289,13 @@ class Ui_EditSongDialog(object): self.songTabWidget.indexOf(self.authorsTab), translate('SongsPlugin.EditSongForm', 'Authors, Topics && Song Book')) - self.themeGroupBox.setTitle(UiStrings.Theme) + self.themeGroupBox.setTitle(UiStrings().Theme) self.themeAddButton.setText( translate('SongsPlugin.EditSongForm', 'New &Theme')) self.rightsGroupBox.setTitle( translate('SongsPlugin.EditSongForm', 'Copyright Information')) self.copyrightInsertButton.setText(SongStrings.CopyrightSymbol) - self.CCLILabel.setText(UiStrings.CCLINumberLabel) + self.CCLILabel.setText(UiStrings().CCLINumberLabel) self.commentsGroupBox.setTitle( translate('SongsPlugin.EditSongForm', 'Comments')) self.songTabWidget.setTabText( @@ -313,4 +313,4 @@ def editSongDialogComboBox(parent, name): comboBox.setEditable(True) comboBox.setInsertPolicy(QtGui.QComboBox.NoInsert) comboBox.setObjectName(name) - return comboBox + return comboBox \ No newline at end of file diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 85294d92b..0b9c9316f 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -96,7 +96,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): QtCore.SIGNAL(u'theme_update_list'), self.loadThemes) self.previewButton = QtGui.QPushButton() self.previewButton.setObjectName(u'previewButton') - self.previewButton.setText(UiStrings.SaveAndPreview) + self.previewButton.setText(UiStrings().SaveAndPreview) self.buttonBox.addButton( self.previewButton, QtGui.QDialogButtonBox.ActionRole) QtCore.QObject.connect(self.buttonBox, @@ -355,7 +355,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.__addAuthorToList(author) self.authorsComboBox.setCurrentIndex(0) else: - QtGui.QMessageBox.warning(self, UiStrings.NISs, + QtGui.QMessageBox.warning(self, UiStrings().NISs, translate('SongsPlugin.EditSongForm', 'You have not selected ' 'a valid author. Either select an author from the list, ' 'or type in a new author and click the "Add Author to ' @@ -414,7 +414,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.topicsListView.addItem(topic_item) self.topicsComboBox.setCurrentIndex(0) else: - QtGui.QMessageBox.warning(self, UiStrings.NISs, + QtGui.QMessageBox.warning(self, UiStrings().NISs, translate('SongsPlugin.EditSongForm', 'You have not selected ' 'a valid topic. Either select a topic from the list, or ' 'type in a new topic and click the "Add Topic to Song" ' diff --git a/openlp/plugins/songs/forms/songexportform.py b/openlp/plugins/songs/forms/songexportform.py index d71321b98..745ee3f67 100644 --- a/openlp/plugins/songs/forms/songexportform.py +++ b/openlp/plugins/songs/forms/songexportform.py @@ -175,7 +175,7 @@ class SongExportForm(OpenLPWizard): self.availableSongsPage.setSubTitle( translate('SongsPlugin.ExportWizardForm', 'Check the songs you want to export.')) - self.searchLabel.setText(u'%s:' % UiStrings.Search) + self.searchLabel.setText(u'%s:' % UiStrings().Search) self.uncheckButton.setText( translate('SongsPlugin.ExportWizardForm', 'Uncheck All')) self.checkButton.setText( @@ -207,7 +207,7 @@ class SongExportForm(OpenLPWizard): self.availableListWidget) if item.checkState() ] if not items: - critical_error_message_box(UiStrings.NISp, + critical_error_message_box(UiStrings().NISp, translate('SongsPlugin.ExportWizardForm', 'You need to add at least one Song to export.')) return False @@ -360,4 +360,4 @@ class SongExportForm(OpenLPWizard): SettingsManager.get_last_dir(self.plugin.settingsSection, 1), options=QtGui.QFileDialog.ShowDirsOnly)) SettingsManager.set_last_dir(self.plugin.settingsSection, path, 1) - self.directoryLineEdit.setText(path) + self.directoryLineEdit.setText(path) \ No newline at end of file diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 468d2f341..dde8826e0 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -235,8 +235,8 @@ class SongImportForm(OpenLPWizard): self.sourcePage.setTitle(WizardStrings.ImportSelect) self.sourcePage.setSubTitle(WizardStrings.ImportSelectLong) self.formatLabel.setText(WizardStrings.FormatLabel) - self.formatComboBox.setItemText(SongFormat.OpenLP2, UiStrings.OLPV2) - self.formatComboBox.setItemText(SongFormat.OpenLP1, UiStrings.OLPV1) + self.formatComboBox.setItemText(SongFormat.OpenLP2, UiStrings().OLPV2) + self.formatComboBox.setItemText(SongFormat.OpenLP1, UiStrings().OLPV1) self.formatComboBox.setItemText( SongFormat.OpenLyrics, WizardStrings.OL) self.formatComboBox.setItemText(SongFormat.OpenSong, WizardStrings.OS) @@ -261,10 +261,10 @@ class SongImportForm(OpenLPWizard): # self.formatComboBox.setItemText(SongFormat.CSV, WizardStrings.CSV) self.openLP2FilenameLabel.setText( translate('SongsPlugin.ImportWizardForm', 'Filename:')) - self.openLP2BrowseButton.setText(UiStrings.Browse) + self.openLP2BrowseButton.setText(UiStrings().Browse) self.openLP1FilenameLabel.setText( translate('SongsPlugin.ImportWizardForm', 'Filename:')) - self.openLP1BrowseButton.setText(UiStrings.Browse) + self.openLP1BrowseButton.setText(UiStrings().Browse) self.openLP1DisabledLabel.setText(WizardStrings.NoSqlite) self.openLyricsAddButton.setText( translate('SongsPlugin.ImportWizardForm', 'Add Files...')) @@ -305,10 +305,10 @@ class SongImportForm(OpenLPWizard): 'find OpenOffice.org on your computer.')) self.easiSlidesFilenameLabel.setText( translate('SongsPlugin.ImportWizardForm', 'Filename:')) - self.easiSlidesBrowseButton.setText(UiStrings.Browse) + self.easiSlidesBrowseButton.setText(UiStrings().Browse) self.ewFilenameLabel.setText( translate('SongsPlugin.ImportWizardForm', 'Filename:')) - self.ewBrowseButton.setText(UiStrings.Browse) + self.ewBrowseButton.setText(UiStrings().Browse) self.songBeamerAddButton.setText( translate('SongsPlugin.ImportWizardForm', 'Add Files...')) self.songBeamerRemoveButton.setText( @@ -323,7 +323,7 @@ class SongImportForm(OpenLPWizard): translate('SongsPlugin.ImportWizardForm', 'Remove File(s)')) # self.csvFilenameLabel.setText( # translate('SongsPlugin.ImportWizardForm', 'Filename:')) -# self.csvBrowseButton.setText(UiStrings.Browse) +# self.csvBrowseButton.setText(UiStrings().Browse) self.progressPage.setTitle(WizardStrings.Importing) self.progressPage.setSubTitle( translate('SongsPlugin.ImportWizardForm', @@ -346,49 +346,49 @@ class SongImportForm(OpenLPWizard): source_format = self.formatComboBox.currentIndex() if source_format == SongFormat.OpenLP2: if self.openLP2FilenameEdit.text().isEmpty(): - critical_error_message_box(UiStrings.NFSs, - WizardStrings.YouSpecifyFile % UiStrings.OLPV2) + critical_error_message_box(UiStrings().NFSs, + WizardStrings.YouSpecifyFile % UiStrings().OLPV2) self.openLP2BrowseButton.setFocus() return False elif source_format == SongFormat.OpenLP1: if self.openLP1FilenameEdit.text().isEmpty(): - critical_error_message_box(UiStrings.NFSs, - WizardStrings.YouSpecifyFile % UiStrings.OLPV1) + critical_error_message_box(UiStrings().NFSs, + WizardStrings.YouSpecifyFile % UiStrings().OLPV1) self.openLP1BrowseButton.setFocus() return False elif source_format == SongFormat.OpenLyrics: if self.openLyricsFileListWidget.count() == 0: - critical_error_message_box(UiStrings.NFSp, + critical_error_message_box(UiStrings().NFSp, WizardStrings.YouSpecifyFile % WizardStrings.OL) self.openLyricsAddButton.setFocus() return False elif source_format == SongFormat.OpenSong: if self.openSongFileListWidget.count() == 0: - critical_error_message_box(UiStrings.NFSp, + critical_error_message_box(UiStrings().NFSp, WizardStrings.YouSpecifyFile % WizardStrings.OS) self.openSongAddButton.setFocus() return False elif source_format == SongFormat.WordsOfWorship: if self.wordsOfWorshipFileListWidget.count() == 0: - critical_error_message_box(UiStrings.NFSp, + critical_error_message_box(UiStrings().NFSp, WizardStrings.YouSpecifyFile % WizardStrings.WoW) self.wordsOfWorshipAddButton.setFocus() return False elif source_format == SongFormat.CCLI: if self.ccliFileListWidget.count() == 0: - critical_error_message_box(UiStrings.NFSp, + critical_error_message_box(UiStrings().NFSp, WizardStrings.YouSpecifyFile % WizardStrings.CCLI) self.ccliAddButton.setFocus() return False elif source_format == SongFormat.SongsOfFellowship: if self.songsOfFellowshipFileListWidget.count() == 0: - critical_error_message_box(UiStrings.NFSp, + critical_error_message_box(UiStrings().NFSp, WizardStrings.YouSpecifyFile % WizardStrings.SoF) self.songsOfFellowshipAddButton.setFocus() return False elif source_format == SongFormat.Generic: if self.genericFileListWidget.count() == 0: - critical_error_message_box(UiStrings.NFSp, + critical_error_message_box(UiStrings().NFSp, translate('SongsPlugin.ImportWizardForm', 'You need to specify at least one document or ' 'presentation file to import from.')) @@ -396,31 +396,31 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.EasiSlides: if self.easiSlidesFilenameEdit.text().isEmpty(): - critical_error_message_box(UiStrings.NFSp, + critical_error_message_box(UiStrings().NFSp, WizardStrings.YouSpecifyFile % WizardStrings.ES) self.easiSlidesBrowseButton.setFocus() return False elif source_format == SongFormat.EasyWorship: if self.ewFilenameEdit.text().isEmpty(): - critical_error_message_box(UiStrings.NFSs, + critical_error_message_box(UiStrings().NFSs, WizardStrings.YouSpecifyFile % WizardStrings.EW) self.ewBrowseButton.setFocus() return False elif source_format == SongFormat.SongBeamer: if self.songBeamerFileListWidget.count() == 0: - critical_error_message_box(UiStrings.NFSp, + critical_error_message_box(UiStrings().NFSp, WizardStrings.YouSpecifyFile % WizardStrings.SB) self.songBeamerAddButton.setFocus() return False elif source_format == SongFormat.SongShowPlus: if self.songShowPlusFileListWidget.count() == 0: - critical_error_message_box(UiStrings.NFSp, + critical_error_message_box(UiStrings().NFSp, WizardStrings.YouSpecifyFile % WizardStrings.SSP) self.wordsOfWorshipAddButton.setFocus() return False elif source_format == SongFormat.FoilPresenter: if self.foilPresenterFileListWidget.count() == 0: - critical_error_message_box(UiStrings.NFSp, + critical_error_message_box(UiStrings().NFSp, WizardStrings.YouSpecifyFile % WizardStrings.FP) self.foilPresenterAddButton.setFocus() return False @@ -446,7 +446,7 @@ class SongImportForm(OpenLPWizard): """ if filters: filters += u';;' - filters += u'%s (*)' % UiStrings.AllFiles + filters += u'%s (*)' % UiStrings().AllFiles filenames = QtGui.QFileDialog.getOpenFileNames(self, title, SettingsManager.get_last_dir(self.plugin.settingsSection, 1), filters) @@ -476,7 +476,7 @@ class SongImportForm(OpenLPWizard): """ Get OpenLP v2 song database file """ - self.getFileName(WizardStrings.OpenTypeFile % UiStrings.OLPV2, + self.getFileName(WizardStrings.OpenTypeFile % UiStrings().OLPV2, self.openLP2FilenameEdit, u'%s (*.sqlite)' % (translate('SongsPlugin.ImportWizardForm', 'OpenLP 2.0 Databases')) @@ -486,7 +486,7 @@ class SongImportForm(OpenLPWizard): """ Get OpenLP v1 song database file """ - self.getFileName(WizardStrings.OpenTypeFile % UiStrings.OLPV1, + self.getFileName(WizardStrings.OpenTypeFile % UiStrings().OLPV1, self.openLP1FilenameEdit, u'%s (*.olp)' % translate('SongsPlugin.ImportWizardForm', 'openlp.org v1.x Databases') @@ -836,4 +836,4 @@ class SongImportForm(OpenLPWizard): setattr(self, prefix + u'DisabledLayout', disabledLayout) setattr(self, prefix + u'DisabledLabel', disabledLabel) setattr(self, prefix + u'ImportWidget', importWidget) - return importWidget + return importWidget \ No newline at end of file diff --git a/openlp/plugins/songs/forms/songmaintenancedialog.py b/openlp/plugins/songs/forms/songmaintenancedialog.py index 9d4b7da91..3d65783ac 100644 --- a/openlp/plugins/songs/forms/songmaintenancedialog.py +++ b/openlp/plugins/songs/forms/songmaintenancedialog.py @@ -149,17 +149,17 @@ class Ui_SongMaintenanceDialog(object): self.listItemAuthors.setText(SongStrings.Authors) self.listItemTopics.setText(SongStrings.Topics) self.listItemBooks.setText(SongStrings.SongBooks) - self.authorsAddButton.setText(UiStrings.Add) - self.authorsEditButton.setText(UiStrings.Edit) - self.authorsDeleteButton.setText(UiStrings.Delete) - self.topicsAddButton.setText(UiStrings.Add) - self.topicsEditButton.setText(UiStrings.Edit) - self.topicsDeleteButton.setText(UiStrings.Delete) - self.booksAddButton.setText(UiStrings.Add) - self.booksEditButton.setText(UiStrings.Edit) - self.booksDeleteButton.setText(UiStrings.Delete) + self.authorsAddButton.setText(UiStrings().Add) + self.authorsEditButton.setText(UiStrings().Edit) + self.authorsDeleteButton.setText(UiStrings().Delete) + self.topicsAddButton.setText(UiStrings().Add) + self.topicsEditButton.setText(UiStrings().Edit) + self.topicsDeleteButton.setText(UiStrings().Delete) + self.booksAddButton.setText(UiStrings().Add) + self.booksEditButton.setText(UiStrings().Edit) + self.booksDeleteButton.setText(UiStrings().Delete) typeListWidth = max(self.fontMetrics().width(SongStrings.Authors), self.fontMetrics().width(SongStrings.Topics), self.fontMetrics().width(SongStrings.SongBooks)) self.typeListWidget.setFixedWidth(typeListWidth + - self.typeListWidget.iconSize().width() + 32) + self.typeListWidget.iconSize().width() + 32) \ No newline at end of file diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py index 0a1effcf3..48e614eeb 100644 --- a/openlp/plugins/songs/forms/songmaintenanceform.py +++ b/openlp/plugins/songs/forms/songmaintenanceform.py @@ -115,7 +115,7 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): else: critical_error_message_box(dlg_title, err_text) else: - critical_error_message_box(dlg_title, UiStrings.NISs) + critical_error_message_box(dlg_title, UiStrings().NISs) def resetAuthors(self): """ @@ -503,4 +503,4 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): editButton.setEnabled(False) else: deleteButton.setEnabled(True) - editButton.setEnabled(True) + editButton.setEnabled(True) \ No newline at end of file diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 5890fc76d..8245adfbc 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -137,8 +137,8 @@ class SongMediaItem(MediaManagerItem): QtCore.QVariant(u'True')).toBool() def retranslateUi(self): - self.searchTextLabel.setText(u'%s:' % UiStrings.Search) - self.searchTextButton.setText(UiStrings.Search) + self.searchTextLabel.setText(u'%s:' % UiStrings().Search) + self.searchTextButton.setText(UiStrings().Search) self.maintenanceAction.setText(SongStrings.SongMaintenance) self.maintenanceAction.setToolTip(translate('SongsPlugin.MediaItem', 'Maintain the lists of authors, topics and books')) @@ -153,7 +153,7 @@ class SongMediaItem(MediaManagerItem): translate('SongsPlugin.MediaItem', 'Lyrics')), (SongSearch.Authors, u':/songs/song_search_author.png', SongStrings.Authors), - (SongSearch.Themes, u':/slides/slide_theme.png', UiStrings.Themes) + (SongSearch.Themes, u':/slides/slide_theme.png', UiStrings().Themes) ]) self.searchTextEdit.setCurrentSearchType(QtCore.QSettings().value( u'%s/last search type' % self.settingsSection, @@ -312,7 +312,7 @@ class SongMediaItem(MediaManagerItem): Edit a song """ log.debug(u'onEditClick') - if check_item_selected(self.listView, UiStrings.SelectEdit): + if check_item_selected(self.listView, UiStrings().SelectEdit): self.editItem = self.listView.currentItem() item_id = (self.editItem.data(QtCore.Qt.UserRole)).toInt()[0] self.edit_song_form.loadSong(item_id, False) @@ -323,7 +323,7 @@ class SongMediaItem(MediaManagerItem): """ Remove a song from the list and database """ - if check_item_selected(self.listView, UiStrings.SelectDelete): + if check_item_selected(self.listView, UiStrings().SelectDelete): items = self.listView.selectedIndexes() if QtGui.QMessageBox.question(self, translate('SongsPlugin.MediaItem', 'Delete Song(s)?'), @@ -472,4 +472,4 @@ class SongMediaItem(MediaManagerItem): Locale aware collation of song titles """ return locale.strcoll(unicode(song_1.title.lower()), - unicode(song_2.title.lower())) + unicode(song_2.title.lower())) \ No newline at end of file diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index 4fc098949..0cace4977 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -67,9 +67,9 @@ class SongsPlugin(Plugin): Plugin.initialise(self) self.toolsReindexItem.setVisible(True) action_list = ActionList.get_instance() - action_list.add_action(self.SongImportItem, UiStrings.Import) - action_list.add_action(self.SongExportItem, UiStrings.Export) - action_list.add_action(self.toolsReindexItem, UiStrings.Tools) + action_list.add_action(self.SongImportItem, UiStrings().Import) + action_list.add_action(self.SongExportItem, UiStrings().Export) + action_list.add_action(self.toolsReindexItem, UiStrings().Tools) def addImportMenuItem(self, import_menu): """ @@ -139,7 +139,7 @@ class SongsPlugin(Plugin): if maxSongs == 0: return progressDialog = QtGui.QProgressDialog( - translate('SongsPlugin', 'Reindexing songs...'), UiStrings.Cancel, + translate('SongsPlugin', 'Reindexing songs...'), UiStrings().Cancel, 0, maxSongs, self.formparent) progressDialog.setWindowModality(QtCore.Qt.WindowModal) songs = self.manager.get_all_objects(Song) @@ -258,7 +258,7 @@ class SongsPlugin(Plugin): self.manager.finalise() self.toolsReindexItem.setVisible(False) action_list = ActionList.get_instance() - action_list.remove_action(self.SongImportItem, UiStrings.Import) - action_list.remove_action(self.SongExportItem, UiStrings.Export) - action_list.remove_action(self.toolsReindexItem, UiStrings.Tools) - Plugin.finalise(self) + action_list.remove_action(self.SongImportItem, UiStrings().Import) + action_list.remove_action(self.SongExportItem, UiStrings().Export) + action_list.remove_action(self.toolsReindexItem, UiStrings().Tools) + Plugin.finalise(self) \ No newline at end of file From 7fdd4bb1c1828e1c1cc70f0c7de2a9ed8bf720f8 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Fri, 15 Apr 2011 23:55:11 +0200 Subject: [PATCH 26/94] Line length cleanups. --- openlp/core/lib/ui.py | 5 +++-- openlp/core/ui/servicemanager.py | 11 +++++++---- openlp/core/ui/starttimeform.py | 5 +++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index 013231b8c..a0686416c 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -175,7 +175,8 @@ def create_accept_reject_button_box(parent, okay=False): accept_button = QtGui.QDialogButtonBox.Save if okay: accept_button = QtGui.QDialogButtonBox.Ok - button_box.setStandardButtons(accept_button | QtGui.QDialogButtonBox.Cancel) + button_box.setStandardButtons( + accept_button | QtGui.QDialogButtonBox.Cancel) button_box.setObjectName(u'%sButtonBox' % parent) QtCore.QObject.connect(button_box, QtCore.SIGNAL(u'accepted()'), parent.accept) @@ -445,4 +446,4 @@ def find_and_set_in_combo_box(combo_box, value_to_find): if index == -1: # Not Found. index = 0 - combo_box.setCurrentIndex(index) \ No newline at end of file + combo_box.setCurrentIndex(index) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index d682f5b52..66cc61989 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -169,7 +169,8 @@ class ServiceManager(QtGui.QWidget): self.onServiceTop, shortcuts=[QtCore.Qt.Key_Home]) self.serviceManagerList.moveTop.setObjectName(u'moveTop') action_list = ActionList.get_instance() - action_list.add_category(UiStrings().Service, CategoryOrder.standardToolbar) + action_list.add_category( + UiStrings().Service, CategoryOrder.standardToolbar) action_list.add_action( self.serviceManagerList.moveTop, UiStrings().Service) self.serviceManagerList.moveUp = self.orderToolbar.addToolbarButton( @@ -179,7 +180,8 @@ class ServiceManager(QtGui.QWidget): 'Move item up one position in the service.'), self.onServiceUp, shortcuts=[QtCore.Qt.Key_PageUp]) self.serviceManagerList.moveUp.setObjectName(u'moveUp') - action_list.add_action(self.serviceManagerList.moveUp, UiStrings().Service) + action_list.add_action( + self.serviceManagerList.moveUp, UiStrings().Service) self.serviceManagerList.moveDown = self.orderToolbar.addToolbarButton( translate('OpenLP.ServiceManager', 'Move &down'), u':/services/service_down.png', @@ -231,7 +233,8 @@ class ServiceManager(QtGui.QWidget): 'Expand all the service items.'), self.onExpandAll, shortcuts=[QtCore.Qt.Key_Plus]) self.serviceManagerList.expand.setObjectName(u'expand') - action_list.add_action(self.serviceManagerList.expand, UiStrings().Service) + action_list.add_action( + self.serviceManagerList.expand, UiStrings().Service) self.serviceManagerList.collapse = self.orderToolbar.addToolbarButton( translate('OpenLP.ServiceManager', '&Collapse all'), u':/services/service_collapse_all.png', @@ -1311,4 +1314,4 @@ class ServiceManager(QtGui.QWidget): Print a Service Order Sheet. """ settingDialog = PrintServiceForm(self.mainwindow, self) - settingDialog.exec_() \ No newline at end of file + settingDialog.exec_() diff --git a/openlp/core/ui/starttimeform.py b/openlp/core/ui/starttimeform.py index b460bbbd0..956b01a9d 100644 --- a/openlp/core/ui/starttimeform.py +++ b/openlp/core/ui/starttimeform.py @@ -53,7 +53,8 @@ class StartTimeForm(QtGui.QDialog, Ui_StartTimeDialog): self.hourFinishSpinBox.setValue(hours) self.minuteFinishSpinBox.setValue(minutes) self.secondFinishSpinBox.setValue(seconds) - self.hourFinishLabel.setText(u'%s%s' % (unicode(hour), UiStrings().Hours)) + self.hourFinishLabel.setText(u'%s%s' % (unicode(hour), + UiStrings().Hours)) self.minuteFinishLabel.setText(u'%s%s' % (unicode(minutes), UiStrings().Minutes)) self.secondFinishLabel.setText(u'%s%s' % @@ -90,4 +91,4 @@ class StartTimeForm(QtGui.QDialog, Ui_StartTimeDialog): seconds -= 3600 * hours minutes = seconds / 60 seconds -= 60 * minutes - return hours, minutes, seconds \ No newline at end of file + return hours, minutes, seconds From b46aa38ce93836662c75efae5e35294dc3c53aa9 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Sat, 16 Apr 2011 00:46:24 +0200 Subject: [PATCH 27/94] Add a bit of spacing around the edges of the settings form to make it feel a little less crowded. --- openlp/core/ui/settingsdialog.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/ui/settingsdialog.py b/openlp/core/ui/settingsdialog.py index 485cb9c5f..50bcca4e2 100644 --- a/openlp/core/ui/settingsdialog.py +++ b/openlp/core/ui/settingsdialog.py @@ -37,7 +37,7 @@ class Ui_SettingsDialog(object): build_icon(u':/system/system_settings.png')) self.dialogLayout = QtGui.QGridLayout(settingsDialog) self.dialogLayout.setObjectName(u'dialogLayout') - self.dialogLayout.setMargin(0) + self.dialogLayout.setMargin(8) self.settingListWidget = QtGui.QListWidget(settingsDialog) self.settingListWidget.setUniformItemSizes(True) self.settingListWidget.setMinimumSize(QtCore.QSize(150, 0)) From bc3fca35fc70612d3992d08e65d37c7f5babc3a4 Mon Sep 17 00:00:00 2001 From: John Cegalis Date: Fri, 15 Apr 2011 20:50:55 -0400 Subject: [PATCH 28/94] added blank to --- documentation/manual/source/songs.rst | 29 +++++++++++++++------------ 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/documentation/manual/source/songs.rst b/documentation/manual/source/songs.rst index 23f054127..c718f812d 100644 --- a/documentation/manual/source/songs.rst +++ b/documentation/manual/source/songs.rst @@ -103,23 +103,25 @@ Creating or editing a song slide ================================ If you want to create a new song slide or, once you have a song imported, you -can edit and rearrange the Title & Lyrics, Author, Topics & Song Book, -assign a Theme, or edit *Copyright Info & Comments* as needed. This is done -through the `Song Editor`. To use the `Song Editor` to edit an existing song you -can click on a song in the `Media Manager` and then click the button to -:guilabel:`Edit the selected song` or right click a song from either the -`Media Manager` or from the `Service Manager` and click :guilabel:`Edit item`. -If you are adding a new song click :guilabel:`Add a new Song` in the -`Media Manager`. +want to edit and rearrange the Title & Lyrics, Author, Topics & Song Book, +assign a Theme, or edit Copyright Info & Comments, you will do this through the +`Song Editor`. + +**Edit:** To edit an existing song you can either click on a song in the +`Media Manager` and then click the button to :guilabel:`Edit the selected song` +or right click a song from either the `Media Manager` or additionally from the +`Service Manager` and click :guilabel:`Edit item`. If you are adding a new song +click :guilabel:`Add a new Song` in the `Media Manager`. .. image:: pics/song_edit_lyrics.png **Title:** This is where you would name your song or edit a song name. -**Alternate title:** You can add a name in this box that will bring up the song -in Titles search. **Example:** You could use an alternate title of "hymn" on all -your hymn song titles for grouping. When you search "hymn" it will show all the -hymns that have "hymn" for the Alternate title. +**Alternate title:**Alternate Title was for songs with two names +"Lord the Light" - "Shine Jesus Shine". You can also add a name in this box that +will bring up the song in Titles search. **Example:** You could use an alternate +title of "hymn" on all your hymn song titles for grouping. When you search "hymn" +it will show all the hymns that have "hymn" for the Alternate title. **Lyrics:** The *Lyrics* window shows all lyrics imported or added. On the left side of the lyrics you will see a capital letter followed by a number. A V1 @@ -135,7 +137,8 @@ displayed, with only a blank space in between each entry. The correct format wil look like this: V1 C1 V2 C1 V3 C1. If you forget to put a space in between the order, or if you do not have the corresponding verse number, OpenLP will politely tell you with a pop-up error message what is wrong so you can correct your -mistake and save it. +mistake and save it. Verse order is optional and if left blank the verses will +display in the order seen in *Lyrics*. .. image:: pics/song_edit_verse_error.png From de8e8ee422119212b1b44bc292efb58c0cf4ba8c Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sat, 16 Apr 2011 09:23:00 +0200 Subject: [PATCH 29/94] fixed missing space --- openlp/core/ui/servicemanager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index ba9ca718a..b81c746d2 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -611,7 +611,7 @@ class ServiceManager(QtGui.QWidget): u'%s' % fileName) QtGui.QMessageBox.information(self, translate('OpenLP.ServiceManager', 'Corrupt File'), - translate('OpenLP.ServiceManager', 'This file is either' + translate('OpenLP.ServiceManager', 'This file is either ' 'corrupt or not an OpenLP 2.0 service file.')) return finally: From 336489d215fd581f5e7490c2184ea801fc93a30f Mon Sep 17 00:00:00 2001 From: John Cegalis Date: Sat, 16 Apr 2011 04:32:30 -0400 Subject: [PATCH 30/94] added blank to --- .../pics/song_edit_author_maintenance.png | Bin 0 -> 16943 bytes .../manual/source/pics/song_edit_authors.png | Bin 0 -> 37481 bytes .../manual/source/pics/song_edit_lyrics.png | Bin 0 -> 62750 bytes .../source/pics/song_edit_maintenance.png | Bin 0 -> 46167 bytes .../pics/song_edit_songbook_maintenance.png | Bin 0 -> 12072 bytes .../source/pics/song_edit_theme_copyright.png | Bin 0 -> 29992 bytes .../source/pics/song_edit_topic_maintenance.png | Bin 0 -> 9956 bytes .../source/pics/song_edit_verse_error.png | Bin 0 -> 14183 bytes .../manual/source/pics/song_edit_verse_type.png | Bin 0 -> 46119 bytes documentation/manual/source/songs.rst | 2 +- 10 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 documentation/manual/source/pics/song_edit_author_maintenance.png create mode 100644 documentation/manual/source/pics/song_edit_authors.png create mode 100644 documentation/manual/source/pics/song_edit_lyrics.png create mode 100644 documentation/manual/source/pics/song_edit_maintenance.png create mode 100644 documentation/manual/source/pics/song_edit_songbook_maintenance.png create mode 100644 documentation/manual/source/pics/song_edit_theme_copyright.png create mode 100644 documentation/manual/source/pics/song_edit_topic_maintenance.png create mode 100644 documentation/manual/source/pics/song_edit_verse_error.png create mode 100644 documentation/manual/source/pics/song_edit_verse_type.png diff --git a/documentation/manual/source/pics/song_edit_author_maintenance.png b/documentation/manual/source/pics/song_edit_author_maintenance.png new file mode 100644 index 0000000000000000000000000000000000000000..56b5550d2125f2abc768c40d7bd8d5d337f5e0f8 GIT binary patch literal 16943 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 U$~M01%fY%#4dDjmdTtN@0fq0r)Bpeg literal 0 HcmV?d00001 diff --git a/documentation/manual/source/pics/song_edit_lyrics.png b/documentation/manual/source/pics/song_edit_lyrics.png new file mode 100644 index 0000000000000000000000000000000000000000..10727376c7f8caee62e1b62017241cdbc3f09416 GIT binary patch literal 62750 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≈Dg1{%<21-q#C7^MS0d)*Vh1T;35X2xYRWRGPzh! z7VJKeqp_GV-pqW2ZUwiWi#kNO^tQhClP-6y*{)N^&^}uYewUpuF-d88Jhif?l|Y+J z*(&^~YQVun21&V?n?7}>nKY66#KVoJgu*1`TyID=`v@n!r1b$wE*I%q)h*@u!Rp>d zHm!5J4FNRwiAo1iBBYs}$DPY{(3rg`l8{N^{n$8v-6y*P@?_@~mbnOv-PPA7q?x)Q z0?4mpabSqV|2{M{LT|9Wx|=g{ps?mST0ky2zlyQR$m{P%#MDrzqyC(T9b;Q=Rq0=t zfkKj^Uy}X|spDtGN3Mu5pL@F6#z)NHhkR%jDpIfq^m|Jevu__OV-Jtc>qM89lAUkXW+qwXMNpG`3_9r>=%;Yl@R8vC81}p#9=_xJF^pos z3$`OPTV(g#FE;tv7{iqs)ljAM5yV(SKY2ltS?GMZ>4vdTuxY( z^H>lz92r&zHupxRK$1BSmF$(#!J~Vi%#r03?mdbw7knJg=F6J!9b27Dz`2rjZD#>6 z&U~(VgoiEj=3!$BNU8eeC6X{g2)Ghf*HAWLDx1xeqdTbbu-&LA$K^7>0&PdAu3}<* z?`GT+Qf+L%`e`~aSrs^ucMOI(;K=4KcZ_s)|HEK^=ZA#n%JJ7Od>K~&=88lPD+lZ8 zvDlnCA1VA&zaWw)Orr1FJ!dBcBJ?O>!d}s2H+1_{bm}%-C>b^@RbAcwn**fpV>&=b z+JTQ#m6ni}CU417e7RMBR+_zJvD~7%>l(|Lw!R>lWrkdqEPDUfkC?!Iq>M6}h$YO@ z>&Y=8w{bc5{BU{lzDY<{dF+-nQ%)V+iPFb|-n;AI9%v z4ceWlHG5U2u8_T$f9B_*RaC%|skQJ3s4C|lwiBJzE0ZD`7^$_|e6zc8F{Dn)x>m>*6L7Dj9xF8_C?pqKtMOKEP?9C|L@0Jkx3EUQipA&xG==hm7Qp21=?9_5N-qziYh4ZYA(!5i#U4LEelAw zM3-1Huj<85fTA>d?}y`CH^#p7w*9D~xn!M6=q4F-zWZQS>i*)K{-hU%ruto~WzPR} zPJS+<{&(+*J?lY60xm~tXZe;U6}~-^KqaoH7XgS+woPPAP5VX}ZJZ;-<9g_WrbHjS;G)oHqDm9pBWBB^-M~L7 zaN(kaZ8j_jV#uyepnmA}6)!nF{!Bs7{_<{>uK2kS{UzG3<9;EuYp;;@FFAdoP*kxx z^(@G+UIu|DMt%)aF0Q-vHig#h%3*Sqx{EQNq^B@6$21LIioaDzH}r8_g=56gcJt_tolUu?&{+8T>2 z4e}-W7uc&wHlVWAU(q&u@f@tFEzrtvj}5LM;a*AfFtIk4%E;Jc_N}mCn=(-Oxq}SV z)I@z7Y1DbPJZFd9R6elqE&E^mih4bkmgC4hJ${OB`R4dKKE6l*CPlm0SO+KIjvYIf zRSt&t&O=eqlU6(-4X2>~7epD91*}5Zg_NggU zL)Ch{52G{3mfy7-J{>9Vgx73eo5>P`@&N#ZWiA0XqqPXbeUH{o`&g;+ zTr;$hUi8}>tJpA^1i``q!W*9p-PBL6uLZ?h6 z5)kOlk4ClH{ja`BWcj}!=|6q;@c>$*9VT-rt+5uDQ34QuO`F=rO-tnrEE(6DT&Jhy zxhTH&pIiq)8hZb-Y21PqNrwg=q|`dEFxU`aqoc$yyTKVtbwC`<_nfT=q`K~k9kQtz z8^Fyqu8)GV&Nn?klwfKL%J9AqB6zLzS`3XBLQxYUWmgEJ;|_rpa_LEtUzc2s{wF?6 zvs)IZ28I!|oYUs$zee*!xiQ~(n(sx&+)2(IRlm|SZ*>se<*gR}KZ#^7Xo{JZmO|;= zh8qQY$2)ZTMnLH61^ZXrNIX_Ap0#RnxsBzqtoBPro9!1(n6!=|UhS9DeYGgmg-Qd> zMOH-Rsm|e)|Hej#R`GX+W{_l--=GI=O4-c2=xn3S>tuyJRn8r6{X+AB1G7$CMR0(j zkFN`Bsn?NK+oF&03h6(G5U?K~-MIiYbD8az(gQBYlKMMcVu!AOW5Y-Y{!mH~rDOVP zly;k1JU&y>fR{*+*pc#v6Nk}C<2HB3C_X<-OSjKB_m96Y;|P$UOkoJ&qdKZHod;Kj zs|-6}IG2gFOK+L2sYKmNt~|2jNAl)U$YPFP)$ev-mH=oL){h8NCx_+)sr1}{w-O>k zr->Jo82l+=r%RXzMaM`uE$%Or%kA+WtoJt7jO^%4{mUT7#yuG}33~&cqxh18s<-}w z1>ia`qoyuUxmq!F${K&G79cI>9;$;2u6ZVVPEQ&6ii}YS8{^v#>VPy|=1AjRMh2{j zJb+Tjba~4mxd*!BUkEmyt>q4i4Q^}vIU3uiSpO6=qMQuRrFRSgQCf@m9ldwDFkAm_ z3td&Q%rE@y`OZU5QmbrF8qp47kFLZ(**wxE{zI_(HGW~^f)%Ac(5K$D=apcHq72g; z&{T6jbb!?uo)emk`H;ui+IA}9{dB@vh20J>yBx!xN)(k8ah--D)@$ew8H3R zDu=_;{-tYWcB-k4!ZNazF8@|c;eRWp=jR>3@lHVc#2oo*;)GNJusJ9HhEMDi%RbY;eP$C)>@&MKY@XZCu0lFci<(?PHj0b(+BzQD=NL==BfXQ`$&u z(|N>EL1_Q>!1dJ|>HQ+D0*g6BTCM8>qrU&Ete8W*Az-mX>0;n-K*B@+D{k8z?8!VI z{TqGbIQKPy8>X{%l(lyN7+~?tbo#bv4l4tX*>Hq=%k5AhVa`t?i0ML+YlcVx?^C*x zV$L7HqAyj*(vgxGTi~WH>}d9G(l*}9pXRJ-w>U-#OG7o9~zCGmgUA`Z^XWhBdigNN~&`5is8Sb*T&n(w>^OOvYT~ z-~~V7)qon;c}mb=_qU2DM_#k1w2F?x-knD(q4RupORx>4FauQ^t_6eD^>;_UU}!f# z3*6EF4dv_#e5aF}&Qp=wQ8)XA)Ua`~ttFTxPm(5;Ar|e2l=7e_ zlaOT1h=VTf0W2C{&iZ}#1_b#+Xdvp`j_JG97o!H_EfB9~*qPb91_Dz~pfwW$g^h#i zMMx{(tZ+4r>+%kd(p5Dce-MArM)riq&8Q~e=Pa;Vu3B2vhLN zk&Cl;pT|p1%Cb|R?I#c86g{1vn!2C~N(eteQ6<+M#E6>585yYRZA-V73g;Cmo9E{l zSs0m^s2WM<=*KoR5u4WmvhcP>TgI>NU&--k8T={TwWk=OBOI>OxB5HCyB?7|(is z{WZ$Y5t)SD1m9+Wi*(Affv7lzi4Z@V8@k488c)_z!7~~Me|Ae9bsbTu)|!FS`O4|e z^EPI6f4=Cq@5lsvy;Lfvzg9<$TQaFvUWR^F>sM|M?+AEul}YTR9y=Bk7b9U}_N6iu zi+RSV3O9OiixMJQT3VK9OhKrqs8CiysZCYFkBo?&uRNn>wg+QmnploYC5Z^u*xt-) z^Mc1@y^4?BIe^EI0kzJZ*2IB>2?{nmr=h+XjEhbN%hdJ=v}W4>!`D}a#kFPIh6D)& z2_D=fXmE$%?(XjHE1=XCe$_ip$7K7LWPchz3CWXw6o7?W>J zYc??9_fSoYlPzA=Ft-F8QuqXVa(psu8CoqnNLCA9CKZ&d5%Xj(Rk7Ohw!o6dsh&qj zx z9H}59<;i+WbxzJUF{TsrUwm1eBP}#?!Tx?w2!C=F{whEi{yhBol)UmgMRgsb=qKn_ z-;*^YGF)Zr>?M0Dc=>l=0%T_jBXHR?c8o#cP;Re)S&M6&5TdpUO?lnJOM|7!EQ#t` z({=DaiW#WmJ;3(Vq@>@`jYv_Hc2-|zl`6l5IQ|S6mb8!LAL&WP#jspdOEeTk?MVne z`(ZaW7ouDbloaGf81`jd0Oy^|$zFq?#mwZ}&2Ji8w@#=zSoFK}#@5+0HEKWRPd(pe z`x0Y*idbjK0aa0ee&NE;Tj5JLmw&mjiF4c>6~mKn=z+U0H(q`Erj->Pgp^l}2FCyT zr#=67bv%S^IW*sa{D$6B8l6Y`jZ!eKq{UZ7Ml7D=K6P>07|q2eVAQ)(H-05HYIcgs zI`s2Y7fqXiSu*nXow6*9sC+M=RApAQF`>u=uWc%5E00k$r9)3_ZNb{4`&xBmI{)J z9o=nHzkhK!1(LWHS=pZ#WGuOpFp-t{o>BgZg%lU_kcL4`EG5+hT4q~SLk@0rZ-F{) zB6ipI`Pn9ZBCU5(j<2e29eIdqh5wZBI_h&tGjNql*slQSjOL{jC3|7eqKeTy?wFz zd9#X2Vr7jf5mkbeH=RnVDO7z6B1+4Qc}7rqW{mTulgFnsdXa?v&T$Pin}MerRTnK0 zT)-X6kbh~2V;*h}V^zph%n}E7JLl{#4^kJP&$oT|o8K5*qJ83INc|3de@&b$tw0*U zb>^C7!R%)r*)Px7>#>5E_q6hyT=+@x;}d$TcuQcNEJd5isw2tOpJBhZ*)uPHOV=wuG*V)z8qE*ZPAoWK?D4>zt|r2C+OOGM5S15Mqd)rtGu4D3ihZ6u5Mp`|9SeKwwWDSc!5Vc~(~ zo0;V4HnIbbhAUak?bonE8sYQxMUi6I)UiN#8j&-B*qu|IPCQ!5kB_bXOZ5Qk5In!g zQ0RRmwyKklAx1>dwPQOQ$!+^jlBnx|`V@>hq$M_EM*SyITaF*0Iy3Gdvi^`FPv@n3#L+>g}U>EL+DL`GpoQL^vbK%mx zHTM1T ztLbT7s5jfO)HK!7+UBB3h7H7@H2j*XsP-A23l*N|=@AZY`&DQSY z>qA=)7#eBIN`3P8p4$vRxZn0=Ufy*Q+g7aKFMg{W>-nbU-jM5wud{Q4i z7>WT7#f@E6ja+ZoFO?iG=h#SqcO!}K-bFM z<4{*+BKYv-Co_1*JM5 z@V>0(J~`dOD+eMxZY}9~*@F3X0kCOBYsDY|+w}!>N=b@H56w=Y3nK+fD#YSo_3c`4 zq|}wYxD57=0-Pi*2b)p)sEMp;8Sk*V2hoyCkJjR7dVrT#9d~f;9CCUK{@metY0EA? z?rI`jRl)pAuh-D^!k$O0%8Hl~ue4tiS2tIdsq^iE6|(hb(l5u2*ygxOc=s$%4fpyN zY9Xy|qwF{!;J%?`6ohAW51mcf4vL#?_?K%fVQ)C4JDhlCd$owRAqXQUx%q%R&Sd+J z_0MpO+3OwXEmTTByH5DEhHwPtdA5HrNbIgs>=Uvjml$q};8% z-fgc3Y8QAaoG8VGae3g<%G~eEF+K3{_*QL z&f=v9+h`qj>8oH17nVx14p)Kp_Rb{aFDTQ_-3dLF(pJ2_A&I9LBjjMVA#C4q3lPcK4OG-F%d zWQmc4r=DGs*~}p6+p=LMneuDm~Hf!^6;0Ty|f}KH{P?4J3bK!Gf8r zxda=tAf?o+5>=kGGVv8|%%Ldq;w{~Bk}EqD<=NZT)nN?eGG-v3M2ROO?CUwkE!$aL zKnE@1(P&MHiraj6SBVGRoY_>$)7AQlmB-bXTz0>QqV{Mln<&|PbkV>sZAIOiO;R}^gUq(~kWX9O{Uw%b<*VBidSwM|vg$d}r8B$%L+e8Z|Rl*Ug*#U0&)V zV`qSghzD#)mh8?f^hwad+DYl772JU3%1pf!wVHo3(o2tX>6#66LAqy=@}f%ZsBbY^ zlp9%{L7SBzb`R2A9SAq}S1GbG_a;LL;6zZ{Wj(Y4Q`$Kh%1?kuUadTPlFN{@11$Jo ztv$EHd}XY}Y~#k7ncLxBF775=nXYZS(x??GlCXkU8ldx;06n9kn6$> zB$jOlp3=)>t>_yXhR4T$lI&=NboSPp`t@XT75)(o8?{u0C@fDD1h*!bf;G+iJ^x4r zL0Hp`>T!B{I;3gx0Qy+kzSR|j!v4zD`0)zY%Rcn&`~4A=N2s}w~R0BDPM2fE+Kr$yyyPViWCb<z7Ftsya)r0Zt4^#_@SVp<#wf4-PXq%~jxD{Wm; zhNGQM{f=sj1Z09_Lt9}wMigX2^KT>{_JWoKz~S@D_t1jJHTTy#&s#$|0+B+IX6p*8 zA>yAG#g13by*-az_2)Ul>c0tFOH(VqsSH5ie}iFL2$`5!CHbtpSLHEpSL)836=6uF zEDsy0tLuQ^bkU*Q&AOyZ-63Tf7XPXV-i4p%hAh{WVgEf&@?2@uc%uR+Vu|Z-cl4QLdhO@^gTeXj$fY&uTByRpW69zIGux79vvuCOQa1BmzQ9*qks3eV%}&a3oLj| zl!KY6c)%|8i;#-3gGvy+bj}CsGYkb)swE88vw&d~OK&%nx}WK@>4^p7yJMB#N1t>) zETPqzFyuq8g`4=GxxRAQ&y1}9Fn%vzxglKtQ*=lGtu1OfMzaD-lTom zB4=BV3O8j0o%XoiVt!h?mOKZ#FQ}QxKL`J?ES5O))w=3<>2K!wca-e{!1o zJ|)Vmo2W50WEE|%w;NhWmrvxfsLvEit&=9glr$V(D&EU^MV<`%U^>l~!!$U(c1GCO z9URL3@zi`d3R7YZkOYg3{Or!--jz+V+Tpyg5AMCu9Ps)HDmEr9*IPfUJ9M=*+6jj} zUR3K%vqP+Ak6_S%1Q1O2d7`7VX2xVm_e&PXEnU{Dyw>N>-STQRc5Ga3cdpmmc2`2r zn2ZADGT&}kp7*1B9;SyVshQ%#c|0as_<2BV!jef#*!*BaM-HCXGX;W-re{2;*JKgT zSSW$A^xodS4rIp@ZZl-c;-<%G>Srt?M@NAK$ApO#|H`awZS0J>&-VC79e5abrvmeM zp=2Y|$+z2HI%}29Z0K{#F3j!AK3NF)HXajDv)?Co3z{F9%6v(6>91H@0@-70f%cFd z=Wtb;UR#rCLZC9l#$qPc*U)OCIkDz|z%7}w=5@>1*x1FID_VAEI41Ut#iUfK$lp4f zTX}6hu=ree@d-d6EWZ4ER3~)8e%d>*#-}>c)EY|o8C3!;k)>kCXBG!R*u3^`ywdQL zUT?MgvmK{bmv{qs|%_9$^ctnvKbe}!F7kiG2md)r_#wES3*Eu(yfY#r%Km~5zuN3T- zFjKPXswl20jS6r`Bbc*r7(>NFMCVKk9WD3@M(mc~K@bQv0t8`w@f958pq3|Ag=R-D zX@29!acP>qKgs)RZZB=t(#d;3jg>NqD`b${8wD=Nm`#9?fQbzQ*;N!*T$a69u_F5H z1+W6WtAMm!sK^%Dpja!^`hM-r0ZXRDmHYW0-sHW%tkZy(0rnG|2t^7Zb#+V)$Vi0; zJJ+LEGh_tZG#gJyv=Q1ur>jkp@f3%|OOJ zlxlzogcN7Vef%nC4Eyrfn{&09K zR8w1>@$_$(GV6{sXU`Cu5cx7m*)qRxtTI?8R$>AEKt(5Ps08oPm5Tbj;0jtW0!d8dMi>0*b9Ka3X^hufiNK0G2+GDSN$pDu1r#t>{%j1#?i3HJ=~ z?BC5A{qNN&_7&Ide>#3INMgz4p{!6Sc);?+xQRfnZZTeJFh$MLehKeDw>A(PDK>Ow zB5}@}NHqWcylFcj{7SfoN(Iuk`UAs2$l`kDV0cf_WW6X&gEKH*`SASISzU#BlS>QX zMC_~!?`lq(=aOdwoN!=btJCk}h;HHbgZ}V}f4!-YPX%o|81=!U6UY`!dUq<}kmLA; zK5U(qr63ygN_!XV!*_Tlit-8^u_scv^P8K#4ncC=PnQYtYZYo{$Nc!o z3NcojL-;bm5!O!L=N632`FNYh@Y@V2lwOIH(AJ3$G(9$E$M_Fd}5eU z^O@6LeRa+sMyt6wre|6Ytok#51yG22Y~=1eeB@(q_JQmIN_Nr-%@^Ec5>?x`eS-m>mm(Kt1tx|b>anW>)# zR|G1{R}$bI?Y*pa)B#5wcYhLl=nU$rb9ChS0Cu4QrO;+mfjZul#NeEd5{V8`5F7np zf0&ZwxX=ECyq}ZMaZb#$VCPBb52wy3oh`Dh{er11!gz>=MM-(5!{__*gXn8P63>47 zw4d_R%?=4A{$!eWy?5tEkX6>DeNLls$nPYeA~PL2sN^yA?oX)9Ht~VFE{=HqW`A-p zCLCQVHq&kOn_Ems)DZPgs&Tn_RRLQGhtvHTFZxWk+0fF-h5q>RP z2J4%=3Gk)FnT3JosH~nWsBrtHu)#_Es-Us<@7{M{r)OXo8XY9RdqSkZ0&SY30)c#1 zApv;-DuJSf{=*lET3U0+$_)2phnNS}vKB_rZDavW8 z_f#T^4;{aLui?2F;I$8c%i-Rf$aea1^{4E2hsnd8bZLaj_~L?crByGxQY+9;0>ryy zqs}katF>PD;{1-rRD!|{z0wcY;q&46a+c{Kf;!6RC!Bo}`Hl}}xDu4ePd(pcXcI;D zwlQ(UD{Mmy(1wzpJ98i+CPw)E0L-?*Dmo!W?R~?fDl4_IQ_wRy4UJPx-n`~)dx;5=S!J!9si(NM7Bdr@0W z+xp$Xcz_VC$&sv5jTGpmIvDaz7;@As(2|Y_F~9EF)(F}hy}Ykj`~ywG#k2BgKm&yl z)W#be?mAP|V94fVo-&)Eo+%w;N-+?`0|wVH7vJl-}k$n zX}hztet>N|kiH}@BcDzo0C@Duulp(SnfYGw-?S0tWE+0?2;2Uhwt5#z6QKSyDeAEuyI19=jVa zRaxL@ua18lEt<+?$QZ}*5Bk^{6PPn!Q@jkjXZ4&Cxj>pl=iFKHV#0n+G0-2y9GVMj zbMEj{c5r}jZ^9=X^s`1~fK(jROaaBWbCV{sdhq-5)g@-qX2Z5FdR)<$iYlf%MBVEX zT9qcycV}x%>|GlTR#|VIT_EGq_*MtLrgvPLUeWg2`*tK3aiLmpJIZD$e6D^rO|%$< zIlYp`Rhi+R2s~H3OW8lo*cou$l(;uzf&SU!+Q;%!8o((9LbAkUWQnbRmJ;ua)up|x z>V9nuJaO5g--JpbzY$qGC5789WsE}8JkI0i{7ynYO77M8Iy_Vnoq90!bdiHW$YS05 zk8+PaTqG`A8ZDspbfaY;cw5%t6jLoLFoH6N=j|R)UU7?0#HD#wKXlGzPWn$Sz`s?| zr2l&rtu4KAZ#EB!$^M7ERLj@f72Ny=7Y}{mNS468*SN7=CcMjwGa7%-mZ% zYFjw<*Xasu!tpAO?Po#$!qVSKU%F?IH?SuDLP(UX$I%W+6-qBbeUwKSE35FPSv`by zoWiF&%R%(S-&#heyBjZ)4Mj6Fn|DJ}LOo_c4Hu2cHPOnI zOG&%@AfVO;BlSFgP`m%3NWxdjxDzv|d6fs39iY4Nx(ZpL!1N3 zZ7ElW=mnGB69kz}BVA|n)w>FWnEds$W$#~M@g-w>@pE^mgs!-vI~2CrZ1>VyWPh2u ze1jM}OT>#fpV4VU3Uh3Wa)jNV2}_HOM-KN_?x8UQ#i4m)D4 z8;1u@GLW!%@@S}pRh^G?bhj=Am^9VS^oi7SYi*%&{gH-ih&2&J>IkN1<0FT!_WxdnmjkYd3K^kXt)>b2Q;%A9`w8I6ytTKI(8q06eG0Z>YO?^v5 z#!VTTi+3ryE2&M)q^!9lT?A$4B@_%M9l$y$h36Oa^pILLC^Xzf(GlAGnyov*Fikf+ zrhJ7fGl_yM3Pznt`|b>NJLN}@ri5&PE)>T&aa&tx`g-e>toZZXdb7AB` z#uE1KZ?lEdH^<614{ac01klPrbrdA2y3CpY9xdALP*q*n68F9hBzvYN&1`&{XT=-n;;YyfvME)+-@cL9D^Ne(?sldaj#Y5EXYy15p z^X@K7f7OKt;sbj2zNest0BFKqPRHN24h0=>UnJj7aY{P&f0}lTa&V$;d3*NL^nUG1 z@1Tv22pp9_RnvTB%Y1Ag+qh--yF&)iqh;D_mkbOIqvL_|T~w0m6)G6;;o8Q>XEX=*&ROLVuY7n17)t;37KiFEF@$G!2&SsY*)%;RO5|^ivLWy zrbjX!+=(vyDyqYfD?`JPD}H3`Ut_nX&4o`+#&$@4nC3mZZCW#cy+?&l+$->TJ?4m_!HX%6tew1*SuOp6KK z75;)fFG=n^r4e6p@S+NT5mN)}88%jbGi0y3=m|puXIt0t?!d8VN#WfN+;g)hx6(#T zMQ37`8yz*stl}f+ZvoFTIaILHY~@W5Wm+vsCX8LwqiNz*3xSsx9wEaLZ)(8he0GaV zIatvO)POvsl5B^}TYpK{rKaCN8YL73hDl%TOj8iD^MdGj!h~e0fHx zCx6{O;cj7|qEOe}-75r|rtt|<${{!e2<|9~qMVJ!z6!CTN^11ZdU_(G^_^24xbQF^ zpbp8$SZ%LZ3mi|$PpG4c8AO%UyWa%xWz`w-bGgZ zq7gnzt?=FfC5}2i+=sb3CRnVhxY5%L`X_mB zY)0k9ABV`VjEtV)?`i*}=8&m&*Qd5zmDy6?IREDr@mz8Ve2%%wJo@x}52PjxQWF`| zu(vO9&Y)4xzVm$5CmI-E0t-TEL4V5snI-4W3RUZX6pPQG*tuph4hVxZARnc!D&3Rh zS0=NN%xel)_&$#tZd%wlSf{SchLnkh72XFER!Zzj_>qBL=9 zSM2s6b9GFTJ&`Uz$&?e4N)6AP(08WHURNHK4s3>|jT+tW(dY|;?$IX7&4-;$a9NBx z3soZo!7>HEQhea*ZG6c}vO)s=ZZYJ7S5DyS&^tbNI7;~tf=&`DVc zsU@^~^^8>G3*IJnbJ}CCd z@fVD|>wTQ$>u+DkXnzsD5Er8MI9$a4^usoHB&iEL|9LR&tRhD7oGXD5yDnYv&0MJe zwBmvF*fUUCqn8%cLnNQtzFsqeg&Uk5U~)k`1ScupV^4E2|+z$N>Q0V5aS`ap+uGfSJI@!JtfDV#)Z6cPLoV#sdQUR;=-`akGgQzeD^gZa(JZ?KS z?GBgC?m+kgDO|EjTlt)6s_|cKEpW@_f+fs(G1`KlLx|Ps`g4VYdwl7rMB54(8CjJv zP#c6K%^b9<=vY*75xctk#NEL#e!87fQcp}^{LD}KM4|A_ag|f#cVy3McXey%<#p|M zfsCfkxtxtlXE#)Ka0S|UA%Vwu{$4gG<1}v)D;?08cY@I;^p%1kSt2kmp6S5UR7Ev$ z{OnGgS{C_R)PKoqlYhsb2l>tfK-aQZP8E1xMW>Q_;ab zxQGBkAtI<>!@h$F<1);`Jvb2UYkp*YX|&svk6!-O0)t*}0_Q!?Cs#Cl zJ1k1W;zWn@mj@gL@>JsA-G}hwzJuOC!7|1LPmN&gX22Nl1TtAG^vjxsKGwR#xOx@) zX}Ql$E9U`9ooao3-}4G);)jkhdZ41k!dp{S?Ni$}sElW-piI&wPcpbX9S1qbMiV_v zkiF8bt7+6t6ZsuuH_&Le2N;H=xdFnd!`?y8l}CIq4`^S$AJEZItWBR&&6JNCf&@^L zf5Bo0!)rHR_LN=Ac=C9`Huf6s@@ZxcIIkbbv+nX%SK|m6vU+RDu!`#X zuE+e2Jwm99M>AKzza(}<2(3>8-7Nls$mn=h8k z8l&;dN-8AsPO(7Ib-rj~bSYP?@i#g93?lK30{bX3u{^SHZD^t`ll0BiT7K9orD?ON zI$?WQ#W(7_@M;<&_`F@(*#E#nD!j@2H>%U!Kd4SD1yzIW1{uai3?yI~>BPuCaYktM zn`gQ=QkRDb4@>_eUue%0-i89IyH%F?HH|^F=`FrGk|147OUseLIU+y7KYUH5`PR^U zm2G<@8m9+u=5Z$f7o}Jpx}>}3_$yQ&-Yw+}zuk=dw7q)F>wV_dVTc#wt%FdJ!q(wR zNWz-=@G~6}AIV`#DCZL}GmWgm>bh$N`fhR+gK6yfkAx?vzV(qX`gsn1Y!YeTyrr z?rb;bigIPllovt)9W3oA(I|UtRXl>&%EBB&(PLDT<@aTpV~V(mW5<2nIogrDks_Ws z`RXYW>Fj|{d&1mDbqm4^z{4aBsA;Usgwix7nzhuFx~^tXcJ^ zD#Ba-_COoN>Zt8kkrP(B@0lhR#L+?S{l@+Qb@F*6GtF4Tx&_6`X+QeX*8+ zPxv;NPXxT}A{AX$9U%FA+~>Uc}#;}NDriZ~{L$5{4$`(r2M?n|uv zz(9c$nbpNQNFPQaEWe;Rs+!@mlC(zkFi2StjUpFnpL%Csn52@taGj~e)i4lVY{7K_ z%{Y+nCEPqau~Z)H4Ojj=9TEOy9W~cJoTGm&(EK0*CzeyVt);QthvTlfrIj--%|D)# zy`@}v+}x`P3Dms&dz9$FY4;VaSO~aC7)r^}hexg8R!GGZmM0EB`6v7OkJYB?c_ri3?MFpCAv!vf@ zfGSag;vlj+Fham80vm2Aa2)*(jwSrl?b?k|HZd6!3%TYdENF!c5lm@K zBce#ps_R@slV`E5q6sEYZH2Qp18%b^Uj}mPyY$X^`J0PN2At}`;)66j%*4+$6ra^} zc142CV@J7++m@9m#$2VwI-Ks(!H%WHjRa&wN;b{=LZ@JIY^<%(PucJTn3XmyY3x}q z=glnu#f`GfMoahQ`69tk8Rcy6`-nO$n$6i7+M9GeiVQvs{{qfnzZF`{daJ^JFf--~ z4gKl=2l;|ydwMQaNOVM_w~A%|nehj;{`Q@ME4oBa;rpc7q@x4rPAZT_!Kg!e%bB*h zZ3=pP8@?IQrMH82qVkOKtyHZrwK;m@h}8ecqv$utC4-v_xAbU%YV}O391Jnqcp$EH z?7hW!hWu~bg~rP4|CJr_<5H2;ZJsMtW`I7Sk@x}sOv)M;t(rR6upQmHB-#^jV`X%p7V+NFh2b()m8mJV-28{(dalmuN zf73Ad9vwr+%YrcV^}(G{@{S|OZ8L=lftQrw(l*UkOVzkws=5b_&-qxN@1@{i0tLKh zhiiem=n*+fGXGEYE4esd=}3zS-}nEGO@KJ8ZD)t%?(`}MEYA`;!@{zU-9<#C(rB$k zj{?gDwohL^r-2!~n`F408rZsCiNTAkUD(tLxu3zR@6izTQ-{g0Ox>f1$zK4~mZLp; zDV}~Xi7;|Q@DBbZ8F$T*Bw#nA3?-CCPAultQ}t^mAW~&=1#jQm)nwgl$_8r0)@pTE zyj{UAV@+^`w-^pO~QGDY;ifYx;=SmlP@f!9O3vaLotm~9Xnk~ z6;J?zZWBqMJACxn!xbEeQ`x*PTSbtFNJQeVMt#yN>Tah-&O$)h?(f z_9#}KT(G$xjfWRiStT{^e?XoD>;D&dwpA9tB}@ycCL#ve&5TBDMw-5u&UB*YO^4>U zaT~w+ak}nLH=VDMH#6Ju7b#>rSPy63u!J1Xfr#t=%VH#Ac`@lLxID+3xA|S*O%xz1 zz3H?evH1jNX-7y2<>S=i3|m2adzp**IIdL*oVc<##!YU9XL|Bj9Jq&D%qZdEwMduc z+&}5{_9IG_R?-yg@cV4iAtk~v?(0{4OBRqoT&_AX{?P^;+2)S1jNs<28RlZ#K%5GX zYd}HZPQ`yjxrbb4py?tl80G-&7JmlEmp}WY!)$GRJX8zaG3{E!V%}d)P&Px~-(e8y z5Bmz332om{*jzI$NtUII2G|QR)MubHe5(0eKmJr%K}AEg&%2){upE)rJ#54@wcZp8 zu-6T(F}8EELU0?G&YM|G4!fMPHF|N#cQ_M$96#|;Snz>Zb1cG6Mj8H7N6#La-naOe z-;4K{?pn}E>Wn%rg)I-nA+Hw<`)bWYjWgg1mr0YJ`&DCjW2(t z$4q#YpCYyQdXwGa;@LZLh5I4i+F5Z`uvfGa+k%1vH$< ziH?#&vnz_WP!aDzqJN#U_;SO=K-hfi4(8ap)e7!hS!VXu;k>d5?x$L|B0F53V*NBr4j%>UO36h zm7JCctomF-VL)yOYI8Jn$O24%PgcH3~lFLX1gZsJVkl5Mpm<-PQ{0(Z!awZ%SMn7jaKN6M%Md+l`9iYhz zJt)2$B$Aq@Hy^~Zz(0;7gP72L3;b&Fe_p#pggpkZiMUYFrm*2WjTiz79$G8=Oaf7NL3 znyL;`Y*+5KMw&4ISJy!jrAGg_ZP28ET&j8cpE-HTTjvnL86pGmKVOA zaC_A$=k)!GAe5ka{sR-+uy~&5UKaPPvB|_D0)|uU*?}k*OwaVgEE|j83<$s3v7hv) zOi4fU1>l3CcQMJs$p~pkjv32`50LaJVAPs)(xJO*dR&j~7{4vk#i@clIk;UH0?NNU z(TOmmu%yg&Q;|e4R>)}G6#I&!{@%DkZlP(K8Y=l;Ft!%pKVoczs~Yn@|7eg^Lp7fD zA-9nYB@5L|ge}R9ZL$JO{ly9H`K@g?A!UjuFt&3ZamBYI`M*Hqfq~Kg$rl!3DICrz znb~?DBVP%a{-tJ#a^D*O*&gI9zurn%7T3uEvpLdY$M_zaV)O?jPhckE?kv^>*_Lsq zYjIF-JKWpCKst+2TaQVo?e*=f-A$yU#s^<8dTF|cJmtl&*PqA|>N@45-%2=$R&aCzwmY+urhUcJMXoZj?cemR3!I5h01rX#?vsUPt6Jce`Mf79`+bK%YNi` zJ*rRJT~%Ep5+P~*EjPI1^|9Lzub70V;d+n7Q?Tg;yhd6OWF1Q2tbH{4+cB`?Mj zAVSY#2$YFI0&64VCaN`7?$14dyak}ccL-Y5hmGlzmZ6)#w{-~j^4!~2PDdK+KuO(o zs856Sg@UPclKbTaV8!R~`VXb7{T^(gx~X=LgAykipD!x~l{A`p6>-b@k~JkTNFJwY z2hY9^;s28hurtKU<4QSIlL_RcE5zNqhr|8}u&Ac%x$ng$^8B2+f7VMb&8QA046&7k!vR6Q=0V;Ds3 zf4Vq8rsz#rJA|S!k7p?Q+tC$WvJij1R6{Cq-4nMhaPQts zynM*u{sNHG=U-ibDK0;>;(sQ|{cn&Q-?YtN|A}d^m%$o>mt63#6F3V9qPofu{u7I5 zvw+%z)P4gQNGE~_S^sEoEDw6;XFjhKcWgD>@$13;0(Eq`f2nNKUcR)mIK53PO+SKi zb)QMzQ`S1A|3c28+B)skdlmnb+yEKr-MXl?*F?Zk!a46z#!`(DhyC(W;@Vu?KlHZM!xh=P z+Ec$>-U9^ozq~&EiwXGmb>auDOL7M98h`CkG_tpZ7dNEGFb=SqzsGD!e^Zym4Os9th{o18$_5w}L?wa@6IYq4Ki-D;Yzr&+s zM?9foD>q9~PsTn41PJYL=E?X57Y%I>SQa4%H{}S*t^}C{mVZxji!(gZuXH0xs}!1l zz+EGus~G4UvetR~V~lpzl-h9tQraG`_w>4XbSiI@8}26dd>;R8ATh9@;zZJLQ_?0p zI}gxs^h$i#ur%m7q{Tp!!$CIqJE?mX9Hud`%2HzMvMxh<>?*Tw({X4Aeij}sFz?Qc z<@Jz^*N)47h7V;|oCK1Fx=lIrex&ZNAhp}3avS#6wdj~&jgjl!0kdRQRaJe^KGaJQ zS~eIz;}L6J_<`pA_Q|{*Gwf0Te4FP5xkP!O#>EjFdD)t+fvr|f<|xe*Vc2CQfRjd z+Tj~Y)%G`T+Ms2kDXu?%SU5zSu)6R!y3ZNIdSi(AkeW8i7V zxT>fO@V?yb&FXT!0YZf5YS!MpK6i;0OHDPQNz(pH`R#Ka zk8niotX*z`soJRqt4*cAp9p&|Z~VYP_*22BcI}F*t!_3T+Xj#g{eB(DIl<})@)n>X2$>?M>aOh>R=7np&CIb`u<}T=z z=N{C|Iu)3Y`nL6CWv=SV7@mIv2%Y6-LtP}54fsr>z0B8_==|cq%68Ow7?I;4fX??@ zjsUulJZi|{?#5121rJg|y))O^t)^>k2HG?^a|i6HH6d8wSRdu#s)OmCk@huO4^w93Zr(=(N@>cz3h{BE6}JgXniif~I=MwQ7p zwva>mNKB&g)o$VPeyLF@>x|L7H-SmSL3{J01@+fddu_YFd=D7#MX*o7%xanht7{fd!R66PoB=RSL33>GgW z5d0!I6b5_7O=283L<5CmEwndzmYMKWR{rkM-oAN`Ic6(e66RN|Tw1206-kEA+%9Nv zpRx;!LpKL?L0`6bQ*QP#kvG5;FC0=qunF+P=xseKlUa14sv`?q(c_PI(A!p^8cxPX zHgeR zrY0&MS4saI0-XGHKbm0%nx$1NsHwA0&3}b zif|rqod>KAuDu)MdI{6!@Waq;Gda!}Khu^nTvsLXLlfAJpU49EVtyT^(ktlOdKDom zZtS&{<$ zX763QySk_9dAfR6=_79E5f4`N6aPLnpiuFRXIB*ckvrabt{2L-1ZsQT9w#-f5ezB4 zp&KG$b$E(6OVldYm?z!TVJcE`JvCv;nn(<1cR$jVnN%!Rfe&o4#&GU#yTI%B%V3M} zwEno_tQ{Z{rh15oClQ5B{|0c2WC#$p!BvYj-ZkAO@aphMcrSKHzw9F=F7KZyOX0=4 z8uL$t-EC0_wW zbo>Dml}-1&ZXqO@LV14x@c2MU)*Fc<2%%yd&jUv_aQx%^8>K`XK;L2bjn|0($I7yT z7t|H;r(!sOTrq}7xeY#u>B`t-bTPo`!$s+#5Rm3=jhnaa7a|oPJtQlL@sOq>*u-6w zG^WiCrV8H6^V~i?Ufb7B4F}@6^6svFCTuS}?RGCdVdzguS$1q3pYI3}Cz?v!uIU;* zm`ePbEhBRzz&gm)`YEM};aCzoX$GQ6pLWiREBK)Vu1_oTR0M4S5Zn9T6mlP3)q6-{ zIh=MEO=fm`$a(k|rl|v`%JjGdj6ThV`DH!BUg^2^n+_oBq+3W=sN&aU3y`^y!9l+N z!iHLk`XCp?aRl~=kP_}mPF`K&sCMRj499vIiySrczMVD(f=uqNGUpO%LwkCP| zy-tusrj$w^b`uGMiKPrvlE;MkgzAi~yB`a7C;B{@6n;qOGkrZAh^okxC+|*w(f(pJ zZt^7jMNahw&<51oUjD|F(Xb-gA9#`-RPi#AhD2d)4o%d%(e8e9;xkEeIJ35FB^%K< z9Eh&0ofm&(>f*TO*3=p|#N9nxtd1El6W7AS)q1TZt)+>pWqDEZ`WnMvDVnCJkKwH_c5e7?v#czxp*6j@~_U<4TLG z;m#SD;7P-Ta&U0C8qq&@?>MD0bbi4*;5lZhrZ)&iOJF7(F?cBT_UsXpKnvPPb*3O2 zJt3nHDn@z2uPZT;ck&fws)493{9;rVvaG|9Ku!)-l)!#H5`(Qbd+Tix*kTl+6SndBwX>&}cM zP(Wx(|1(~xH^3VqJx+!(e4#>q5N?b=uYme{o~2gl;Wo~#=^es7FqUS?rp$Kz8ZG)M zKJ6qQ^L4A5@fEA$iT8VD!L@|_S9ZpS@-={?>{aaqnvVTZza0P7E;I1hFs;hWhgxiz z(&V4|bzZh$?O!b3{pp+S2p>%L2Khs6bSgPy%(;m@e3Ml$_VL|}FK|_5CcIGGzPql| zC!3fRmKvmEPF1F6oljA(tu+Nt^HWghW9ptI)S}H64O|;7Z`8@+Wx}rPr>@NwW;YW||cXZa;HZ+<#3X`(E^!K{B5#4Cuk^5MZ zq8hvJ&j2+DUluquZQ4SC#{zKSHlj%p}G(48y+%jwum~h5Q}?zqV9h$99`0zywqP`?{B&JethA4S2)Ur zF>xS&R=$DeJjg7tZ)f_2b(7nmrqNEmvjn)Xds5)o5 zC5`fIBxhp+FZ_Y6wL&>EsYwt;W9N{fCN_KCM#>+KsUUkVU}Y*s4Zr_tA@ry757toIqrd{=@ARf7KHwD)y3vLcfRG#gnf z)%3Dr88wORecfo>F_h=R1ZAz!S6Go*9Eb*M3Ux+&gZ3SAH}cl41%W3{bk`H>RwvEt zNn%7?42oA78hrNgd}r?`!X0K_tx^J;*7^*lzxu--q7aGUJ|%Or(_JNaNV1w!Yb~^n z$NBT^baMUM>;{tgtNs3$m5bd(>tUNS|3z~Hs9>h;FP;i!5rw`g6VB%gl!G9^k63$K z_S{6wZt2;Ide4D8PI7J+g=fn-kXv9Y@;=jpNa`Lr^+CH5vp4OlLBRzFR#%vEha%8P zvV^=j?6e!etE;hLVF={@wFIqp^Dy)KkLw%bwMbHU+qYs=F46dkE)RT;mnHJ6BY`io z?kL4Z=9nA_knNE7pp=-&_G?p_R=NFcS(4eS_8VRIbAgNy&(3km#%qW`*7mgv&3fpb zQEx1J?sAZcuD4v`zW#mPCyaz=O%|m07w>h8`&Su!PhK?DMrPU;D-6ta9G|}y#_m0S zf$9SUbBR1eKYwipV!b@%a>A>kZ^{WU;BPJTVbGzz)!o=Ypsalthiu9Fqr;6G3 z2Bo`8;XasaX^O!U3oHAmjxhoQ)Js~V9bT}R6|AR1%w&f5rE*mIrviW2&-f^rZS5f5 z>LoP&T28JVwTtwdD4(ze$8b7WJ!M|FH{VRzy1Y4mzefM~YP3x|OZ~D^S8b|j9Ac3v zMHV(BUNhh1-17=HfZ*P6RPPc`rwv~xx__$20tn<_z7U~PNrDj$1AHGwguVRq^qHe6 zAj>6&#W%$TxkjZ3-jqQWkD|@*md!EEf>58g`Wx9;OS<4~QzHF?dB%mWKKl`tYUD?n zMki0wJC74QjpCI9<0O}eI#8J@a+PGbpCfXv$B}G;T5j1jYL@bNJq*<#SZwt&+W$Yk0h5G*;5?AE7l4{mqqs^DA8<7E_?^xmG^R_UnCK8L! zYI=R5XVaSE8U-3QA#gF7^=h>`X~Ys3^NxATx_w}zv3p*bs_R@&%*N`J&96OyrMN%X znskVYtyj4YNCz(tvr87M1D%|Z;A ze`1JF(EM+4G!j2w7$&{PinMVKfBah$%WEV7pV!mx=5UNySNDBcUCK9(?e132(CGrW z^7k`n%-mU3;#s#3uPwH)r(TT?t(gfie!T%FTo)Jw{URob%0F{|%I>JD5 z^tSBh8D?Tw!5S_xi%geWBYh8Dr5mMHZN(;;H)TDrQU}ouH!sSWhTaVi4q4)g!(RBtqv+V{qRA(ff&!m6Kk{dMw=#voF zx?0PueDe{@6fgl;md1#KAY-t~3YG-?np!=X*_CfBzll5FdQHaq4$iy(!q;NhnN%9; zx5qyy6Cj3T-*QF1IOz854bu~888bmv8u_G>njvTDY|!^5)5@?i}o*sW2%K_v_azXeFq65852 zil%p-`{s|l5k6SzszQ)xJP9{tljAzaO`5p8 znDqCV*;#(rr3RpvVC8&494y_hW8Kj(R)y?BA3M;y+-!XtFzV^$<&9?=9>JQk1V@C5amv*f#5pB*&xlbw`w+-=`)?J=bb8 zWwM!+NEA(P6#waBNmOrdwaej*v}@pf$CKPE#!Hw{Q`6F7?L>v0y?NK&6I5Mo(`w1I z%VaS9S36M;1vEw9tlEb>&p;Dt=mcMv1o8js57y(k1x0JUr)Qz>d|7d3XS#p+&B>4Y zHwQZF{ujtZ1NC#Ai{;NkIarfoK7qMGYwk^GYW0oPI#}SL%q2JI={)aEw<4K213V9{ zm7o*Kn@;N~>M|-a(T*T)(4`W=l7KY=CNP0&&ZeIbS2@*jlH;jUVc91Rm7#%wy_zU* zoh!5lVuxeFrOw_(xo+|p75e_pPpHv7E`#YrmoFwVN4w943tO|9zkB1Bjehp>ZX9;b zvzFcM6eJnNMGT_`xZcVgEs}8ys1(!FHvL)tRlEi8hvkH&urcmj;)Zh&1fVPH=rliO zrjgn?Hok<;8(y4@CGBlk+HWj?@)j~PRDk^#D*__V5SfJZD$?5>gZd6nQ!x!Tt{~bi z&+pkwkvziIU)h9T60wispA-*QvP3k1;-U0Jf_86XH+;iod+T7kdBfQnkl9nZVu>33 zmCaJs#*91C^g``i_nfsBisb~{mHqr+|BR(|9>Lun04z3l*?;HWIVaxSd)%6lLw4L~TbmSaTuMgsVR>8IL&G^cV>N$YEhEsgtG?d9wuE@; zQTPf_RokBxdRN=gVpK$YJEYIORWAV{DLrh!oHynssWM-1)E<<6UCpweuj$59Dr~N} z`Vv8m_q*tRT#Gg{L{$5K`cS78$=E07dB4 z7eswH^xzyZ%O9A|NN64qxOp$$-Q`me8Ye^W^Uifc}ad z6roE^BSW|kSRD3bNWcM(YWH^-cX&SLY^Wk4v2KxX;v9cv%P#tDjWYSg5&y=x2l<{e z%l8{;eL#rZ&V{n0d&IJnD4@{uvTdc}IJO*WAp!G_Aw=fjxA+*@L-UoHAByYPyf@lL z6WI0DSzRT!gZSB_e?QizXFA8hOysG>K0Rgotf`z+Tp=s<_29A4R5vLxcW}M}Z?d5~ z4ZJOXDP8S03H09phsSccZ7MEvjpB~b-wRTdzja=a9f~2 z3V0@!3ofv+aeV;T_F~>;5HA(1;G>(bOcx(s8fIyC&SY@wN zU$l|*R>k{ss^SKS)!pbk=Zko2eSh)fw@Zyr=EJ1{Q^8A;F0@{(F}?AC;6&{6`N-O( zWU*XU5t}(FkHEHYlJv-F`rgAcCGHLh^x_XDPpR8gs#Tx)PVXS9LzgkQ+YX1MFV1MQ z$}${Qp9K9}Nr%3(R~z2#y*-Lw3w?Ea6}Oct%eZlcY7ZjhJsjTm8vf>?7kqS%mz(V?(wIt zl}|Vu+vZO+Il9|$+Mt*~Kpws`VrnB}e89+3q7ANN)%4ZFAU6iGT<2f`Fz8hyzu!`^t5%)`Utqx04TT8rkNPP-To4LN;5@bE3DcMQbBX^x?d z4H)bkv=O+qjMy`+RRKKH1wJ~Kt6v>yg1R-Shnj;lWsj9@BDcnt&zbBBt}Qkn2T0rW zS~$p7F;0j5o zm(~03$HJ6B4sKpWUP))$GZ-m-8%ln?3(kpV7ERNa0B$fU#xcJ4rJLEmq84iO!qezP zNU}z%UpE_*51lAN!mYJUU^u}p#ou&{UB2$ad`xP!*X^ekQFWP$^b@Qb&NtT^RTK=V zw&k!M+(#?<+uh`HMGHRSvy85(O}X5=zHC`bu-^>sq=C-&mR-RQ&&%&t#?J<}bH1Y4 z7`@J%gXYNr8RS73rh%tL8~f>yt`{OQC>;?>NS_%FV;VhgDq@%@7Hf&aaW?%cuAnYxh-) zAak!=@yC@rR34SjA--={I?HUjayWkt|I-0Zpo@4X!)llJ;??el3N0IGBl^8|&owL1 zYWzR+R@XoCc=ehXP zt)S)Vk}-S5v&`7Ts!RP_Wob6_#Y6|I!5#@p32Ly3Or1{`V{2aNZ0Rv-1!HX4Zf?A7?7et4Vse_?PtbS%R+* zW&%GYOhaKMNKA3L$xzky$X;0Tqe+1USLEh|oi<$EtU+HL={MFtDlN;>WGfRkMc?bTjVJ});w3gS4V^m>bpcX8C z?D>K6a>C6%k+6=p!R_M5qF?I)%^Pj!_Y@zy2P?lG?QUpJ(84z<2;wIjnYC=tJTKAV zv*iu!qB;M5Q=xnVytB0rlyF!`fH|%pLwaXo84L>B9L_+>#Rel5*WlyD`U;hoU|0s3 zC+I=gx)I1DzTM3V+8fJeUaLF3vGp&~2X}plc|U8N;=!3I3*Lpj2;9HGl6$yT=bM~} z^WPJ@%wYC^nb5CIDQwlhDF2g&2O0d))}hunBiE}B{HHz02^69-;V5vXi}ItMsS4** zCKwnAT()arEV;ZFgIkii%&>(xY*>fGjP#iCpZWZv*g&^&9+)kIw&~=mE|@MZ?vzc+ zWNX4}w;t=n8Eo;b(7M7ultT>*My~?HQNEmAV9nb}net?xkj;?6sNCI*4Hqn-RrO-j zyAo{&u~2O$vi(0~Nw0zd1;D6XqrR7-0;6rXDFgOkDrnMQS+B~N6#nv_|D6@ei~S*L ze}Xx$82{29d!NEHY!xwXVsu^&4TTQfzsggKf$^{E>XK=jk59U^1wlSOUaot;-_Oj< zjI4#8{gu$4uclj*anG*sDD!*XcJAj5JQ9HXZE$XSdbbaH3-MC79X(vI%-Y(z+xqnpI%;4Z-(+fjDS*hV#ii^39D#1^4+ z8sOKtjr{z5m*H$nwR$iOR_6mYw(nK7(qUCLLTbX61k-%=VJ(;Ys3`GO|8fm%uNAE# zN6Q5WL8tC~(QLpLd%V(A)GnV(q=mh`{O8swTh0eB*g{8j^$LHEZ)Q)=+ka>adFE_d z070SRYz|MDd;)w$Da!@rO0dnoe>A^`$AxOVX7I1lq=r8fZjJ8yUe1-2W}T45GR*E^ z{~2Mm7)`CG8$*1a!DeW#mc6eZskYX@LhG|m>lJLt_>Z6{UnMX`UZU}t#9j53xAO_muxUl`n{VWwJtMF+2P|$& z%xwdp=_Q<#J{l>w)0_%W)IC-VF=)>!mX`UL!MZ!5j|dFRaPsrz2-uLK5}t_??8tn| zacw(1AzSa3{I?zIY3_P$Quwst!cI4qm#}P4E0^>J_@H4o72%Ome_2>kU>#i^ zj23gd<$@FOvn<*!_H#8Kp_Rm~hH**{Lux}UJnqeF6^rd{;{(aT3j-hRY2g4 z$^}CW6r0T%6MN~uf5czL$z7@0Un`xxoe{T7x}mr9^@E~546~x^KNjjXu?3e3AvnI! zN3dP?a4~oCCh&x&{+>`ow=+SD;=4>unhN2xJDOwSk66OZ?bA%4k~8?21@VDBZm64|l-ESBW?u-MnS zfg>e&z1z&PPc$cr<x@?q*R zn2~RXK@hSwNy@3W%*}=7NuXnBXm}Cl7cVNm*U>XxTcAE~;bTe9asGoP*n|ZHhK~HMzBiH=@}`7Zy-g3)~Wah0cI) zRR7w8D#rG&?)R=+nl54aor$R&T!amVR;1Yp6kX`;y}A9X7`v@+{@s5 z%UFfiT!{3fjiyZu0Bt6eqWLv4pe?)kKsW{}Xm=fvb$P)C7T^&tEdZ5Hd;{6oce=z8 zXTHn1@y_2FCAL|w>F z6S*n-uY?9u;5fEb)5n&N03Y{m&OQBNUWq`6M7grQaZ(fmceM&^@xwGmUaR*}R9Hi< zyVz->u2IRiUBDbg?v{BPlWtVSbpA+Oy$1WzmK1G`yQn-*YT1tS!VUrp4Hl~co>d@4 ztJ_~(B{@>6^9SL3D-^Z)&3RstdtctT^}jCif;~5Ba}%B}%=lx+u+JGTljb?`%VPRQ?RB`PBcJ^F;uk^gYE!7HglPO-2kq6!#ZlO zVqgridxrQ@tnY9Gs|o)PWZdd426Kk}Pe0OhQ<9TE!7^)prl`}M2wm^o zKHSYezTce8y*&fxD|**Aw_J(-wmP}_eXRO#r_X?xnK|SQHU2$JF91M~>&_sv~} zfx)YW(I7*rK}II#y|Gouex`19bqJ!IvT{$4YDbll`2J60$H3I(kchEsW`}=)SGgDr zz@45>lq+N+a}g_)jg4lq;?Ly*ZQg6^mLzP1dflSt{^w`)38XXt7 z&KRe=*P?Fx$(I}TdIp8!&)y)G`N9OBEJ9t5BP*NV~a`Yye*My+1R;k4{g?1#bcEMPrLT~#&*p|LV^-Ri?COdN?{M3F{R+yjm?juGaXCded#L zPfZ;uDVYmQ8gRWuADuD)!%N^nqX$SzR}&&bEnE~{UX6m`!?L^f<+kInalkVwP5W39#-$B$r5%{bh za;{bm7knfS!K{C8JY~0f2QLR|EnC;0Y4#r zEpNM0hH5udnA+(J^`fi(HVsR!$#t-nwuXQUmZ7`IS-7a3w$N$^U-^&vuzo4)-I*__ z*OE`23|qr8=EfPFFhLcmxWga+C0J4(w&Er)m}UA5?Su!^6aTe|+z86bZ}y-hep?Nh(8rKfEE0 z!@l2RIg6@0E7_SkyBRo|0GZj^*_hBd89ADm*gBcpIbVTx@c{u50!fMpD!XT%XSsQ+ zh(30AJ#8+{(MalI10#D@5qA_5Mq~{%HtLL>UVhS^omQ4r>bN>AG~|XwEQ_L62cU`y zAf9vtk&+U1bh%!=f4W1F5}}1djd{PUPkE(rI~|T6bh>SFI$gp_kRpeR5Xb%Bn|&Ek zi^BF6wg323mL%Pam33NTrP-i^2o|)DkueB}==m*DufC-4-xFkBzV8)E7MBK;mgZ0v zNAynbn1S!Iw}UXAc0m6QiDGJ<3N?TXVst-_Ca4xIaCjs5dZ&RC{pZ5*a|s$SU42PS z8E;j%5vA0SD&W;S?43Vymb_Ta$C(%5K!ulHjWw7Q0$mosm~M<3L~sTfFNIzV=THFu>In*1<&WC+515R@b*)b z&+i}ZoY`(Jw9XsVX60wgd9&}V!NpFqwm%iHCAUU5n*76pbW_V8#gZ!TOX=_c|Hc&v zHCZ)IPkXX5dMwR;bKoyoP($g*WfXC;&nMFcL^K2;&+=xWBe1oi#j`ixwb!7o98160 z!xo&^VC?uu^49w!Iy?a#_fF>9G&Dmh%lSQ@J1sxNs(5$=1P1VK%-;^>cK@8HGb=oTH%&E;{Uj@HHxT$Rk?3 z4z0kE+2%5pJmVbrgzxRcWcMVMq6;izIiyxvs?+`W(EN$>hbk^J98!p} z$?dY)V5&LfmB_LiQ27C4E>S1~qTd`j!jUQ}W&lnP5Mb4?2Mdl%jTf-~y?BYx)aKMw z~OjA!RcOKs@U>StR5jp(9B>qnS4|8{F>S2z|ks})B5mY(D)fqxB$EG?~dydHL zC@?AY>npVK=rh?A0kr#{uGXUm@7z`Tnv|&CPpnOLQ6}~&zs2Bccj)sKB8}Z^;kX^5 zj_b2k4)}KQ4#kEjdBCk#>7UO?=1wHBU`*+b#GUNowT=~~NsE{pY-DY?Z`XA&SXM3{ zH2~TAZm6Q1s*8Wtr&6kRD$9nD%;!=c9;q#@?>hrSo4;Niz#x|0ck&yY&yrV**FDus ztin2;;T)owY$uudYRU%@o8~cT9(<`Jv}iejJ2E@k##*iyC1qkcbgiKvbEIS44ZGF{ z=t=OwAp686Ck-A6sPg7b^lKrI@Bk80^`HqLm`TRxoc(dL)Y|xXpx||Me~$Z&TSZo8 zV!$JKPzgr11ze#D=m|j3>L$b_ii|x;!4}_=EVnD?p=2vx9B_K?N07WfHIOcKcQ83a zuOF}{6BWKzrp>t%y{6%C$RJ#6?##h$@f2j114)k8$+FG0SV|s!c{dh{&#?U`H)SSe8#F!!Rw(?0>ynzOQWm=S zG|3<1;t)p1N#^85EoTY(`S;U&^F7hW8zbS#SxfJ%gJUx~ZN(CoJ$PL>VpHl6Y<6he zU3x=ZzK@8?E?`zhp5zd3e(I8>4aGK=r)zO*W8Q4`XB2%fF**D>ibFJjeXBR5# zE(Kf9n?4Vi3WT)7c41~69TD}FBeJ75bQRgmk8bXHOt!<6?DM*lSkk8?%FN9=&t`h% z&S&VNy*spytjuI8{`~_#j0VMTJ~t>yD6Z#IbBt_+xm^rLO^*Jw8dD*h!wqSh7TR4= z?#lk&>7$bg5))-Uh^V1t@Ez%mXW=@y?BO!_85@1gZ>6rQEM}pPh!lqeE8lSa?#V9J z4yriTcjrz>-4FX)*CK~gsKs6xNRLihT=sOzW9Ro61RKgS9vEiuu`Y(L7onnQ)~qAJ zqW}(6$wtc=b{2Q`ln90k0kE?QTfUbDY@RCOnwFwy2?CEOpK_hh%O`Kx4vM>>Hln_Q z1{q{b#7+R#9+b}>%;CY1K8u^r=6;3w~uvW*W;8mOLhF`Q+A^YL!*JuancDVjL1Ci0Oph$c9=h5$!TO zC2Eq&PpePr_ypt+m-Ihtn&~Wq_*K3_X^abSDoY4jOC>ZSS@}$9@yxhN91gF1hu(nx zKoVgIEEn{t=vznkH(zw0w#bGP?2Y`=LHwQ3)+uk?<`nNgM%7{j%#cqK^pA1<}C?1wxV0VqT$zR#a=j0Bz%Gr1X z+jf?i?j5fVM%M1d^K>H0Ym=a5P5JVt!cRTCCtc?h0TlgvIT3c9BPP=?BS9;8V2}*i zL8znrZ;3Gc%23d?NQm*>yiE`J(#p8J6<*JcrIk#4pGdaqPwcAA3MCdwgAm_$JTw@( zP=JCr9_$T%!0~IDFeeE7>m~gu2GVc}d&rL=%J{w+^Kg<*oWJo{m&B*Ml$eMrxE=ju zBP`0!sd#?xc`Qgl!0c$&gr~mr5A}eEx-)4hRRB)puqwgu+G!i@E>`|G5i{@DmX@TIE|Jt5ab=Rt+)|g~)iHeG-$^!XOtW}gixSAvpYlSmJykYt5^G@%^L9olU7P>{v1Y#J%>#Ju9-f zo}-ri(&#D?a+Wst9`d2Op}J8Ug$P*1TGmatK4}{gC%p`kq!C6ANFH9=Ej=u@v4Rv-VM z3vphIH?sj7<0-k};-1KcN(xTyVg;q!1nazpjJ2Z37c&JZM)I&g z($ZitW(%>^VYfC3E@^?kNQEEnZz=TVX#oRHyq3DUh^-vFn+|JwH6etkNfIF;?Q)Nf zTC~C9y9#D6ArDWvVoOEAf`O%IiB*&pzDwy9-qKTq)#M0c!(YLm7%I|a$bktAK!s_K zI9s7MZyZjW2Ifzu;OejQ9diL$6L4jJ#Dx7^U&M*{RgIJ5g+>x7jnHhU;<`yO%Nj`QvF@pzta%QQsRqq$MKh- zLKVlC^v(_1C=yRF3gg#>VyikYBY&P_hdzAw@s3}~%GmY4b>>^H$W3p522~>us6a%; zivlHl0=lZ=6UpX`=s7Bgw?6o*5EOChq__({4)4i{w)x^gBTl#DEbW+sx*sPCLZuE# zIl0}Z0-gv1F0Fv57y|@Cf=l^wS;)=g4fgq~Lxsjt5tx&7dIh;p6twB)86jgOR7${| zaylw|Mllu5B8tqVq~qGi$7p?hPnKfx;+NIrbHAr;RcyQz!!~<=oMIMGDytvbKV2^e zhz5!&_unPTw|?XZcPJz;hy*yG}+F?OdqT;-jgWr^(g~c;4ej1Q`7x^XD9j( z9cOwwJ!eBeLx*kd*)h5F!!Gs@dV*z=iSiFec46`mrA7+`4We9gGQM^obFj2r7G{8< z5L7hYaGjgmp?!<%cn%fa3vQ;ukW6vG?<<58*t5c!w+I-IDMi*9qTSF7;J0D8)QLVBksGlI=xA?mg(Hk#Agg75XfHAK* zIA`VgdzbgegL~8aC_+Z{N@L;@X`?AD_GC$&jF4<*zD|&(aL2cYi;43lHN!=g-OQSx zpjRhFumJHRU+G`km?S@(&Bk(f#SR*i6GjVdApvEH$NDH9;*BVo9FU?(1mu!qh!KGb z6{$&Dx143tm^Hwk2byEhk<0Z47%+=4nIkGaH+gdRnlq4+F?-V#fI9(GhDljCGO0TS%d7qzOt`AC$jX)L(9*Jp zIUh)Ag$HD=AM`qXxTmDE2|eW=ZA`&re{c_W1j5(8v@1=Chw}{S*GKvQ#qYk>#1=aS ze}e;e9OBZ_gnule0E$#jyQ+%XN|BHWMiyf`j{+lKo#ayV18k@ZUVfOCh4iIK^rYzB zEUo)$^U{V?&alyz3Tg-fuW(dTDXhp4M4*ewh|=8KUSrdMQIN%V>`UVh<8&tl=1Ydx z8$7mfY8NA7;)-2j$evK`J16ghS;`A9j9)xnZq$j|oJ~=%C(G)z>DsKY9tigI`~`;q ztv(UR0!u>KZ%hs`^&d~D{LDCF@9GE^=8SIcZkXmx3W}2#Q)NRV3l8F%J4QACqjXM0 zSSY>`+DsZR#;8rUzrU}fts5*3p`b9q7C=HA9u3{2$y`Fyo_J*9MB0@pRpoD4gMy3} z%G`VD$F`t0_<3=Xn2R*S8XW{w%u}1f>!E8;I^AZ)7*P}u5zliQqpDB{dZ<9(Y4UT4 z3(YavZxX;RI>WlCYlg4k4!zvLjDw+SINOSBWVPM-m{j8@&SfG*Rxj-q4+@q9zG93| zmpiMKHC>!uy%HEE8%3f_S5;QlkcYJ)%t%GZQ?PHm|3~jqP+YJsc&0@f*T3-eECC?x zD#)2+O8}xk2P{HPii}a*u>BgOFJzas8GRgn{mYdlX8~%mN@IyOkPb%q*DG(Q?^&GmZ|a=d z*W%)bPH1~pizozBfcc9RqENNh0!XRU-3jL>HtNJ^e9Be9RjRbaF&~(n27Q}qyXb6K zTF?-Aez9g*%4DL19A~d|&!>#%24l3=UeDg`?}-3#fvLR$4Xb6`jWo(gnS&$=E@WU= z9Mgo+C22n5&NoOQVeB+`o1ooz$DeK=-G56`wjZ#Rm0MPo>3{*CUe zl^eO|&gOmGw7wYcmL@O{<_X_d6M(E#mf^TET*oI!YRE>irD>@+NSwg>*0m6(y_s3Vn{g9P z+_h)f(3j_apUtl14I;!RjNh$+LV((SKT*q6_G(%Z7hMRKN3Bm<4>1eC5yLk62U}&b zp`xY$*c`Q(S=VxyF7XqmDD*1%OrRzIVP1~pv%HjmDlLU7#VPlh1T_WqKU>Qd|C4t8 zNlNRi<9_3$wpW$^SoJDjbO>mJ1n( zM9;R2i)a3Q$IxEfq4MXOh`Hv=^6Zs9J8_@KW$01raZg*Rytmjmz(|oIk64Hbzj3G8 zbv>9))qVNg{AG(!Z#O4O!n=oQJU;>ldjPC#T1uSm48IF`4kCx|`@w&SAyr+k!!YQ8 zC<7-gh>KP{sr)`m3@ypsy9~r#zGBByZDLNkow(W#gSE3`{pYvpSY&|F&oIS)@2qcw zzb*Cxd;Ea=CuD_lY}pQ4kQIZ|9jJKk;SqVbEYd)^P#utvu{MfpzdO4ulr~5!iVVlN z!6c@>!VND$rEu}+dHTNqMv=DL0O{ngIrl~VBe=3S?M%K}h z<8}P^dDW^G+&?i@TOG!13RYfjGv%XK;{zrS1~Ndz#getvB}&7=_(zTZ9{x+dw&pcu z&b&cNA->S)1{I%OBSOsCXOYk7B2Ab5yZ1w(o}kTCA0Bc52T?wW7eBEze6#XaNb2r! zyLwIXbT)e4mNz^`-f%6Mj#jHNGfz0fL4=%bCBtgXYuQuJAwEC89=vf=O<;2Aq9WwG zJJr+J7)EKCMuHoA$5L|r977WILE0f`jKQgkR zKnIVy(EnRdn2MfyS3%OG?qk(cXQmNlHC}aZ^%I|{YnnM3WWDwRbc3P0@tMZOP&D7woC>nR ze0V*QQ}F?-Fz2UVCWl*NF1O2o6=NYthx6+fZ%6}uNI?xrD9#qna@_`KR0%mL zTY%tvo-Do%GTn0##yJrcRa|agDAFQTa_y*8={kP9E`v(afkJzioR7FYn9tlSP{FE^ zDiCllA!D~3pc6FxVs7^C7X5_$>%;SFoqN+NQcK~x9R}WS6HE7JOMuG_uRIIv*2=xR zmut@s_YQpRO6tGWz)BZOK$?F*fGDJVa-4(Zz)L0 z%b&i(w+8Q09oe?2UfS>;TlG!Y-@}GwXzzi^`56*6|6r?;*XzOb?D4{;SY^xtXR2A% zJg275wC;ClUa_VN4Y=rn0xDWYpP+;UWbgD@J?HjG&~*!wH$JR9Sx6B`pO&cYCDQGf z&cvg|sjo()v(*ML(T;08NK)%TgqV;cC9jZ5qSEHk*W}K|i?7yt09{|kNReNcKlkQ( zY|}@*Ikq1CR_8NgUDwFK(q^j!DITV%V)cr3g{4uAreb1U@%3rrGq1+gB238y^a8}e zQOfHbk*Fp{uXCBAF8?loO~#Jd>^yKJAXL1W)Z=&p<0O0cqz5M9u{-We=%2ta+|4x3 zay=z}k5eom$l9MjkB_B^n#LScbqxkA;eZV0BP?JTy+42Ubu)5aL%u=T+|j_6N<|{- zB80TXw`W>MK;I&5mYTjT%+gy`^AIy7ia1AAEBpwlU&Ll-xJMtbj zk(A3+I*i{m*w}LIbqYe8+87iyf|y-6=|4Fi{SC$ZGNz?Pb+){vg)ABQy)Yge0hVh$ zP`sYbFQk}#nU_x%lhOjpZa^?!Uw)X~?RRiTxf(47_ zpYYw6{t}VUPWZs~;uDeWsJG1>ncSW?GuREs=L>jrqfZkd(y55IAO0E3ac?ha0p<3`9yDuVOdPMSGM zPBbfL>X2Z4XW~(yQjyfp7FK-xXxP45mF9o%!*2 zfG}iu7%>YEGALTYbPa|b(Jwl}>3y*t^J;mrhgp{fATv~nmobM~ z>#u$(=TnCj2UzVjJb?@`*h8n!Qe)~Zd>OH9s1D1h{rz>s4(S3ph$|Z-QJbz(b9c|~ zHhfw-u7fc#M(WkODP`vUT%eFuv^$Zk;?Mdv`26?}f(n##Kfs88-ahNApkLY18j9z} zZ1!4h#lag*h0=A^Xogd2josN9Gac`=@JurRo=h1ix?1#THnmmxy+}}A$@ZKJf9}6? zdw6+a{ooSE*phHN(!YGm9sl||+njJpK#^=aG^+Ih(tYgWN+8-mw&%(seZcQyty8tH zH?3Vt8OUoZa&rA*iO-VDoMZ`+>j-RWOv3v@IvCj>6R$GX-XhJMR1VR(l~=`RP!{iY zOSHpp2^kUgnqB#)C-+3T)tyeVM?(94K2`8E@h0Q&J!i*ecSfEuwEd3sbt3tCn&;8& z%ExFtG(HI~_c}41#942a3Tpy+3N6!US7>w8|*v0+i;O1e?IyLTefS;uAIyf_& zxyKYCYuoHhxPvI%cII+$#Ts;hfp=T?@R1DNKLW5R=&FuBOCC+LvPKj2g(#_N_U3}V zt!g#=ut1qw-m}pt9qAmk|B>z}0Es&BrO4cl|A@Zg;02d?sNKpX3>6+#@UG9LIuM$t z&S?vu+x{0ZBX4_jU2wHo5=_i3kMzT=5d%E_3Z`NX@Ul(e&MnWco0Ez)Js_v@Y5=eN zdffuEawui2A21lZw*JY0o@)e&*oqLlbmdXX*Hy#nOn?vgYH!MmCpKR6{c6 zat^bAnrqlc_#r{%btlKJ*NmT4B)n3}hFG5Pv~cG=sjS=PPU&Mrad#g*RY$p}Z7X4U z-dJTgRxX`-qlwAR#}zxY7pcK^Mt_-B5`Vj)6vc7Hl+EXc%KmjjRmkv$V{rG?Uw&UR z?z;zKC<}zGNK$#wlVVFkJuE(Wd-QyEzUAci)zJQv33h-Th!^k?FRiv_3Z`HHmQb(~B9bNm<+q7zdrf$gekx=Wd>{ zx1EfVH~-9cddzP>_$9PPF0~IJ7R2%yxo$3#9C`8885RkkI$HP2-k!`3uz|tf%RRwR zYB`7boag-moD$pLXpF_bzb-o^f)ZxPMz<1d@{9)y?NDHYL<+>y_?C zPLX$5pfpQ{e8|k%MS3w0$Mimt`XsBy8`4{hzcBT&|ih_owfTAx^50egK z+QdD~=+4?Mp>r58FF3$}Z1>8~n-h z+{xtIy;F(geTPBS`g4FmcWYlx&&^W1E(FD*!c0evcA>nX%Wi)xggVH>=95n`Q`)eg3_T1Ds*8~q)H$vqqhD4Us?R!_ z(hZXxT-tfu$d~x;F;jmd>&nB>qr<@v+M|$?x9&#Ly?rw< z12tb!2tNKYx-TjSNvYn3k`GRAB}yXoL}9Y0DFy~AV9vJ3e@j(E!#z3oamhKE5Rnj(k{l zH(eM}Ttrv4K@QBc478NZhgGx^3)|(ZNvl8nXZuz9_)W;_yzSB-Z9v8Y&C}iPDTpI( zt_&cxmzB3XRm**Ydv-^%vs%_x@F^R-y^}kb_kJWf&&|9qhlUk6bLNZX=SmM?z^E;{+HyY+Sk~+^?=bdxU}4YV z4yzZTxY=OXPwG?9P+mCJ?j);3s6kCoIq%Ep2oLn+=$n!=pNFvykC`BTkHecN|FwkP zw({98;u-4|2GEISe=@ewucAoY*-ME1Dz0%c=&jaY_hPf}2bDTjpeM+yefhYeWX$oN zgLvOQnK~dLzGh|qVFk!&-m}KIW564n=YP+TZ$up(Y9;-;t3RuhO(zbEippumbgcbp z&jA7n6Wgyz8rF!bXQc_bqlemGT)OvxCG;mLDOim%CzYe!4JVLXC!+X~B!B#1zd07- zd0i3%-;H4c{s%?s@LF6?QCdU0)PTs8!42#M_U{h~tfUaRI2_NAbS4<~&ec5>LfAkl z0`+q0h~fjRrKYlm(I6nb;7IQc5uqq>)+#R2N==FI`Rk-+${E38xM2=HPv{ub+ItBm z?jHsADoqMp7o$YNb}J26l9Qs4v{93RFthHM35V{u;UVa+=V0V7Zkh|(sYkq7sD{g&f()IRc zoax*cfBU$gwGdKTupWwv5r*ZW!1cI^jwi()87T`f#`#NG z)OA8peXuZ)UWUoQxeg|1$JDG9$4MJ@&J%o&ZctDv3e9VR!vz6r;73mu305+qKvO^B zt61?uN2WV#j1G}J=a^dy)D_m$eYT);G|b^S(oGbs^UcSiW9eyqF^w=3q_M=3Ks<>x zM?RNMlobGd`r)xj{r2U^Ti1!!H&BZ!c>(Ip-xJS6^&pgk?d_1SyY`_#y%mml5+nzi^YJNjZ+UqAiSMu>iShC&;rMTZ zJ**`m)t=pMN$}R)XA+UMrwP4Q8TO($@r&NJ+C!8qc7JfHWK=bZd6n+xuR0?*b|ee9 zA>$fk#LbZ|YUm!!9X@BZBtIL)fdIyFN=Q@{Vay+;bbp-an?Yiy#3kHGlT$C7H*6!M zM=2HQ&Z{7+?nIT6+yxuFEb^qA1ja?hS9E;yIz_Pxa4#?>w%wWeuWsU-m;({UYoe~u z$Iv>^U;(l5y^b->0+3l7ICU$G#OaD=Wcs(B%WW0$6~Qi5;x<#udgQ|^$&);G6y!yN zKl^~mz)ieAWa+IUML{28ze+T1?vIfsIpNV5DJK|APSS-O<(aE6yM3SMzMTay5uJcB z_5Fsf4UGH<&&XKI%sA5LsK0>pBA=<5k-j))S=BHP%!iko2tCq+z zaSDT~;avd-1XFF+u0K=aIHg}kWjArOjfBZ3tg~jAZ%8!#6J&%s&n%!)h~cCLj+W^_VF7G z7r{ykckC#uIpP()0}Ny32I3s0bWBiH1`Sj3KKrXQ(I>KRuvDPtfEct=u8gfnPH{|L z+VAB)Z$LKsCS^~~*XQkhI@*H@^irzpbzhnQ7u##A;FZX_eno#5U2YxR&CshZtwoSF zT=HPMGyD=gB4gNQkMHxS4X~Ac{7%8JJ-pvmrL=iJCymWM*4AWtJ=FfZ9`mQQu_Q>_ zg&pPjt&hfYAKqNI!(crv3;g)BVImOw$`ar7Oy_UcjIxc*8%l)W@H4fm)oo32iyHHI zYUEo6{#A7}g0rc=+80~vc%j|YixBl@9i3{7G zNe9#Sk}*$a9)MAjZ&uZYeye!x!}EN~tDON_<3n-N-7DTwBYrW@!R=Gokv?hn4zm@7 zgNdoGw0Vyy~Lg?V?;w0Z9F*v0Vco8oq#6l#1UQHTqYv&0oy=ng|V z5m7LMS!G)ExteNcr?UX;5dTUXNMLS+lxmtX+#vr50ZM2Pa8X4CmM=LuJd-R%$uWCl zZ?U4`Ym`Sa8@Naexh$ZKzE%6DL3j$BFeM3_Bj%M}x(53!kt4^}u+ z0UzDiU}Kda)n{m*ZH9@4Igqoez1NAM-5E*&Tv?R>tzlCQxKfWy1`jO<8P~Xv5q6x- z$pz1EU4@0&s31p~f)$5UgmXFJtkmVQUk^o=EEe3@S4{N1UNuT&c2T)s9(0N7{vYVP z&+>O7rB4}6P`UaG%b*XD@^>Xpv1J36jo_oi1Orx?BoRxuh~mpg#emW!PuD@oX1rc- zclm(LUFJ6;jms3Pe{oC&Mn`K~2mxb^5U0e|JzKH9u5h>qV z!Lxcu>69J&&p{{k9w2H-YvOW(;5RdZ=IJ3*N5V^RGMdu95RlFr1bb?~-}4-Q-j!FU(*uaWFhM#z z3+O~uVmxMa0Xd@;O21CXy5_;rTitkemtPN!M|TIe7m*0eZyDMxo3-BrTCB|$^~Q=| zAZyaf4R2rZ338&OOL?>^Ot(9POt1P-|DXmAU1Y`e@XG@lw2jMwYY)qQE(JA0X}O3! zuz;a`TzpMRo=ey&JW?f_;hjv-)@Y{{#v6Q}RE2l^Fwt^mj>B{A zP!Dv z!@ogJwfg0vU>`#EuoWqn@=&4D_XMT#ll37%g49N8EvUqg$ioBtz1;+6OpVTLWJ&tj z@g=2vtJ*)m#p9wPeV;`rvEtx`y%zKSS{wg3Wy-5AC1Gnmq)QC^1x=xOTc}m_s?O_? z+3V&t=5~T)iP6Jco{Kw+Ba1in#`e1ixRfz=YG!9F)Mfk+eaZBru(M;}?yRb&NMIo7 zh;#;kTo>5#=}R; zZK_S(aVmLS?B?D_XN}LX^G)SNIkga#oUHNP2OOpPi6dB3F6SjMV!f?YyJNkfT<)h8 zg&-Z$37%j@hf_C>w+3NV1v~8J-?{U2rkd1U?q;V^Q*H4MgmptN^4bG0brm>l>c~6D zGthAIw~w7qAg&8^NewGh0+0u13+!%;MkohEpZE4m_&WyF3YfGVWc@&}e=YyF^r9Mz zH*nwcGX6`JzSCMP&`QZoge!>Y(bL=e<^sdp?b@k4t9==HT%8pZk0Iom2o+RT5h)~c z1C7)A%M)+!7lVH9uw-gIJQJ9tc%N5lte(2`F|9cZxM{5X%_b3JG2i`X$Vjwl{oF9S{)~Up(7Wd}(78AciIwVuY4z_8C2|G};eS&F zp0MprCsy~orW@5JlL6S5e4CO{?5{Ms&)O22Uk5gQ_fC$7T$mG5`Tg)SzMffx<^4Zy za9_edbhF04a71>$7I-oKsQ7c+qd+{^4`yY3TSn-*7x$}bR+^pYts!L7i#E#DCmzFT z7R$HS+Jl2g)2T|RMHiG&RYbv2RdDr=`hZZcPx!oB1qJfb&`u)5HZl8-bB)%lFyrAR z!849J#0x36PaH;gbdI!vofbc$iS~rC*ZJ#Jj&+^SqcT2_5bmq8E(>Fq$+pnhc~PnRN;SvDGp4dpipOsNhhNyt$cr?!Gq zMhFS|A^|SE3DlIaHXXssR-!CZ6=a|zN^_vWReHMaLqVWHz#s<%nw=9dpB>kTU!Bk7 z)z!_t;6!J85DU&cF6Ka5H$Tz8(vUsYmyg9??jNl@9u`zkqq4+EKL<8~3^M1LyZ+TM zRn=B)g6{_<^HX!^lReJNUETla5l-)Js3ROPlEd{ijw637kB^4|+z(T3qNA>{pyCAf zw22d{IEht&E7KsW?#+}JTg}jN#6X!LI{A8UV4iugSOe4IyR^aLxmI}|?wx56JtFpg zc-HxHT~=J57=8i`X95zc4}Xf?sF(efo!DHLTy1hncUnpN^Rkt90(UT$q5)}$;ABLs zMkhtEQ-an~0yd|=SCzc}YGzqWa$B>fGxB2uEj;Rz{-8=ABotoXhuhzuH+sx1Qt!cM zLw^w!YT|qjWXDv5#2weh)e9$IP^$h6UpR%{NIRCNFDSJReoNQyFk@N59>$#0xm(+! zZbZpHGdlZ!m)u$d@~DbmZ|n&Dw+Lw>0*D2a!pnnm3P&lQSI-bDYXy3`NHh!*fbZfU#@%j z-$3HNc{%~iKU#5tTFpIX+sxk2u%NO^imYg|PhLYqr+ZtD?(tJGQWYL*yZk=g%b+&wuZqLPUFYa?6L!X^)Ht0`_cE%?&_ME?|;*pv< zhvT(yP848Fx*NU@6RfoOz<`u??KILK)dgM%5d{WL}va(?}O@?Kd7nUC!$1Il}efw_GiKWF%fV^TXccZqY+;y zs_S5q&l;o=IN)>q;oX zx%jC?8pQ9`;8mo%%(Pc+0k%92wmh+HLw?T2%vJ`Kp;G3gK7p-T2UTY(1k`%iXD_H( zw7C$lX2c>(=(hCF|9>Q5%$FEl0Q;Z)g%pZtiP6(&e&(7=Gs=FS&e16}h>*hDDm^q{ zy+C-N%7N;?j#pOfqO>w4FQm;T_v_s4-Hgy)Z|?^O#-nC@SAY&Kx&C!V0AHlb;sH>H zrvE^dt85OOD+mq%WGhs-&xM|wcu_$BQ`ey-iii;rra$^BnDge0iMfND1TBF^^uKf(t#9q=UKjMEcmLQr`c_9jTZv z#$-9KaUWafPvQ@37JZu%eJowCI^3FKd)VHyVb9gZWIS5Yertr}84bII#P>Ev7KJsv z(WNBks3)f5hyY`Gm8j(Bh6mJ<8twGi{n9u0Z)GTJl%HMocd_x(nw#TiH)^IF#Uy=S zvu%$-`bL1-KSq)w-iua{6oEgptl@DG45nFctmj0g;~{Vvmg0o=k<>iB(Mv~tN6ZR{ z#grVl*kZx4k~Pd>kyrCS!nNodzut)HeG4<4t~>&`y`UTE+@nGZ^<)le8J?BgXfVmF z^;(k4E1#|bMQ{2vD`T}wrVdY>T9g_uR87t{$14i#ZP^`RFs5kCpE04S+&n)>7y#2? zG@Bh$cWqwi$gXR1?aZ7=tPEN4^l@~$bN|u97%sSyG>im>;5lM_td{Zy@OsZ1jYtrQ zz)VGZ;F?kW*DCUp(2fkIV51QazF+X6*Q;h9+kL0bvpG4~ELBBBWe)pk4Q&zWHBd7Dq-4 zgB%uSu)_>goCmH+Dd5%qvl@un&6>E)|GAdpOx(3i7>lj*4od5Jc0GT zXuTMwKR+>bbDKPO1I!FFxzka7_ND>Y;nUS_2&SON?h}=NmszM0V#hjr$_<6r*Dumz z>`}~ee?EoVcrJi(kRpvwp1B;veBZ1YFfsi~1s7GT(Ny6H zW+e3`HmzGE*Jb)Wz!_$HXt+qv-(OS3{{);|!7wmugXj?LBiu5lQBwo!l;YdZa;;+? zjw2AE+K(`Xu*-MDQtbaXsw=z*-FNCuEu{J+spZ@7P@MOdEUdPH=SvJd5I=hi^yAjU z?$Pnqied5aKQr=leyFLm!RZpWYgJifU8kd)+OLH)*puXK`N1>Z5G&J)?PDr<3y#+4 zLKsf#brnxq&T7jckWHPg*asN&>WV}55XIih=oQM6e94+70sbw;PLF+Ta)b*>vm%tD zItb>?iC#7So9dOb?JKXjc77%wV+Q0*Ipo$ygJ;gAoAXDblE`oW6cm>TYUyB`tn5k8 z(^*zCH=Zb(LWdD?M5SRbSi1iPnzZJxDXt5-7QWp74td=T0EuHv8LBpoVJ(gfEItAD zU;5;1y$w)v;ff1IWVSbPP&mI@(zJ`V2JAwHjA+IRi61};!7BGB(Ecnk!-sNbsc=gZ zk|zIwzu|Z0%KI-0oy997BmZ4i-#a`0A`o4Sv~;^I-Gqd;Ph#}q^zQO_)zbB)shfuB zI{FiPiNr3XS0U~@74 z{NHeqDK-2%a@ii1mO-xt2_yGd+(NT8hyf`R1?A;PQzZ zM{$NVs#auV$vd!B7FbYN1AWZTf&P5!JFF{RQGcQy$1sW!JsgADb6sd79tK^II31Uo!{R+pH``@T_BQbSk6HboFa!sK_%3E%tm0T( zykCCp?)~D%rz`89hjZ(kIW>tG5TKWDQ3xbogZx|GiQj%aP%mU90A}CwFh=SNWVOz>JX`M8o(#_!GW^J9|@ANwb&)1+8qBG|NBc$rZX1|Uj!`3+0h=fiHsWOR1GmH}L2O}3k^Pk+gz#rW zbouLmCRm@HM;e2zMXO8ybLjJa+$Wsh4O{(M?7vx4|165@R78H49D*>k{u3*;$#H`}NjUt))0TTA@I> zZ8fS&)@p@xqJU@26*Pj+Sn@7EqL)5!WF*9G_g~*AL?8Fl4$oQYY24%0fi0TGlc|86*j^ZnsTA3%$3p1 zKmFq?riF3BYiZ&c0555QfE1@Elh_#&V@$=KETC2EPW9U^f&UOd9Nlw!@gI@J9Nf%1 z{3i<6R8EUYEZEt}JISMMj=8&MCvTB`M^j+g!WusdlE21+rR{ws}121(zjvz4&c>=io) zJosEb+Vt8eJ=^+R@wB`J<2^+L`QGqM{BWZb0qV6Od%l|Ak+xqGcHFr3!>hTy1!9OU z^KBkQ6NoYOniEe13sbH=Nz(CdKV?AY9< zeuf~BZh;aeS&Xi2j7>Ye0*S44h_l;~9Qo0-UVZ}mvD&UavAPoIsUjVB6t?gJ4tv?K-Kp~lz%wv%a&rB7+umhU zvRH!@W0i03SwP@YH`q>=i4B`K=QLB!#9APm$PXwWsRTH~!OQvYFDZ64-0K?;? zBdCegI)> zvPlR6ft-KOnxYQ_`B_yC$CS?D~f@b)KKe9?M3PmD!1#UU)D z;MikF&teuA6-`y?@n4^qQd5)s9$G>_|IJ2WQ8T<`1Q`#NQV?<9iHsGB$|%^!M8S|Y zB8VIzra*~oTGca6HIQs0TLxfBjS0*}=b`8$d42Jw$H)jU|2BHrZkNWLEPCY}F4uZp zi?dzZ0c-h2#oy5wG#a0U0gDgiZ@34<+#b;wOQzH5GGnoCB7#Ydf)6wQWg8(Z7wLy zQTHJYT1gED1nhdNXdhT~`P`bg`8Z>Jq5Mr#`d@t;osU)N^x89wjq1!PXMBLHXLV`0 zY^%FAnztd}?>suGu#`WM6sLQ(r52~i=oiK{W)^f0jrIdg<7 zTQ;V5ILjHQ8nEnA$0;xSIybk`SP9c#$I6jg)ftP*Us-aDT;_)2*`I->Bk~J91^JHo z?HUu3Pj{?`t3jQhJyUBD<>3hMVC+Dk39VXOEfyfQEgnq|7#K0~vXS}-PPHu92s&)* zgUvLz$FDQjGdYv@$O|qUWznQ**YC;C0VP#IeQI?rd3&`1Ql{U9!YH~=hg6rms- zKbjn52(!Q2#`|1_D_M+TxluW}p<9P8NPh!3yR3ybw*BRKCXhB?`a^76_{Ak(-IHhA zL)r=BW0nEF=Qwyqo}7*;fh;|p3&VQ9Uvqgi3_mckV-&Hi z0Ad?!i8dSq!89J6eN~|k50idp_E@EFUczlbazec}oNu(doEU1`_TBQ4Gtbm_q)~xY z&BS)@GIQBc31uECoz~rkKYZ(a87U0R<4{)PhaQT){TAKtgVpcE?+VR z@0=VZ_GebcYSZllf`r!qgK*dd((9M6_Y}8!^Ng)Qp&ceJh5bwzFh0$3rD!M%Y>q4d zVdJ0AY?=C&aQ_U&1mag}?Ls-*-%tzcrA?WTWYF5Uq$^UTO>WEI6KRZPRw3&?#no+? zQ3Gs=V}CLenqphZe3dRigB3-mvw+BH>1lww+g@=d7L@zMMi_9YU4#;ADL-xLg-|Un z<8o!$CoOvvS9ip__-vrnPUYjHawa>&#I0jjxtjF3;>b`~$)EbQ`_^SrBvX#GG0iyd zrMUgXaGh&#(Z~+*w)axdc30>i3q^cgtkz5u11IewZ(r1vK{ zZFI&6m*qY+UJmFrm-o2)Y3_5eJe#XmLY~~AJvg}&tQK9TCA%W=m28ucQ(IO{=DYTf zbDq}{9)kteVh$<2j8WhHbN-}I&k#B2=^){u$l%oyuDNo9~NM8`ZrLSHXyWSGR&D)+-Eqp)PD8MoU3_9FNx0xu?oS8d`Xpo0l=n~>Z$Tp!p(cUTCgMll0M_=1zbV$gqSmK5SX=D5-l_Y+hAI0K-BuWX{vJk|RT&LJ8u6T~aKbBcx^M^(1 z#;b#Z=t-$xT0-x6haX4>qwRTd6z|$$rMYm0ywzEZu{u`Fgrk|V064 zAYMvM8m0U_wVG$?axCh|EA%c+mTK=XIjLjkj}nF3-4d1qk@ToUyDym!o40*se4C(y z_0ENd~l+%bVN_`XlN zoKKD}4?JYg+kN^7V>G`PaeOZKG_VFTW@*E5H%!Ov4us#r1}NO2v-iE zC5ErA9IZRRy)XT_*^1oUr)o+n{#r*V((_pDk`d470a5KrSCu$9cXwwIbj2lipWb%J z?t-8G+G^g(gv+`XpoYXak$z1rHvLwo0OM7Sv#c3;=~~C5n|!hq$I0EmWGbLy^IZGg z-u5g@fBdCC@|D499Ih0VFur52hR=9`-}@`CE>3S8|2IVih2eL% zJp6=d23d_OpHQBgF#PcrzRCp-`2$W?SU?D|8V-=B}|uq|y|kNfdfgM0~v> zVYj*rh>}eF!B#WK9`7+_$w(xNv?&7@s}dXRkdtG3Iy#Jo#IG0KE{I$~7EDb z8rx|~b8)>Hh$!2%Y=}0aTIp3LZXl9!9jeXs0&3d`9I3J}MBv*`UP<+Q^m1EZs&{<2 zugUSx-PqdWg$KW?@zX369*?PLU#Wc6^n+i<80Yf?wo&y07Z-yMD`0g{v|`Cw!L;C@ zE+OEGcfZ34f+8ntVJY|i=dc*sSJKgB>%HS(q z2=rYE!u(x8{5qvl%Lh>BJ%v7*I=8!-k((P!mF#F^UjS)g$_rjl2!@ho*5D*vr=N(b zu!~37_b;$`!m9m*&lN^92!Zy`yINSC3ClAwwu&=`)lgJWrn+V-j9}b8IXghDSmY=} zgQc!>k5k)=BSX0xizkIm9GX(_i}5j_eu~FEVByYi6+O?&}fqLj-fEq;Nklkjau87 z+VIn+H9|8pQY#|HK?#*K_^n-zeaICQQHVY`Ns_c*!xm> z0itZCy5Fizl%!Ltn@X7@fl^F30Lw)8?8KpyB(~H7ndJzYblH2n@7Jf>i;fdskDlY;LMwt3EaQHtWOLi{s};+{dh^*bU8ed*_`f^-7t_w z_?V*@?qK{T@XWI4>c)I9420s6LLb~w{@66BySa>Xem&W78hUTQ(^)tYh5V99-LoxX zH?8_(#!)2C$In;oPtC)_5j`two%LWP7ac-k{Gy7gGUw*7w_rauphd}rg@c9}fjsxq zv(oCifUd?s4b6h8j#Z`Ex38-B_IfnIg##~5t||zkm1$odSvDtbB!UAbrpN!wqnuiZr&PcLJwS?;S=^&*AAZKB~@dYl3Iqw zEq)wcY&WgMOOjw8Solc_62r2beaU4a9mMS{`!(Ql2IWjJ+(m$R_42FwB%3i~fEf`# zH%9>+xbDtO3m+flszZ5&>$3=rUn%q2fP0TagE)NkpFBS;CIT_EE59&0V0&)WRPX~Y zjVCaI7up`JEp#=Mw&YIaapKhLkrqQL( zWIIR2fVo@#l^}JWDizR&Xvjh${<8x_G;W{RQDqLCg4(E%(|^15l^o|Ge}P=~=?G7B zeTPP)Zf+E%iE10A33^8aky7j0m1eOpr~uWdVfCKINfw|%Y&rtL*$l4n@nFyfH1+)hnkpe%3 zX(muN$UEp~GrKI2Y|*_A%2T6X0Hlm{5pTN3G<1H+1jcD~4PC43Rq)BTL=iCP-(Fk! zG|;IgvtK`azNpZJXaR+vaJhewYEqQiY4LQ!jK9CTYty#-TqMcb-~XoiOhFOK#rrXc zrs87#UEby(SH)ttscfdBjD^g;^1U=m zHYKz9IXcX4;(j9o4@_p*k5{7D3SIrF!&bSH(Fp!LSXwM zC|(%>q7af@`YeVl*oyenUV%L1}NCA^SCXKp`nDVC6nIan9^-M5F$W5~p zxlGw<40{{27TRnHxbumz_^rUn)(KrP9RGb$&&$XgPtf=1WM<$P?Od?!zN$-y!4+T7 zqlH=PhS1zX*4cV5%d9eBp*^Cf;{n>5^1uVmzc?cuISz?IOgMSe6<;dV1k|I~ilAzf z@aRgZ)X-z%m|A3KB#7x*z5*nVUFaFHW8fO2M<{G>;Kq)G8BdEmWOn=jObtj%f@&I+ zE%qOxwcvh#VDo>L>d!t+G3EAU*N}vSgg<_?3aox&)8CJJgCpGY?yRFMLq$ES-}A6l|hoQ8ty{(#EtU)+4x`b6BicY-LWeS_uh zc$#uS(7C0YVe3j)z=9lux4G|7l$>d@M@s@nGi$80*y0)K zUwSh$)7@$;Yyh0lwPlo{?@_oXeCvdcC#SKry3>xI+DV=%I3PB@zm*{XS6d^!=f$`8 zb0LLseb1UBto5~i@=}jwA&&tFm{n1CUtzVwB48OXBU2($50Ob@WEP3+Q>!c4eND3B z569RHgv5OOAA7!sXewtM&|RK(y>Pg$O2owb%MR#sB_E3HEKP&3_1;TABNuVEd?KhN z#Yuva2h!@H@pn+&MVLEG4zs{zkDY3n56ETxfcM0CtLnP98polrFc~gQ+&rP54j(;j zU0_)5*s?z0``h_zB%O7 zN@_uJAx?TGyWTIfDoGsTnOYkl-OX9f$riey{{%TaK+}IEz#r*eDym~;CRV2E93$M! zFcU5M!X@mcPj-| z!8lS^u=QE0CCnx0&>dZ{Supr5>0Hcotlwz{u@+fL;KkmH1t0}50)}6C_uDhF#fV|@ zAvAotB7ivy68tq$XvMsTt7S!tAq)S_K0w0jk|CmkLlsTr7S?Nw9oLxp(WNp0n$9?AEeVLrE`d>0S$Z2i_fm_ZmC&NzrZZss!~z#j*oU1I%3zT0C^ zx!asn`tGF)Z;wFO+#kDnAIm|NN+nzEnEJWShn*cE#=`|JxURhx!Os1PYzP)Vr2o~G z1v}ELP7^E)h~*;%tbJe8XDffCd2cyjVs(zkj)|ZFqi)OK+i_>k(ozi#8OPb|z^f*M zkuq5u=WeBj&6HZ+vo_9c2mkUkVCU$u-r~5mtY`5>myq@o9{i)HVbRog8u$n5piVEu4m+4{mx~vOAx5<99$Y$T@Zm6I0{_N z$VCt62j!*uB3L|r*f`FR7v3j9%=|?4XL$VKR^o>Ka4V1Z8}W52g?ahAeMf%pUkdb$ z`Uyfy+Kv?X@-3+)^_j34HS#)&@YjyGPhJjL+{b(4?5(fRb)*Ok7U#J`*BsuTcX%)#}Q7M=FUaT>dl$U46*;bywA)Tql&My#-+kKitGu^doZlFFE zuXp>3SrbVMmu37fLgSt6+|=fmqwYM);rm@N9FIo#sYf*1B3aMq*cxQ_3SG{faPg*0 zdlx@Jt(gbCs+I)#3$Wi7d*+wP;v<#_6sS0DlM43C`cSp%qp?YUjFb@70>@&?n`nYV z?W;Z{FY&h7Q(E#O9#yIRFSUuaDDqJ#IsBUol8k}FSPmE1f@*L0eH6G!kZRNMOzwAw z@TIY8OUJ$&*J5uY+efCfwMZVIY}BTZKLM`?w8BtVGN=pcF*Gu3Q0DxMg(A6cT~8M9 zN{a9vBWQyLf(nC2d*d<6cG0Kk)99zE^(Mx1#Jk+yas`jnwL;%*ss-}5&Zdk@TRce2 znW|66CXt&Nlj*RhJR)Ru$UVgDePa2sAdnL>3JO?9qNk_-Ou!eBn5ZHKq9qP0C_Avt z?ktcOjT<4XI~$Eisy2}i;1pIW3T2ard>=q!z>*S!j2jYpBNAtXi+cjBuOGwCM&}{M zw7oj6&MbKF7NC|LTh{uE@Oc2CB)!=M+Pvqv#BU7?X;hTaU`%`6ghAE9pqjCW=qSS` zd4lw>FS%~h^1&1jDT(gdpLaB=kg%0EhR=5>4D|#+< zFpQ2ixA8{hc-9+B2yvi|Bkmsqhx3@smR!OeYKschdi1?(xeGacYvcEAO_@%;( zxtq z{XkMxEtx%v7&P!F&r}&EHlGJNc9QQ2+T5+=6ET}f2h+B=bp)wXzm~WeE^Bzk{Su>9 zUpHiaBAX}8j@XHYQtJ9F#)92*6WVbp+Tf7XMv|!Dz{j4)E~Z%Kf;Xe88t8FL!1Jp^ zVm$jfq{$(5Amrm7t@a9<1oSti`W>rvCBNGKt)elO95yyK4lb^(qoYTTpJ*S$B>n)* zefGuhpEgmL+fhLCTjWY*EF%AU9%T{k{cy@aX>qw&{V>zFF4z09CjLq5Y-?d{WF)0a zDF4{EKOEnv<2x$JEHD;@37U3?G_8$Q>Uv>gNE?v2~r7dwLyMdx{ zk2NFK(S#*K(CG(o7+WO&Xq^6rVwiwG1i;5IEQ1K>Kl&$y$qz>KkDtN`qr79|Q;?k* z??M#ivHx(k%kdD>a`EDBU@2B%~#x9 zX>qyS-)%+V1AonyC?-HKw9n4_eU+QVM6JeHZCHrJ-G}Eeg!;d{0A97HCYP8x zr{*T@Ik`tUt1ARpjF}z$KZA=NKYkABxq=i76##z_tl03P%H|0xCm}&*e_Y3pUF45Y z@?>3@a8fk?4wds;{|{7N^*1W_l#Cvih0XmYmbF5cer|Lc{nE^T!^3LE(hgORH+BSA zTv-fS##QG@nY(G7G;1wgH~EP4p{A+s2Kda>gjfMtrlgTCn17kypUjAubgoX&-N%?| zrasRuJf^)f7<4(t$7iLER8=|5k#4hj^Kca3V=L@6IrH`dka`$}?8-QxB|MCl%J!vBB+)@|&JV+ly`+a{39Te&*n)a3Y7_X3@xEbt=HE4T4Q)kl zpOS)_^ToQ_^MvPosMjlHypEx@r^k_ap8$P(mBStxm#i8|4iqo zxA{cid?YkfpN*+8iXCB(8@ATxey2E+y7mrZ6|dmPnBat9$}Ks*1<_&kNoOy3zK?7Z zb$vY5OFqj=l0?SbRGlw}eORUHdiKi4P3!#m%NAW! z(eF_``S_Lb%x@%)kIB;mb$mp>8Dqz2#u-4jrf~K4fi&2@G|!`lr@aST>vzccR@wi>Eo;8&m|P_8feAnitBIDHStMS477X z-2bbB23HZ!GDkFoelSwccK+wG(HacM-k-@uA1@yJTr8Vhgf0`opHPKxZn`RtG0X6ZA9j!+MoF zW)6aC82FYAX^pW0GXD71BZOlXnXneBhgp*imwE2*$*0C~w~hendPXX_s!2SlJ(ZpT zz)3cEO}4-}<7;2Uai2EQ#{pwV^ZoqY@lkR~#-W2P=&Ol3C#{EL z(vegp-osSeu#kwX{pThIGxZ684==2C)7VRtKI~0 z$vCK#E3ULto;q3!cr${%TFXUr3~q@?X#vmdj~-{b(oozOR@V}%#QQ|i!U1%x8xDaX zvC|7E*>49{HuL-8KOrNR)%L*0L1Z-B|2UURD%J_Ubt>}+$adA;xf(lv*l$8_)#e1- zgFlqZf2A-0FBuf}DQB-^)w1@=c=c(c{I3Jisal}@Rt?V33b1Bn3N>R~qK$2X`xacV za#CR^Zq6;yoT^+>D65+Gu5}jnWc`&s^*U9e<9Ge~x#2FJK;X*hq_1LP=lDEClTjjMt99TV~utyf@(=-*Y`S)SFO2Kgz!~6FJrhy;`)ukv^m`L zePgruACMe(nPQQUMzk6msbfAB7+DQ2wiiR1=b8R72SExl5=Q|4;RA|b==;kUgvty~ zF;L)t|B?Ov&6{%W8G3-ei$+D(tqF;J-@dw`gIBw+ZeONe$;yqL)8roG6N;Onw)(yd zM-7O2xnH>C3PpW_B1QN!X%WFnR)=o(5VovXTu7L5>0(T!ZD7srkg!y00Y}c|Rp;>P zY}sPFAFHqnPCG53K8MYh|>PIS`Zn)>6>f7s^f>LRyk4@Y=WZ(oZhAFP)rCA zqZRISXppmaX~E>*J{M!$zilch`P|1G9V`itYiDLG*gTeOMdKrQJti>Kuk!AEP#up* z*;V%;?W304rIQMUHgLMpJVJ&h{zVzis3b}@jWb^vN+3E3X%DXYSmx-gqHYH3yzIGd z2w5ErZpL)>8c*X7l-F@0imnF;L|j_W0>~&L;x*(DXvw?%CuVSa&q?Qe z>D}hOfb-QAV-bq4&xbNKg7*y=<_fyd1y}PUm7o;QfS_$P-qBC>jztu3=r+M5V`$V$_6RaEV#4bf?hpjw7RIpwk&|}Jx*%}@mdBoXAMtw zF3qz8ZyDcl^qw8mHn~-A?zS6xWyHoy(V~E(8Cq?)4VXJtsy*ph{FN$W)^(oe+D}xZXIEdFEgarz<=QV{y@kS+Q6NwlcAX39A^JezHF3K}~{NW^A1#H)>7wH==vAiiabErv#b`(HKLZ1dHNhZ}=MPAvW928Y zko)*Kh~;dJWB9CYI(0gqwe+~*O7W1Nvx?bnH}f6OTGJcTQ;Jap#2f9{Pa)bBb!izP z8%b2>9;?*uf6c_;mwAF~7_?K;Y3B%!OV+h}>v610 z@!B%AvZ^L0WO>@5NI%%K!)0N~EOD>ML9|S{EHpkSiH2^>*b}3*JY5hJTNA1Y6zVRF zVp&`srs%Si<$Pa*&@;Vam5PS$mzpV2fx{?;aZJw6-KE~f#8r$w4|+6w`4Z-f>X9B7 zRr7FXWR+bNo{lZhS2w8TM7bJitao0pn}p+bXC-eet^MIoR%ht*j~hOX$6eTu$Ycv` z4EMd74ugJ9`Ib5_{PN4SqOH?kWpLWB451fofKL%6;8B=8?xLE zNCLM7>f0h;&~<3ENZALGBIOIWB>2}v7o{MiMW(de@s~bs>ma*=S&R0!lGpc<9egxx zDB~xF%TX;0YrOsS#?$I(TJe|Lx;>27P{HqDZpylvH2@r@AQK^O#PF4S$j<4%t}?iw zt9KRQ2C?Q|kNq7qHwOF9nR9XV1uandehAcG_6%cw{i`Fa);bo5fK$i&x>Sjl2_ejF z_`8b#X{6@DduM5ic%(ubcy+<*#X#bD6qO-+Zrj4-*yZY^dk_YTl0xGg_LfX^Oq-nN zA;CNJ!V}G|C*7GtCA;f^m-;#l<>8@a%&i!y7Ht4Eia+?O2{6}DOfeK36dE$l_E?DN zTxxCYYI2i|3)I#&PqW9HS!EQ){KDV6JZVmXYxwgoHm zn}1Dpv#M&qnF1I4W${n2gQ7b*$HkTbaO`|FfB`a7z@2b=*w{V0mq?;tS)D>bltl=7 zON){A4|S3YWEadg7u)G2vd}^0g`Zcyu7;7lX826H7sF)F-NwUOtM2n~`KkluPyP{D zE2%)lNQ!5ox&ImLCk^|Z#357gwGpKy$ZcQ*E*e~ns;F0lJQMY$x1 zE<0-!6n<_vv&Jm59ErCpMB!+q>yO^knHAK!-AW?TNFS@e@B+XjlkLW%7 z$!2;g0CS>^_q654^rXCS#7qkv8gD;2=-c`-9@s5nI@$+HZ3a4BYj}+UMePI(0;lPy7!h)zHhlQKk;NSdc{_YWzE$UFD zySZI?%51{S3)YG|W40gpyh+)aeSz2Y>*%qvQ2u4EPm5wXZ&ph9u!{V1@3Q``SgCI^ zle4r{z2i5I>aP*Js%H!F5>|#qKM+ei<#<0)k+Tnd$X{em;+y^)TNB_#kW>rowI=z( z^YG{Aawowv+DwyPsDBKJ6)e1J97Ox~iT~t?wa=cy180Br1C!~gnitRkU08T1k0^4x zhI@K9K0x^ZuWz5a_)4?s#cQS%?pm%;i!A$+j@*@Cr}<7{uS#Qh|9YK_<4~(FP;N^A zS>PY)RTH}zhYzWuo@{Zr2QfgHfA6<1O-feF{FzW4dkVJ2`0X#WjIl4>cC=}fmMCV= zoo3kF;Jr>$%t;B9?}X|N=p=OCt2Z}NyQ05D1NnRQE+GMuI2c8d;4wn5S%jXz;nX1K zz=pLF;B7xLO+fokdFbs^xmJ`TPWtuinRG#eT_@Q#&0jTmfz6z)QkTpBUabfAVrBnZ zNO86FALJy@z?7*bZ)$|a!T1;h+wC_M%U|&O1Z&nnG~2qumypdLGn%p`!!M>O$S&v$eR8nSwXq$6zEFM}u!3Nc zX|UU<2a3YMhq#-|uzti~>V$sLd5de1>O=W-Clw#79(ys{-WSulvDS%lWDVgOHeD9m zjh-&>iF7~fRxnNb{|OrW@lR*}C#c~011c8Qk56&_l9%0~K%sEUGk6;F zxsX&3*mSosPPCIedoM9g^xtqapBVHv$*rup{5FTz`hhXd7%O7)pS1D>6v{&w{{-?c zpQ+>{*k>9=y3gg4`j1Ac4aPRJJ-vXmSBQHq4DH%PvUj%5kWUS7(sLi}AEE1Cd@!ib z-%+Wjx=JFaMD+3W%Uuhf?#ZK(CMxwuDuXUN$t}yIMEh~i$AeI9$O9tt5twprj|M|F z-0Hm?gNEJ*PyJSeT!bOFBz6U$Fro_HWuVsK)|pad%ewp3IP#mw*GuYw<40<(oX`R8 zEonshvoZ<)XXhwmt_v>@EV+XRNfg+)Zbi`jAOaWWV$oI9zLlCqSSuF01(myY2 zuxU&nR$*r3qFAPVVdrjOGK z6DU2Yng~)x{?^$y*w?BpO(}kiNH)RD6jfj4p6W;|ZGn4&RtxSFWA=;h4>-(1NheCq z&ogYm@&d^c_noz|f3;S`!I%-_e1qYO%G)P&%lkvM5yk3gF`4eG3Yo|lKgh#jVjx9B zP;0jxUr&9-qgp2vk?ZJ7(U``1tZRBRK0Og^`&sx&Lfck2a#GQ2nG>mZr2tMp$9{(>&Djk^5@*hwpjCy02p@r{Z?SWK(z?y6CdrNBLgz9Qwb0>8+7 z=OiGoj5Q?H@!S&OZyn`L$?1B6E_opQyFA0?zI;j*L5gER4nl zN>A#=lhr&~%tOnY;hCbYk3P2wa@RUN<3u1q02x| zf{K$m2GbwjW40ghG@F*%NKdYB%!?ABybdE=4Odcp;Tir5IVAm^*GZs%|5v_G=+BmJ z;5e>F{f9}(Hfj|umlE2a=TEiiFsW<45Kuwx#Y|&g8SJ<@GK?IDErOx$>s%%+me!bDT%dTZf;foZpDwKN(nZyFZl6P z40!9d)wcGN(2t*JJx?cw{*S3;$@*a@+GygxI#d?7C^5b}vL1baM#0T!g8ufx>D>8~ zsm9$iZgAx_t}tH2ln3rf$F;S+fV$ykJz%7o_Uk^6FJA^Cs7T`Vgdxi^zly< zRKK_qS;4J2{2pFd#C_?|q}YGx4xYHr)pnz#R$3MMMhc}oYaB`smL_T*G>!%v#nh>q zjDFV4;>>KyMMJjJur4zW7B;3_BQiOQ7t!kY%J|!(S{yA}`o2O+~pMK zO>P+9Zo6Q2>p1fv(ro;Sb?)GBCs^s(G5mb7v_O)v^~4#Eh4HiKXiWoZncQCA@WW%3 zsu`~b7r;{8(R)4l2LUv>v~g|J|J8&;jj!sD9NE|bP5ODYB0fVF=1yM^_xeIS9oYrB zeh2xc*jj(9Y*+E!+o$=3DZ9^>QL;n>wunl5nVs7ev^3rgFn6i?)@R0h!@0RL6)d2& zbBFi$2Iu`Vz(M&~X|EPL{xKbPlT6Si(MzXVK3AHj#;M3}69F_)l55u$Md4cMP(5*dGcWyR|;>sowEeomA4NMyq*$$Ne}^xbqO3Z#$Fe-{_lh7Vwipt z55HRr77T{aN(=Js?rC0RUL9I!N)&sY|Be*ub>hBh_fy8&*H@c{jy^S?dfu@YwLhXL zF~xoz$U%fCljBqK?JYAzHAeScA5_#SkImV}Tbo}t{hhvman0dOW_XTm2WNpxc2{2M z4MiFM=n#7lkdr{t_%8tg;d{AI=XcfYaiStf;SlQonHDmoexn1Fw}f&h5vRX})T9Z!Fn!v8)BMemla>X#6%v z3UD+0HjKxFjV{FteEuPpGE#bvCCQUh4qz7dru2Vefs<{sNhWBeXO}hezgto48(n|= zOE1iz=D+m9>^sb5cIe6tKBeBCk!7qu`>|(NMP4ncw_CC$+OO9d>qLKAaGU9lw<9VR z-&!Dz8MioJ7a)26sswWfZWa+6-w#G{W!Nc~Da^eN7B;hU#UrTVk@g_mVKIPI zih8ZRBS4B^u+^g1e@~S6 zEkdB^&Wh$Y-nS-JZ5Iy7SPS^pQp8+q>bc~EIig01Kl4*_s1>(d!0G}ANfeYYhv}O- z7_-KE$m)cI!Q%Jhp39iW?vsV5-^L$rE*JyC^S0NKcK_W*CA8B=S`LVS~(}n zQP=Df`bhXAUXlqN{FosV2mB)RanmR+A`tvY9&beR0(AeFJt*wW%!q^pX7t;+LiqGUVFb&0Twd)j+cBpnv!xnRA z!yRrpfnmEM6%-FG8nttJ8q?V$O`f>Z^G4bkAnK$txF_=@1Xjb=2d(Pk zM+U2Y&fPk$)Bo}UsIFzpQ0F7%14(l0&KAP8@O?68$*VxYLg|aFwmkAa`-7)7{5#j< z{Cj$cQP?_UU6+qw+Nes*4Ao)gYHO>MOY= ze@DWl@=%3dZ}XyY)qE3Tfj0-=c|PjZlO>AAFY=5hzPD8RJ-N-bWif`Wxl5kQBdrlE zbca{Y;lu1ma>}8QNlfuOgZKx1H4U}mL}BnbwoTShU}sTDls6W)E8d~8tc4aAe>+PO z;p%d7J<~SUizGJNu&&7sOWgg+Icjp*R3}zjD4lg=lx8YiVq#5}@%Hl*<^m^nK4a3( zX7uIenb?sBLI`oGr>n;;{zwTd{neiIpxrGwTakt(@Z8*sch|(jIh1;}I1Kpygwsmz zk)hkOFR?s-nn8C(SKWE#-HC>k&hyuK^15C#E9ol)6pbs(rslYAScX7 zP}<%6gX3#*k9vrSh-P2c4Jz2HY20s5a7FiaaHw_4F6X^ME8~5S?LYEC()$!T3p=0K zWV)=t&HSTWQ@VLLIns&scFz(t&&%U`o@HY=X_$w62cv3QXM|uPe8AcX{=Jr?VjZHO zv~J-tW0Y@lL!U^FaG+_U8Y!vFNrop}{`&2Hd-6KK#O<@?9^V)WV5aufoQ-lVawf?& zWst8r6p?QMI=5jWzYtx)V&RVG*5)~p**be?y~?#KrY72UzfGCW#pHIBU@+3r5tG54 z>l|biO1zEhgJiS8p)0x)w)nCnAvQ{_e}GcsR^HZC8EwMwvZshzq0!5~q=VTrb>0U} zla3n=fff`)QJYa_91+;)0G@<&{T?>-zGy-sQn;+U3>|XajrI~4@E~&1=Z}`b#npx# zp$Rr;_fCyb26$3K&gWD90eXl=4}IGyA07Y{I&0)U@8)lg9bTPP0GG`T5rlm0tj$zI zl$^(@H+%MRdJh?;4GkjiNrEy>oU7bvmRTbcP{*5tay_)ph}YD8#I(q~uAo-iRKEXI zeLBON4;FlB(a#~67sCU*gd~+`2uJrA>2a+qUsoD?J? zc<>W_o5yF@S2*YR^z_;IbtE$4X*}mznEL3w7777@FX3L{>dZfW@;IO!Z`gb2iIU^F zG$*)I35sEfVIYL+lE|rDv9T zAjgH(f}<2(wrOwcn%iRdAomjn4u8gI>*PG(5%j_2=4wM3?@osxNq~YNE(y>bcT4>= z>Qex3=4?+?8ANK0Sh+Pl%`rR-cUkdtGRNiK_dJ-I5_0X$j_ z^wOINd+P7mK3D1RR)hY$Q~E@N)vgb}eG=^`K5hs9P)r%o7MpJPQ@yW>K%Rdli150f zX>c1$tU+zzWfC4eGh`R&`lP%rs-qGS|6EuHZdH}+>mn@;fMK?MK?G$n$GfW1?v#=) zE=;1#u%#Z8sax`#mqn)!Of43tUL9GHd4tES<8?R*W#8SiwPIbF#Mb~lk4SEEx&52q zv#u>9xi`wyrY5Cc|12kOy2Nqe*FkB5kPz;MMx03QjTI zZVW3vzUP+2^_m)hXlvhZ_%;4f;<3sDF8j%(Pi&u?verEe-R{oPopaqQQS7h1PM}xs z`XLf({Z#6U{I-(Xfis32Z7b*hqi<1lDs;s5YFE7Ndb3r^>p`x&9Ez*;O~ARU=Fe7DZpSas4HX1m$Lq|q@} zdsw3H+}*qF1wqjZtemDOLt3p!g@MBgX~WJ8n}eHMleQ#oe|KyA&LGYH)1DG*CKI)R zYZKZ+Z}yBlN>Wh+g5^Nz4PVf8KB!s+t(7fctsWhyK#;?AVYIj8n3u>_WVwBNHK`T= za3qgz4O7NMW}fmdSpENL#wYhFMfPrvm;#(F!zWC8<_Zwud|Y0GpEV-uJx#lD>klE^ zD@GOzr|6ltc2PQfe}X_F`7DG@dn;ae$`-^L%^XV?=D!j>W|xUWt2SvbG=`8g=eSEK z`XVBaCFPZAFa^J(V3KIbcUI79I1yZu9G(Ep*=D@p)BVd`(}5Kv10GS+Q0?DEOkDcx ztr8)L0JLpRu6KFY`HNkq6x1s;@MR;-?lPUsQnFP{NotMh<-1*|3#w-qtF4 zWHbk-+gt0ME#5C(p12RAjOmRm^}FharOfh=kZ+&8JMh+jc^|uRbR6|{8n=JI5<|F` zy^NgEC-3c*em99!ga7Z~V9(5l#NntHKc-ZxJT6&dVtIko8hkXtwMG{YWz>edl*@Ij zch-mgH$!X|e5ahp(HfN|CyN0Xjn2fP+>wy$5B`mAU;mR;{>64CcH@ZG7cKx}Ge9h~eZqJAys=y-@w9@f&E-yF z)XlinHEm6m&tzwxZsJL>UZMK3IT6H3Iydy<)BIJ`r1z`V*cSO{Emx6cjfs-)o74B%`rbW~*+Ph)7u~(EZ^`O;a(!K@z%t1T}F@-oV#F z&FI+QKD8`M(|$%1nJ?f1sat$L#}6!Z^75?3j}|2b+{`U)2HWq?BJ#0d35-62ts&}8 z=5GRcZ}D{Yhl^WEG}lFLo-*02dG8I|%3bw~$YltzpLO8+r+EhJu1r)qlY-9Q!=j?Y@o)0tEv{1@)e@iNC48Mm3Ny1?=y;A zioz5jX{D1*x!n=HXtTbOjqXc4QVk=&!;{7R<}OZuJ&&xcE|0I$tb)rtK-+cAurKYb ze;&U={bKn_ud9C%r}4nx{aEH$-Y)jhEXGQuhut$G>={i-waisv8taqpHkKD2aS{TT zs$2MZz~Pc~2UlZiYfG<~8}B7w-g|jBptNxN9rz$rLwX3*I>CF!XFiIStGJ^vDsq>u zoo$zdo1akD9w)I`8)1$rYd|}uR2YY z{Aa!LlUz`L@<|N?{S_<3)vBtVj7(7aRVK^63F zj6#CQbGOItv|4c84o}ZlO1=fX9}Ze)N5TGwM}uQcwL}w%)wilE`%p`r=@;kjN%BwI zPcKY%#X+74^|@l>67)Oob3{+#0WsqlS~HR%bh`(77vlnZjo!3E?-t+Y4X)0O>ToV? zpldfa{ZYpG7#jq0Oc>P;x%_!hdm;sw^P;OSJExc=9xc6zsYBFYVRiZ-8y>0KGuhmj z+TT1RaVwxHF zMC!f0x`II`c}BEaF-qI~?(M6SfgUGCm`eX-?Z`6t&ktyCJkfr0(M z26-b#*J~{MDQ&)!!QUus@^)>d2H3+bBTt*`Fjx|#KFR3J4=sOlRwQnD3Sa4)=&iA6 zL&_w=X#9-xYG(|!Y)Vjt0S>x%JK)@EykBuj}{szN&P;Dotitfz}*n$n{bT` zloGFjS>mxt{&%<@q#l>%c&n57IxQLKP`9#>^M`>!P^%!MKYY4EHEO(wg{ze)yx_vy zvE6D}p#m=JI4P5%yB$MDt5$pUzT*XEyo~?47su1yNohL2pZxhj@b*Jeu|Z=3v~X{l!G|M|NtmCnNlaMkhCccuuY1`TCxzns@#-=rLiv zGlLnUe;N``<}WPvP{F_cVaMx;<+|iMCg@7kn;9NpM#U*BQPi^yuw58`GFv0>UE!T* zS>PwD5I5vi{r`b7Q2NXqt(bIgIJyi^Y9oik7!Z_4D*hr0=y3IlVAJNmbl4ia*tBsL zdnU=dnlBo(S%q8u8;1tUr2ntTe{*u--q+dWqU+`sg)KuK-E>~(&JL`yRCh&lV79jN z+O{q>0l+sBB<=0&(J$S*nhsAhuk{Zw4_Yl>kXjLrVN|sBrs#P5?!Wd1~uD!tPWg}{xBdJ-ItFocOzv7kn_o=JhPO>nnhLrY{{QMsFo zE7k6bDPpd29O;CO;K=wNK|9;2^#2Ij=MO3#?q30|69K=EV7ICDR{0e=mF;v~;w={{ zypIILIG!1IL|RIiF%)t~t^jU=PpxtVI8stUTP2avym+J5@goh0)*`bVTr;npYC$U? z*HG+~NV2%J^I13H7CNNZ2MfzGa> zO`87+X3Nqa@A^8Rcpr6{N9uWi4PLkIxV-oY1*9(i1V~NP>+{TX+R>Z@?CNWIABFtO!a79VB6vN%p10pyVBaH8zU+IK zA6T}Crs!b(iLY*WkUE{4Yfo)Ym$%WcxqqbFVG-q5QnGN6CI2Ds(JLDKqETwBEXul6 z>wkgWbuoiSuq)@<(BjNW_>OCJMOd|5xei!JLx9KrztODzNFl@VL7pKwh0E;q&bO)6 zaDop$iG@pp-x*QoT7ph{NN4$5fbyCD@OmEiUasGTxN1BFA# zAK&u-C!<&Y-$ThbhwYv2?TOCt2LAN!7%TWU6Mhky9!9Hujo#ZlA09ToALx>YFe{?X zaz6P+>;hX(ii`#ld!Wmrr?2D@BLBq1Wx&dWk(2>f%StAyp)|GK$@v zp<*kiFT{J%Pwa_mi=ER(fQE<`_&ootuzU53JVDaPhQvy-#&=MW^r5v={%j2WRhx?rpI*OUsF=2BSG%0o`vK?zXD9S4YT+o zBd#^7s^cxKqB1LTT3u6f4V1r3Q_9`>izQ#RQz_Hvtz7LMqgdP9v#`2bw7k87<556M z?f#<88`DIPu_ucZDgK-vj>XFIjzp0_C#r-HH%8Opd&SBUe^Km-xhf^D1`{94TQ~52 zxxi5s6ck+U&Y^N86~na@4eYN0LB!4KQv89DN}zRN1nPF{=kX5Qims{~sxL_JQvVYR zPg9k#mg@ZrvUd3~M;PmJi+Ec=%! zl?Oq%kT}6cZ048BEC)9BCS!(+L&_Fh3QEnpSRF_8Qo+#aR)Tp=mrB!Hj zvG>bg+u10std-e}MEJQPlGD-90KR%~u5kIn2w$LiOHTlS|C$wkLDm z%t4wJ7W+2Qpd*XKVyV(6K`&catU<7(h^uve-)S_BcVsoUABWN9E5>ZK*$JoAssrjV zrxZ!gOd-q`zBQ3+v3P-;yvb~?#m-0>mA7^vEGELCu)lM`DfJCE)VP8#SnJg)S59tj za72WY6B~VK8q2>CcUdztTYZNqLIR*CV;|I1A*-M=WD(me=+EPGxrr{ZPz{jhEv87P zS(QF}st*l(TV%u^*g0hrSu&s5Q_{`2~jncI>LtEIK?K>`Kaz;vFeGnqKB2)6_J>_-UPCq~K^7(Rj4cuhN;$-U=}=HpWJbHG80h+ zOi8QmaY_WOev(ZJedLaw`E)1~FFwtxJ_nRe5ai=__V(9OP$m#=6JDm8)G%j$w_DN` zKcP-9%o6SPF&@8RX`m4V$7wNR)FHeZnpXx>rvU}>7}~C4(z%`W8y3?+>BbcN{F#w_ z_esO0rJ)W_uv+m$@q)4w5qptaT{Mro#p5?>fXmo^e$3yKRLSXiS6nVY-wqs290K1 zJcag#8Gtrj3FfXC%N(WEcl)yAWWwnf7$TQiw5HA2E|=^%)aTWOMMQL3EPH!`Gre@3 z5Aq@IJ?Dk0nulhZgh*LGSsUHm;Op5UFDWm0&~E=AUo$;_bvE(2Ze~)h>R_snfm&&A z?wDK0>zeGzK5W5ud3^UvKG*?2BzbBPdfcB}ji|rH=;8(=#1!A1`+B>)Llm#E55dB` zDR^`*!@y2;v;IKMZOzT_RT^GTp5NY38mR~6-pkLwOHg|anOC>B)dypYo!YONcL}_H zHnet`FCOR#j13LNuS6raQ-&y9cb2dl;VHu#XornioKnMQO1wV+OAY81^jHR|u?f^- zDMA$-sHzEeLZNq-Q_McL5d*37LN?;-qLea(9ay+JAEAxFb7xqRsKiQS}RHMhAueM*DrXaSI;io`yY!dpNwarD_L=Ft$470Za({n+kMna5wKDc+&z=no4z4a* zD>iKx;2&RJR=A0{={$SpD*;>hm=?5U8es(*Yuo33y|oygfPlpr^4a-H_JUBnu%oo^ zH?c&jADZ9I7Pahb9i`5chOsmH)KCiUNAFG*c8^Gn%1PBfCL^q})uxirT#-=?hG zu3qz@-U?Lt!B3*#=hO}e(z)j?O1sSZAg1zcJ-X|SRO`Vp2pKzj0DU^fH9K4Uj~~z4 z?k+S%!*F~ub^O~4iebeUA6qWkT(M038CSZV-91|iLQvA&UIaOSzw z&^q9k=$-gh&sqlPk3tGxc(DO7WvrkZF2uFCP2(U`RLjeV0<+o0wHo_rJSM7IP7CaC%3L%;)65DGPDm%7HQ<5{3?} zz@A!a;i;~!v9+I4jLIA;4m$02hZp&UM>%j1!lu`-VfXthiP!7r->?rNkdF2ZKYHFh zm05HAkOkuq-EG=|+$31#>hGCr&{w(^)@*>>NrtKxEm4_^!%Ua`Y zZshrstM;ZoDb~zes?jF6RrLS1`oKkv zr&fkkz+MA2t+Nd$Dr{~J~z|zgtT2Eoh zrbtpryrpxH-k95zAyp!GcWH=gGuv*t84zSNqC}l`+*#cZm&g?ff1a8jr2;Dd+^$_F z)4#P_Ug&ruj6%0KaWh>-U9aA8!NLE#(Jlfz_L<9Z&Ly+j)fDns%P6r(zJM=b=!~tr z>bJqM$%D>?xS~sK?!blyYydx{mYsb+l$!%eoD|BW!&2ffxt#WbfCBzyDzW25isv*_ zZol{8?t`BVnvs-%erk@~N;)LI*IEfDwsnj9F7B@A?+8%7Yafb2%Y!%J3uWd|t~Uv~ z97c+H-%}%>hUa8uk!N`_Gx4Q_4t+y$Q^M3~u?b%frH=Frhp<_XlwFDhnXwN0GQ11m zAIRXp?@)>AoXzwm|4=(~eTky&HHXC(vK&Hn_eyMXk{T39>W*RU;Tkd5&u6k6aBe}F zdf$-d-LrPOoKt5whjrFR)U#bP9|aElaSBOXUx&~n_Oo$wH(S}(ZN%0e;uu>pMhjT|T=uY0 z{Y*KmI_~ZUlee;)ifc~-8@eiouhT?&jzHL8fY0#AOp6NL`Ch*W%tZ^+y-uWg9UjzY z)u3bg8E9_%jI-JuaXWdQfVZ(B#**65$|Y9WmC*IR{NBM5biXnj0-bXjcK2dh$pl9? zhutOLt8tene-4qq*mTj=MbUoQZj+U@bbkfa+8E+0ozBp%=(eh{J=>B8>UZsOSad+4 ziB45je)!=@QX*>`8~V)2obK%Djg5`Ps>UOv6q4@80@Axa4YD7~a(U;S);R7zAsBo| z)DWXD*vTj^V*kBaM81C}FzG>htQ1lO4jk`laINhag1OyZ+1@^1 zb!jonWPIv}38?A2|5#S~`KrLN(Pu?wPZ!(r74q2^OBTIqw~5KEK$)^`5Msixq9K;c z+cjmy>tcPKZo83H-=Y8@)q*+B%}H_5g57HoOvn-WM59M1(mgc71yQ8Z{>F)C*>SFB z%H|UJ1M8Q-PL>4zdOC{D4(*8jo9E_Ec$RM3I@KThalO=9-YfQF9P_Qc#NfFZMrzEq8xaVBB#!V{{D$+6?Q3FMoEcdCSUMvhGQ1kEI?Zk zl@c-@9)i>nQ9V5pxAY8|bgtEngNPhXxsn+d7Z+Xj)WPAQ9{nmg3;MoA$W6`=?bAB=B z{f=z*x8r@0x)eNqIrLTZ#L&u0Mh7lJI?ehXLuS1?4W?AOM%<-wGgcgw06bW+pyjxb zsJa&07B9~+ij`R67Nf`V^k#EJs{wdQy*;!0Ti~2~SBOwqKMiL>7NbrrHOCKwkArje zF}@Uf4{s^8g#zq>1#TH0k0{(NqZYrO!D^osx;U!FhtLWt!vV%*Q4M<(); ze0srR&np_|#JsT)Si3;CbIepvF)`P6(lGO@w$1o$8Dz}PTEM~%S%0?* zXp`xo<#T#z)ZE-`z?=+>^oj99R)XyeM$C9%)PjXtem?`XPq}=2TQJ{;1o~EebM>~A zIcTMp{Ui4m_NRW=05E9xM%~J%Q}b%&uFW zTMy5QMtiw%@uE%a%xWv|z-|FsTP7WkV=|!t6!JC@HxCaFB{lW4$Bs8DB~==S}6)PKf! zbuZbX)Ia&EiLmQ;fmk8O+XSAts2%|VE(Zbw2NRF=FDm9}&Awq_D8K?S8OtEcR(!U) zx{8UNN<~YVHK!%zE0B)Jzzdn^&TfuVB!i zPFAkU2pAp5>CAC|_cyD&e`i zhZN#?==HqV^Fg9$)5u<-)I7vI*_e2R#_w^n@3<2w0%@iqK>8PB+b$t8xOyOwFQX2B*Tj@|e-5+3*tf zOaa9h(nQk>2Rtm2`wRlvv3zN@?=>Y;7KE~6WOFMRt@S(o8h{tT!_!JhIndwV-|*Ue zQv(U<(~dMS13Gq|{}MqBQZBFA!Z~rn9m7-ambz92`v(lU2 z|K&?*Re9{y?RAmBh}V9#rolx6N=Bc99pOd$CgX8HBCfG)naTvYaAbu$vIfFS{VHy` zqP(fXddyxQ?Go~FNuj93f`#noK>4z)w>X%BnR2Am@x`OvhoBLHh!{P_G8OZ1@h|@n z@-gG-r_$TKT=F@w!@XiHELvlh_cinLGmX?=ODoV$*d+f&jQ*Rc!g%X^@XHnT1)LJB zM>bW#mjb@Z5pJ=ij09v7(@TSk{_Ff=WZS`EE zc8+f?#yuu8)Aw09+nlVuuD4#1dGPTKim>vRDYSR0OF<3o9bWAYy#98_r9@e4h2bl@ z*to6m*YG&0BSQzv&A5!ZPnawX9yu1V3g=uB>Ko}em z`GJu^l450i6V-h6&%>uMzuLWb1EbTi7wu@dB+G~8X&^H@2UEmWo1=~`U0TPh_s?Qx zXF26p6W4RV#AQIdq67Q(UakVzEnTUO0xIsK2rCpQA zX3aO&ZD74V%T2*#IcP#lH1n=bP#o%Ty>5YP;c<=z7Q4xr`7>GEzv6ngX+Jkw(eRx= zQRa8bSB6>*I*mj2FppivgzC$YZ?~Lqm3Q4d<7RiJjw3G;4hHD95v=oyihz8NR{-&~ zW(k|g4?M;>CL24us4yxS?Kxz)D13liFR^-(C~{NX-jCKuZF5I;t<)b`{CEoa(kcH;)UOfHjG*vaA**%%s){>_;H%ANC**oV3wFXh!eIPRVj;T06@XK-xoF19Sf z9?AMH5rEa*3qR^W+AUg{S9~%7t?%tN?$r23LWA}aGZ3|8<_FiVdq!$=q>5tw(Lvk` zl#VFAsx>lgNU6yK#E+r8e}4&``8XfiL2@R3A|j%&T}(@Wo+XeL3%MKna?jujNxH<7W z)o~lxQJQ8WVXc~+dUm>7tie=wA+GMGh;A#V%$ZhW9SRz=4*E2Rv`*~&bMLL+$O2~R zc>j#neGooy>|qgJm5C-63nVB$uBXHq&Q0DrAKO|xUun(zj}M)cx752NeC^AVTycgQ zNRHsfFn!bho{CGxtH8@-erI~PTl-Ls_kBl$A~>r`y$aqL#nA>|{}gG5uK+~)z85F2 z@cq4@<-?txCR)ECy47TK)sa~rSvj>;(m<2*(YOCChk4d#2s@jdR>s8&whklxdYjnaVg|i+* zJG>Jp*3itN*u_crgZ-u5dmd*erK?ll?P2cOh(i9o(9CY1>p6~=yIjHM2vMF9G4*C{ z>|4QOd2YFvXt2ynF=o?=mB#c!TqpzHWmhc0u+>;P91LF>PEGiG=}<|KqS?K5AVhAk z$Qld7RQwIAvksn#O{(*bsxJ<=wIi79yJ46Mc4A}Lh zG2?2ug#{6b1J3*xo)#J9DCDpStC=GzOf;Y!q4FI`};uZYqsRl$Nr*! zYs`2F|Aqz*lhHJiVN;8v^GsfQa38bubw^mA9s3=M*ZuuZrEqV@q`#iXWEP%sb#-xD z?TEarsPGC6NuXqgvsq&#V8oaLuEo`Eb?xux_u|aTD!fhlF*diVU#meFEiX^mLCozG zl^P2NA{g9W_g6IAL~task9+gy~pM5rcr>+uM;x68`TqFaOCVJ&ybDAD8)$w^o}W zhJ59A%_-Ue#ue16E0*eurQn^8I|mNhkZ8qYRmRIWb;xs3{+JLG`SydW7SbeT}|&GJP65%{btad~CIr20KUv(&+J#-WyFl{IBI2_zvg9q2(?ykYz-QDfr_VK*;$9?P8 z{q;>v?U|mc?&+TCUTgQ-J4{JI5(SYE5efZ7O^u4Wdg7Dx49EVKO zS;L4$N=h2Y4dM9q3sMBS5#%o}D?2quA2(=1uKgM?G9g%AIxmh6yA{|5S?A^ncd0$i ze3XQlGOHEeMiIhMA`~p~UDiV%rlzJ2&!y9IcplMn+{=O*WGFvN<-~x^8K5sN>dPyl ztt-=~#lkQ?nsuNoH-k#*sEfqANR3b^q@}ug1Vt_WW^7+uy8P1b z-L*J~jm4j@*aIIVR6osthlu$QeC@2h6(%7WHkfW+xk7!qgv(0%(F${Nk0mqdnSWF; z-nqv9TvJ-?+>+K-Ec`;vw-|FmU?L8HID>Q788QYR79m-LK*iZLsEAsfCaXHzGQW+=Blb!(kl+*18^AF9ny z=_sTpS*=i-wSqlQv{8HkP=O&KtoEyac6!D&FWp9XGzJ$oY=Dg^Y(X~pEp$U81BOUH zj-e<&>!MX>QEkJt2qAMSQhPL>kq;1vT|j$Dp<3&baP*0nuSF4~OZisBGaMBj`)spr zf#{CIUPJSG0+!S@HM|%a}v5@zQMKTwAVcaz3|3%Ds9DYb^z8Z1S-kYqpFQo zmELaRD66-{EF*V#hR%&~+@BQo`}3W&Kf9Sd+gssS;<=olictb&i_I49SB9MZSeYVN z+XHmUYWIsxF2*tYCo;Mtf2$1dK=P z;Av%*y*0>>jQ%gXk%K zx<502(gnrm0Og%4Q^!srV&r@0LobbwY#bGdS9!C8@b}ux&o{J~CiB&a;J$abEGA;x&dp@rA07{bn zj7JZV9uv+HU0M1|{?eyOlC#KGI^nq9w>Ct25>gHmWHWa1sV@+DYi#q>@H`E2wsDz1 z1mC*PKh+M&iRjQf&TLD$yHPVIn@kI@`p)W*KLg?e(Um<#ms{n zKnFsnrd_uMn2<3Q4i_7-z++`3h%u-2J-^oN@y}upd(N%oidx=m_=z|hp)Q4t6qPyW z4Z@XGw-Y1~Mt0P@yRaJwHa3_GbT%IBx9Y`%6n|?=x`qaQb{wdFsIP)nV(?nHD{ zHmjL)mC=4}cw}8RqSVv101LhgMOnG0;S0?U$Kh}`m75{zmi&;wmzZ0+cF&iNau1~6 z^FU+WzP@o|6c2GRfq!?UhObu?31CsPpDzg%OO0kSJ=(|`V(2iIjl$5(3_HS;AVHza z;6yJi49@lX42w+GHzV3x{dsWH;kV-^l&x1?G7J|HPLQ7-I1!8`Xt#l=ze3XU&!S_c z(Lk;@6`uXT7LN@cXp5xT@mulQ7k${pEbl`2H$PK2Eu~yRO;Kolsn2$X!H+>1w%;4e z;6LUC*Wb9VS;%gqqa~9yXP-8pZ4kj{xio*7x%GJCysL3XZTR^+*9P;1n*j}E-Mgik zU*>c7+mBsKy9 zqq{c0^&F!bswMHn%3&s!&sV3`%@*9A!>hw3i z=rI8hSfR3KOTN*u55TF^T>#aGUjN{t@(8Spz%as=C}20jfWM)01&El|BQ;LR8E47i z>cs^%RKot93g@@fwb?kOzin!1wK`2uTO4Az0TNM_+@FDnIAcR56v!#%B+E(48t}&- zd#T>A-9x|kaV9j}k!ZMO|8>6@%PXp9qyMh<)`IoCc_rX%PZs=7hb7OS+*e8Q>l{w= z;Mcj@e?iM*ooW4ojs5LyLq8-*xjAQD-=4hOI)>}TC4R>x{M%mW$Stc$VzGiU>c$-| zvDAK9=2MA_s}h%})3Wi15wBaMbZSndskC_752$L+G;$-|Qg= zXz!2SFRr#h{k1UwZ*Xqh3nEG3;(yk=T4iOzzpT35sb|zTkXW>cclC6KZ7)QnaGb$) zu_Sj6;?sH@4H0mp3PpNn%WzYMjwHqWH)61_EKhNtZVA0=?fT<0nyqu3(-U%LI`-jr zHFf(|oVvWU>SKGq-!A98ZD5;#r{uG}Fy@R!m9rQ3{CYkcvyd;Dtt)M$d@2JO{kvt~ z?DlV79MhIa){;5$!b`WL=;y@Cjj3{N2It=@8}sByzU^0er`J45mc?UL86HG1BjUSj zAR0mAe&Xb=_@}St10iRBr^O<+reUFqO{*jkOZ^({T_EUbA?*EfRBdM7;q_iS?w5^f2^V7mr0Kk2)T$p;BvlyidL@YCtV5ljKwGE=eIXpFU=H=PX z#~(J-PG_mw?v-$5DpW5+{Qid+k?vHlI@M!7(Ks0rC@xNMLiwO7d+XU8nYsyxTw7$Y zet531Z%S?3Shea{kEc2^M}44QI4a@KX4vu)D}4@_v}+L<^VaWmSUCygib^}Vn$yhJ z_qv=5$u23$c788lJp{;~iBBz9J?unD8Xn$#D$|d2e|F3qoy(DcP%3}Y zb8Bmz^7~2|-8Qy#nn4N*W=-hGVQNU^V$@WW%Fg%&pMh@LLue#%Kqnd{Pf6O9I1!%V zj%gjGNO?{Ahv&(1htx=&x>KVV{}UrsAOSgJ#)?_8{mjZ^(Nus=`HqXM8vlInH;JVC zftI}tl(Okt@m&^*Ae_@QWO(zP4Ru!w$(`<;>H`*+=t5cak z!a(h>jDNT@`zp&t=hS+7dp(m@^v_6zD5W`?TLSK#i>1-I(g|${!TjTqo<{)8ezdbZH_Y6#u6Wbjt0&%d2Wd8&QGaU^!|FqP z0W18xti{pwWv6Yzm@l)~tEqlUSiT{MA@RSg?v*)M;{WBW&+s*RJ~BMsQ4vGo16Z4j ztD-gyu=1*l_R5~D(N@0ajHWJyByin15jIxlPi+dLB4i+w;;4y(RMjVsPVQ9aYwTai zqnl3pQ=u*8dBtFXc#YQtnZ}6Q3R~SSv#rgYFzTB3;B1Sc!E8(O8dy@C;(B)pxF3^s zHiDCMoXdf~PM^ngy_j@`eZ2NL1wM9K&CSh{O}8}&l4y~P-oHr936b_=?n%F;a7Tye z>&u#(7fpN+$r`AM;ThfR1}v|iOoh;QCKh))$oIW=Pq)GAlw)&IowagD(57Fdb zV8(Mk$d%QK^?v4M*S*!1~Fx$X*sdyw**aJDvg4_c-7M+=!}u z(ccQ4H(=?%NymWe>;KyJdJ7$n%oQwuA{risMPb2KGXM%AV$m85Pj=lY{Dn=}E3Mc7 zOvH|rq-bZs)XMCApHEaOm&OkWsMh|35MBku;n#gbpA((5EpN0IVPYW95>ts{P3Pam zBYm=ASQ>;44*66*%RU?oI$j4_yRvET0ImOH!3@dYdjH|JVj|DBRA5 z=>L2&Vsi>sn!5kUd#(4Uz!lbGPTAw*$eov@T@Mt5hOBV-U*F8G=6c`kG6mwU7_NQ- z$b|hO*=AxdlseA!h-IYXXe759gq+G6r1_IL?Vv05*C}%NH-o7nqV-)mNnmV60ONZz zStAMu8)TJT+nY(ActO_6$+@mBWybYZj^#5x%WS(wD?{2?codH)gEO)MRd@VM#qFeJ zg!bF<1agxFupJZbdV!Up+1Uz(Ak0tFqb4;s`!LEGCRv@B6cEZ$Wwd7#tcXx(IYNpW z5|~?hxw%$fM7ao+*xZ+ZC1ZYyp84WIA5!8h*(+u_vLPPth8##J`*7#mGw4L}%A7f* z%Px3G(&=#0d52{~zqcpv)eIJcdM#8meRRTUr2p|-(AxD%G-PQ1d;dC4>V|TMk3iprnw4+QG1Xm@xOQ4&att)SL^kY2n8Luii?f^~|6N1+ih)Ks&rXu6_1e#sqFA6qz8_@CD|ehyiC4VtYUfgP^IiDKHf*d$BQ zoECI(tL!27R&hZ}-+2vQ^+pftSd3wueMQtQ2z0#{`%cn0wpGitsMy7=G;6Dlv6=We zqt}i2N+M(zFK=<*YI|iYbE8EQQQWbd`JH1n2OO*1nhZ3G&HJjTjc(>^WF7((>DR~u*gdmwjPi(@8H-NExhW?m4nL8LDaJ5 zJVqS)Py@JQuk#?YhrmLk%q(Tt7$-nFgjy&pE-}l|svEc;6PW`}Ajm6IQCATm#T~_* zZMY_gV~YHf`TM9;+0bDa53?se=$MxEQmr@#hGWqh|5!i z=OV=$$qSu6om^j6T;Fpl*<}gG7phL576QsO*vd4Z8cv06;JxBMmP&Iwad7dCEqJWs z)Dm^~`S6J|yU7wE?@xNK+pJmwCSexH>9>q`b41sl4xx&Z$#yl#&ySCN37RYRU!X8+ zx+6I$;|VS@=fto440!eS zgyx%nn?U-Z%C<1XB(+$NmbC`3^w2!sgk11=ppmXp21Ked_vwx9#|4Q0gbp3bM>eNi zEUET&kiZvDn~2P?Nh8b_eI24~tn$|ZuXS^1$M6FGEavlw>>cl%7?oK3^%9+w&2FY2 zniwigoVGl>P-o}mIZ-lKpd}+f4_5j!v*m>rgslth(d{*VyyKZb(cB%JPG`1pxx@vSHP1>-zqjgo)+&ktuEpw$w& z;Eh`EF-R$6S#8ekD@R+lhVmv*3e>*|4BCv`Q9^!9Vfn{yJtLr2wH9leT_nh ze&v8Q7kJ27P8{6@Mt-KKxOnT}HK^>tMmPkKzO_}xfAYs5CY6|W3M+k-D*SCO10Ny< zpw(|>&+Me*)4G0bh+|j7ePjyZb9l6-QPk9_3$y);ibBsT z!hsMiE?wA=>ycIyvK&B<4RD051kOF<@Hdh_Gh92V`pug@Um8FJg#MEGzpVZMe2zol zyIcbX>$x|VIv3%)>g{K|fo1$g2zn;!yCDcY5NpOwu!ls^ZVRXK>LhH#Q5zjLN7hLn zy+4|KE3K35xm#ZCkr@Bn_`(s7m4!DoREmhzOM=~FiV*R*H6l}Qz5R$$0wPPzH7y}# zf+#xP8jokt6wkZ!go$NADP;A@$I}HV(X!Y0=JB|C1b>A)GjtFeF4LZ}(z;aSbKNv^ zlZ_VP4_ur4k{Jzs^uT!O!p}Lg&xrcoTO#ytf>~)o^xrI8m;{yc-UnZ0-v?;PI>+LZ zC92=De74C-W!q`z=y0sxEh*gyxN9I8VAq`^2C3Dyz%*NJ>B%yFt(F(@^VHqV-WBG( zobtOCHmgUADYQ5t0&f zxg1sK*zdf+<~>O?ie@ViBRA-4kHV3=nL=&W@Rm;ZN*d1t1t= zOT!Brj;f}Nb~vD71^6oCc6j@68B~n*aq^IeF6o>bIQ)){*f?0{tv>Y4v6p;s+Wpa1 zb0(xf#2!Q~Omf&ZhYP!vKhsR<{udbh=0yPZ5sd9Ls7{C-dFDv%7C-+PQ+=6LS?l6K z%K2nCipr9-q@4D3Qc5k0t_n}ZdI2c)NtMF_TGh z8L97R46Z9G*U}d@4!RZ^yD=P2DxByul4|CYuSWpjZn*Bsygucat z-MTN2;FEI4WcH4PS70Z(FX46LDSjEPMH3w1xAHL@Nh&va@0Yz9YWTv~MiE9iF=ljr z#(cegQ2KbgB{($!fJ_uq2e%N-@4UXv0x_YR3JPU4avSR-z`*45LEtT9c4ioHnoLJYhtUj^`XaxPBb23E{K zZ+8IvgTok}mS}nY{m?1os^P!3XO1?XqtbXBmz^Xs`C3{_DFK2C4l;;bX;F$oPrtpj zVfX|Aecf?3*(LNrL7)Hi_kqFc9|1TS#S2jo$UFIz5*xILVxlcE!%@x42>3clglwKV zPkpcz0mO#wzPKF)s)cL6zX%Fko`du{_U#WY*UOU~ZfmSJZt9fYxMj~b*TJZDKH4C3 zZ?L-=x;vuQ>uIN(m+F`B2{)NV$P{A7V?8cT*Bkr2ywpz!iLla4@O7u&6Qiw{!G5df z2hK};V7tyBd@^JJ*MgGbKlr7vfT6t%(M_)I$i}MVC`F>E2E(;um2WFG0Rd;zS1CDe zbi#VRsc(4t-vv_86{+1;G;6J|#?sp@(Jp+hpniz*=TKUn_L(w!j+&Af)BpjUjv0*> z#Oqngd6KMVFGqTIV-)M2x5hoFZQV%1bKh$laTc5wbgkE^LkDsk_|C5;is#^tP&Uxy&C!uhWb$FISgKD&13U9GU zJLYqP3D>_I8hYB7JyU7AG@(x1Zji)~RY}?!S?#qG7Aj}7Nx*$Q+|Y6___?gj0~Jd_ znwIImaodjTW=6C^kSd6h`u_wG6(3LbW5edKJ1=SEuVY3c;MLzXTqLSm!Vo+!_*~r| z>NK>yp~sA;_<8Md3$Soh&6$4p$lQzZ@k*{DBHhVgkN+Kxsx-xqDH`A==f%9cPBegi zG`Qc}2d>$q5cKkP^=Aduztox29DGGNC~o({aM${!TSxweut0jNWV}q;ycB zCB;XWE8GtJSw#ce-6iLL=%pncm@dc13{b~Y@c618jTmihFopzXq}&c~2K1UX4 zIWxI!Z;h-g@{7|lQ>Tmi)y`cYC0^%5yQA?GwCGOs<VJ zIf%sN(+9lg3>>!sM_=G=h4`S;IEi)DkXbQsqcbJRk64bo)%WrR@2fNg5C`F$e(~i8tfbmkR1$vQM_C&*R`@^fr3J<_%9cL!S$jN#=@pohYi-SD?oSdn|+?4 z(Xc9+-NkQTIL9F^W6IxOY$VG+gAR}QE)1om_(Ua|p@ISKL89Hvohobn zYZf}U%${vIaI*V`#!>4FR0tg6w_dTNyrJu=mD>hnw!7`JB8xAlNH2OTPd^EEf+uwi zM*br$Hnu??zQ6J2I023y#8u$oJ=bqC-qM7ICg94xAgD6*vc)JyN$T z_oq}}jmkr;e^sqQJH16KP0zv+O~*@Y0!ef=W~;rUj~xN%ZFt{t@U(FP<7FK^R*)AA z91~B53X_#|DDHxsgG+{GGTpE3ZJt)f{?Sr7ft^2Qh>qP1ionZ+WN}%M`F+j*X{Bz_?^L*pygYuA=g|?>G1R0|DQqU~_-~@5#)fRD}gD|GigoxfP5yHO2bf z;ZoU}5De4a-4z;}r&a6z5jTGKAJ{oMr$-Qp*}8IFtbWB?_dY?PQOxjfMQTX@h-BIr za-|Wl*r9jN1BD(RM3dT^)R3Do0{P;oFmOo5mJUX#YHfv2>+clawFue{65*|@rlk%q{&*VsT(EoAdBwQ&fH_BO$`YQo zKgvcqEf-T}_U68AzmndWk)#WgV*yHmfsQBM0%Z3m8zI3eH-YrD*3}tPE+u7^c2vew z%C=!x)+9$%__afv>P$;3J#BqLf*SoWgA&dL-mo15VUQ^&L?QgBC-wEsq@Z6#OD8~< z7lFB#8X|Xlz(#}&XYUuX(Pao(XP5kygF-DW0TT(=Zho@SWx|oW^=o3B#y!yA?voC` zC1bkY$3C^w;5?wsYv)n#`qV~m?K@tMBvx9#cYmb~_c4>nYwN|$Twi03IpO#AdGEP- zTHYy2Y;XRbs9C}sF$gf2)yKDo@>>wn8~F3L2bS&Sl??g6+XHybHV$wNP=fC5pLHv9 z(!EX)uM^KJR)$0&fS?Vr(&c{{SPDBiWMGh9y``KJ4NDT zj(rKjH#WPEtB)7Y1m^XQuJ`xWu@r!5XYiQx+-uT^qj1*iZ#+VJxAsSmgp1`dXIbxxRE}YX$N>X#M4e=ZPlp z$JEKxN$-*Kv8llQk07w4#>}JuwdegmPlnxdTt-hJ+BG3Kg^_UzTNh?kS8S- zNrUd`ueT%HYsBY+&Nc%DHX#l5F+&{(KjzhS9(!+??FRPnSZ@3u^=dDrlh(QXzsZYQ zRlkmCyV=t{tv6o9=XJ=T!6zY0k_kk_$joXiH{KLhQ1~nH*e9O2IURX3{$$>7s5TOM z`vVb+X%F}5cq6b{s4zUjnJR02M_X;G`A4K8!@HtUd0@By>Fwr5T zLjht}cS8sb>z%Dt*q`=4U=7cnlZXm4_i%zD(;Gomo|`QJ8lg*4D`A5k>t0`Wr$o@wYk^l^ zL3Nfg_UFGr-Cbu}Lf2UQCFG`Ze7G@42KR(WqkQp>HEk1;$l-PZYzjT_as55j+iq%A0^hhIu4((l#YFcxfhERt;@57j6?4u7{Jmp8 zwWh-@=S|8q|KXvJT*rzJz)#eSeV!wRTjSu`C%KhU~^OQp3TFFZ)*PAryqsayU;~n%e(VRiY(Wr^v)L9 zf}249l>2iq@$N)Vmd*h`M`zU{qlOy}tW9EMw^~c55gK5Pt6?$O?8y0xcNav}UDfKP zmq=KhWp$s^BlE|+qA$?idw#}@QMmScjS?<~SfJTt%UQI))=w&rlKkBnSm?;_%2RoJ zb?C51F&h5^NdINNF|OZPLE#?gUAS}Cen`nC#o7IY;!)f}pE79{9ocmEl7_^rALzB7 z*Y>g~l`F{a_BPG%@Eh*gpKw+dhAM!7l2nfrM_yS8TH8{`c5FwYyXQz&> zQ_om1pE7f0x6q3b%_3FZ%lvX9|8kvUC=kL<(t^cjLZ$iLe5ZEde7CtXa`&PTmXlXT zul8Qn#Q`y9{Z6ug=CBJ(tdr%TDurbG*2ozGgeUBO$brlY_i;1SR>xR2Ss({DeU#tR z&V(7LM#q3vS1rrX2plot$J{%BfFofqV&#bB8`X+;Cod0>hrVz7B7ft?_bWL2f{XO`{t*Sa8t0zN~n*C_%<{{t! zmx&-Fu=yCkNpRrs=KE#U-V{?cv-x*KbE2?<6nQpH@@b9t=<^Ps$0;X2us3$j_UbVj zdwdxAXxa-zvNAtby7Yp+An^0&Wf7x$UkF9w>E;e?va&gGFT@FJzeHo13}}MApl|+T z`1Rd)u-TK13t0{4OK#%bE6JG_7U=LNNBJHST%GPNfk3+v$qs2-%z?0*f2Yv*aCoeS z$XL0~<)Cyo!FRV8fR8o==;OWy?aRxUf^nolCC@*vTIx|TKZnuQE}~w`@=!7H$a77$ z`Zz79cPB=zrIPY^C^mkS)ivp%ab-XIb@lc-K(9Lge`JW-^PP0rV65DjgO_KU&DT-` zldWlOIUNDwh?u!UWRmrH`J$#>^PUKU&6FTTWkYy5BM6~TviN&TgfP|Nq(yn1FcdU$ z(~HWqzE+^edLlByv=XOpSJKKom_w?rS)EnSXH30bvZM-5Wt3!SBhp6AaSv zF{7iKiJMvWiA=ObzvY(Vf^J9tP4xekd~rr+GmUFlgOJ;Qb5;kBbO-{@EmtI^0K5i% z_$zT@&Zg8)s4bddU+G)s+`Pt=s54+d{Ly(jxE&{O}!BsNuMnVO-eE`kb*@o(8MKztMdP8r^gV06$S*vY+p z;`s`ZL^7_+Eb&96X%iVhf0sx2zn0Sfw*dbktM_cJrdO1Nd}K>EUJ(Rx>v=e9&WnC% z$+b<;ifj2$mTUQQ@?-1cs%U?p*wH69tKXWN&tIdPuYx{m9N5DsbSZN$ozO@INETL- z<^*%I;%c)d9dfg9B>asq5ZFaa#kG09An&BMl|(T${*t{oYC=k@u9B+#R}(6wSJ_! OLrIG(h*gLf`u`tbXK|$f literal 0 HcmV?d00001 diff --git a/documentation/manual/source/pics/song_edit_theme_copyright.png b/documentation/manual/source/pics/song_edit_theme_copyright.png new file mode 100644 index 0000000000000000000000000000000000000000..5234ccc1389595480af4e01362ff6ab5fae41ecd GIT binary patch literal 29992 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 literal 0 HcmV?d00001 diff --git a/documentation/manual/source/pics/song_edit_topic_maintenance.png b/documentation/manual/source/pics/song_edit_topic_maintenance.png new file mode 100644 index 0000000000000000000000000000000000000000..70446b81921adad28a71a053ff2e3d351b894c84 GIT binary patch literal 9956 zcmbulWl$Vn@Ggu?kl?OCL(nC-6WoJ@z~U~8ySw`W!5tQd009el^m>&}OBrhDd0&2;y4Kj*2AP*IY`_(1Xj1_lO0Rz^Y<1_oCA{oES`>3t+CYr1)# z5S+wi)luFLZxoa8cbV8(@~5+!otd+np`$5`xviazDT|Y_qp7K_lZBo08GMH@3=9>F ztb~}ld*(@&n>U`zo{k{Y**nk-E)0t!`|EZYYrch}EziFHRW+vAa$k%%9K1m@I~ zYgS4ZBoVQbA>ndi{z<{tdfY&>-MayLEbvOOD2~kSlW*HDS4P@{@YQHy)`ajH;0iH7 zlnM(40q*~s)+c0GKz5ca@5*9+ZF%dq6!E{aalQps=}7635KD`6sqtINrCGK21-##1 zul6wpYonP*WWd49Bf()|$Q#%~7%HTdTrhUx;blxNa3$alJ2W#OKhMhLJZ3ZAf2)M6 zympbT(A+K$eVpP=i4~_|M%{yz5tF2>@%4%G%B(EX#k*cBbwuv0U>xPG_&50x;JQ95 zICx;#N(xogdS)p|$cVNqW;u<^7|?36x+iNAjEWae!~Q%+$!Y1*E(2QoZ*$SieC0uW zYIJy6E+6__Cd|5r04Fw|4{Z$vM_M(!{Mm#K-%$XtHD=Sp4S|a+jCJtrj@^7ZK5MFa z?QZn$0CApNcpb8XEnXen+iYwmCNp63o{XY^Rk39Cr-yx}p^3+|@L=J6MS>iqdFZxr zn{a@reWZ%2VR1=CBsr-jz~RuNkRiCf?0Gz>sN#MT9)P3>L$z#Wso4VaZVTH+QbFRp zD9ERhxt9|mn$fkk0QqWYEIeYe;w|58r8t9^X19G?V0sHh%EuygE|sl*@}3=3gg`aa zu#vIYm@mYf9!S_f&?I;2E14(_>*F~r-~_mTj@)ZR~A&9dI@K&POd znNmk^aW5Oz6OhL&|5;!%=@fX*-XBLCG9!9StN;0vw0Y9n8#ETg#*H`-x?5#%x2sF$ zj4)MTrwoQuwsrMseYJ>8BxynWhZ8P2Kd$s)G58TENH2&YDb$|9%Osde?$U5*n%8#B z-90+>sl?tHn0FWbJG+0@2u4e|CSxLFOetoU_N-A6RBExCntK{eVbJ3YSHQ;QhS<_b z$mu$#m5Hy~{dbxWpy!=3k^SsjAyt?{`Je?2$iD%S{6YKe>-r z5e}&hJQYtz{Mgc6JRV_xT5(Q4C8BGNE2&`>a6T%x#WtZ7chHPed^XHN7VON624W?> z4rR;8!WolYtzHUmJvI`Sv)YBilR`J^;XHHviOOQ-GQF-b7K!wPy!=1)f4N|(t>5EHY(ap7GBQ||3ffykLb_HSgFF-eB z=}_|gXNZbb;a^=@M)+DD%QNv ztB;OM$1~09Urj~>{=4$&^WW%IJV|AF0_9c)4gfSd`CrYo0;hkOik5wRMW!l~l@4Pq ztTpK4V=)5HeX^Rv3}Z0;{2P0y{b>?P`+XsvbdLQ@s}J-E-CVoG+|D8iu`H9ZEbX#Q zU_nnM<{K=n5P>zq=hBsMfY$}XY+u(&3!l1S@my){Cqs5*?BrC1va!Gl%M!3NttvRN zt>bxg)n6j?V|dpm*z~B{-#(5VP*`s5Px`|@%#*}uKfw?k^F}%oFgT=Wri=!5#^#@;) zVD2U-q#rKX(xAH|sKo6_3CSUJ4fr4S#MV1Vm2er?IT>~SN)vlsI^!%5M^v21Eg#=n zMJIN-yBqaBz;Z=JQOIp+$1(?roITp|cSAsM-7szDhj zN8&dG1sKUPB$3Qnknc{mR+L@qCd>++8U2L!#Ktj# zPR^vxQbXUK49r$tsX1XCc{uKN1i_D?D$PP@K4v1j`gqEosS1*Y)a5^(hoAg!g9sR z+}}fP@d?z74|zOd*FV}v>ap_~n4GY_LqGp(*eMZGwfHD?iwWVkCcUM`^>7BAZ}{X* zO)0dTqkH<^^4*+{XT^l3@~=4(yv^I%XB7D>j}{2Nxd;Z zrBY!LbC}(%MKI)KR9A1RK}eI`PwQ$O!L#+HCzTZNOjWmu3Ghv8pqbA-K&_YLIN5ZN zk^gmNXo{{K6j@iks1!n)S!8PxBr%(DYo3t`ToJ8c=#}<+mlDd+Ui15SHK)i zM$~&$Zk15VrZ(i4!o254hx3^0?n!59auT(3>d+<1XD9T)bw=?woSZM)+*|@+=8gXL z>V`kO5tiqjX!d^3ITs!5KJNH6q22sEAuX+Uc33N7QY!lA{v0DBd_Gh6B zCKoZO@!Phf)#{e{Xb;wK`D63>Q~D`?XYzp85n1mYr6^RXt8!?c^at)&L}a9H1sEp$ zrl$vQd8DhSK8FMK5Pu0&N4JY93UVKqXnHt0#auBq3MG%=y(=_+hb zakvxE>X|oIVHI4Woj;b@s$)R$qK>i*BeoTG69ShX zW=qy)8(lDE-P-Cia}RmqCRao3aL_S;f$OZ;(O;X3%!lw092Udp|Z?k}l`&o~qnZSv0F* zESo>HL@u~gL@&NzU%EDbQ`Udu-ojcrWrk{k@jfG}HFf!`Af}j6%^<8pTIafUHM|&)Q^dM+5kw8A8~x(Vm3uieXGOz@ zB%5p)-$*DG{k8k&^-qn;Ig^~suW28MILT!hjH{jD>1nf~3q8Cmt;xk1f`Et`-zU}a zogbSI{V}rvIiB4ABfiK=fsCG|mkABDPn9rYJ?FC9EbYuD0H~$p_U2M<; zk!%J$$lhvFK5iVxp8W`qz?)RimG(MeA;OfVnin=79{HP&W6t(kq3H?m7cL3)cQ+!?cry^Kls+0RJ2XjKG@n)1qV?rTwiJ7TIkfER)}tz z+5Px5oBP<1g0hlSmo>Z18=D`hIL>5@BH#n{6h8LQ^zUU~7M`!p1fR09drffpv@mL^ zQKLCl246sYcLbOQbL))F(&-#fax%sQ6o92gStxxF1UePn<gGBSGXqhLzfNcnik zW$Ui_YmXC?!|`za*eg~R1dB}}6`D&O(BSn>Z^ zQ1=o@dj})7sSahYDB0?=hju-_*W@eI333%NJ6cA;^x#x11;Bch$;8}?dOl6QG(Tzp zz=D+t&2fmO6w+S`1K6G9ZDt5I0;#0TW%eB}XUntD8~yddGQPd^bI`0cU-D(*N}HTP z2g7q&MLG?!G8Xr1%stN0fw)m&)aa(5?fUGbZ#r~*bQsQ2k6Gx4{{ zM+-`ZBLaiR$)x10$iyC-dGU7=fjW{gJtxFI5iNRtk|jAF|xh^X-OtT}`s~ zd0iAX1zBfG&TAY;qPfcVm1aVk8MPz(8sjawalt1zIVS7HSyumi3()8a}=BdV>9ylo#l)i{^x%Na)#@OcMaXy zlm#B1kssAWKytnE?~HgTk1kxW(CFJqHj-7g6VJ?UMFlMU09) z+@M%tVOMPtCpbic+qj;yUi`8GyA5}2A-1}JGPd}G>{rf-a7|l z7CBO;ExeCcvy=|utrkzk*6FR?S!+!D_D%%Z0|rr8H;;^Y$IYegr}Cpde`dX`2fnjJ zN|uhbA20t#mB$|ZoMQQmh4M^69Sj%Hd4?^{_XHw)o$16h`WNI?c4(ff`USx079DNb|6|l>(VZN=WuyK1C4TBO|p@Xk2;UEs_5J4U;|o zIrw(X!$60GX75emX6ROu3d`AZv9;^qVT${7_0-zVFMFXildpz>_xKy3gm|2@C+$zk z#>RI)87}HbLquMv+lKKwyKalCH%|5YfA5EgB$^>y=M{!Eb}jH2yH&YAs8#Vg$iMq; z@>XLDI;~`WyigNOE)WTOVTK}OFnM4sv?O)IAf-RLX#O_Z>pLVNK|gKxS0@{&AE;{A znblLf1mSE|W~xcx{%pn;|J{;c->c}3O6kZW(plO-*8^&mT^fJw|VQA5ZhWpA+QIHBrJ09dGZ?}*p zpJl0P3a16^t&DtOTN@eWXbX?{gS}=>rYYPJ@u9xUBg@14?jAq-6#uMgm(zAbBtvL# zMy`FMzpFI5*-I$d=4IlYlpK&iZp2>v_dMam>(zy{$@<1%$KsPTVl)SMs~~>123GE2 z6-AG&Rnak=AZ6=5a@z@d;1*b|?#-e4ZT?$nN79(9J-Il@^qBY z5qC_Q5|UJR({i&7S?RqxYaao!E%%oUzX8tjy?z1_a~Z6*lbO8_{Jd`uyaZi5@T^}w zxEiY&F9f&M^o3st^gQ2uR()?taJX4F&fJ(8_Lm=8|6Jn}D3t7Md9m(otR2!dhw2lK zt+z5<5_7&`2tS=WuzqFUswP|+N&hfW@GTP9bwV(KiH5)sg=u3nEvH#?ey~Ej_Q=Av z@+*Rv*H{5*mWJW7I;8yJ3aExsDKMALkzHzz-q}qH$>xLcxOaYiSdY`WSVRbHTku&Q zBBx!c1<#)z%F{ep2XYycsnKJ0b|XkJoa`-eifp``a7B~gh{~*$Dx4kh+1~qGxcagG zYSg66y^XeKzS)@`05}}OFrza#yh%rU@(0Q9jhlF5u?za2rRWYfme)F9%Jir-M~2AX za)K@Zr#Zw?m_&GP;cTHo<9^&Cod*Thy6ad9HiP+xIf}h3oB^oPzO(HXZhZ2V!8AIkESs^MotHc!|!#3aRqV;LMwf)L?tb;?4W z?yg2NUx;qy2``2VzJ)uUZ6}vkZzY-yAB`b(hU8oMza!r|SiF=-B$-IG5Ey!)7wo%_ zf4(w)#>FC?k{w_}MbM4HZ2PFVf;2t-b9mA2HMhan_(ZQ=Pc!zj56T5SC8G7+#mNLd zkyoZv#Z=VFeL&%%{LibgRT|eg_^0gI<6KIfWe2`Qq?@9(+^*{n0?G$r;>PvVV}sjlS6t`q^YYsP zjn2~E{+y7mC|!9@Ye=!v@&Z80=?EC-^pq<~=?YKmen#jGYDq+_7Vex?))W=}F#X0C zOPnS);GF=8CiOVE__qAGPc!N>kO)lg0TZR0?c7U?AaS^NrFfIM5WczlV9yKdM+#6y z3Y)JCMDu+^>AL!>p@`eo57#x+4XibR9z0rSDGRj(gE#Xr-B1R8P!Ms%x}BAMQfQnk9I?p`_*-8@FCQ5bg6^!)(0j^_j=BVN8jo~X>$f(Fa-%O*DvPkBDkrUeo zgMeJLb;p(jx(TD#TRJB6(~HZ8tnZYmwprjD6OUCUE1ko30b zzYKRhJF0VRN=+gr(8+{jZcK27vP0eAZb`gGLX@!ntDX}IdL;1ETg1Q8qG@Hx0i`jb zlT+{S39*FgRAFL^VTmss*z=Q}2oIEtuG@ttiBn_20}KR`GJj?jAFvpMnK`1NemW=^4Jbi4$5*HEsu3lUBvDRTrs$V%%!qM>q zQqYD;%dDk6Kl$-WOA2K>FeF&&ZiZt2detr`UoJWG*~oYG5;-NCFFsp#iU@u4hrkaq zC5ENj?aSBUHR5GynqHikvBmaE_sxzi2IvZFgYC+2Fe>hT!rYZf%k%*|iK2vc1&NKuIl>V|XO|Mpni(<50!R$L?n_oE!z51ar{QQ?y?HB|1jBVX zOsZDbP+#<5ei4T6A#{gDpi$_hgyrAJ)5Gp zHHYBl&KJywP5boXx1P&474w%{TAUiq3G;;|2z3i_8%dwv)hB2B#FDjp?871TBIeGA zfdQ8!dW-7%1j;T@mg**ajTP>g`nbOKBefrzKbyAuQqufp5l5j0nDc8dcx)?NNurA1 zthrxJnLBv#eBxT}>l;=f89wr%xgUj7lp|*eHkV%IrQh9P|EylIQIm3uV?SJ`uD}i`*;^Fl@pd)gZaw9qAkPiY1!}d!F&74p+#`#a%xcO*XU4h*IHd+VUvlD2?_9^m`qqZy`L=3~pTK7yXSs|l=s@=dXpku&&Wzt16a_GMSkyYYY?}cY5bWDx);$F?SAM) zk%=FMN%VUgCg&R18zmyrJ4j8jlz!O1Zl+j)8U^^ zRf{iXq9+3RtKlX2TL1!PYtj_tUu)Z^3=w^bFr7ylyQ&nT*JZ5058B~pskygp4VV(| z|4t~xvZQR0J1XBDsdf0PlMc(1NK=lyGz8lQgO=SDpnMXP4z^k@i!7VF*|m}$Cfa<& zmHvzznYHk-!qD1=w}8Ib0A#Y{YcJH2`N6tck%pHl-rrwT{BdQ>mFa#m30pW2FdEb zUI5_b3X`b_%MS9Ms99`ervv(h&DqfrqlDDH+aKMfDB(|8c(@f>jTyt%i6}RJIX9PY z&`+a`-BDpEndJhbTL(FwVAvM;Tc63TP(Hr9A;rhsLJ1sQt{aj?P z)UoNjZLPPHvHV%0tpVpLUYf`}aq?0-@@y#F@`);Va>8O-YCqmk$15*}ZLKwh(3ZS^ zO$p8Fue?s%6R^RFByPopF0tjHlU(AA{eD3{$i3|+`RTT350OYX#bfbZql0xOQujejT~G05DtxCjr-XyP`A7 zeIv##LMM;oAcQj_f$Pt&&83ijnGe+0oPup_HX1u9hR1=$P?NqQW-?B243AFVjF{zu zbJ6jW3%Qo1-_GlFD7d>ou;rXMkc~{q%7D9t2}aP@qO91BQ1Rv&L;6`w10|=oZJwTE zqvi_Q>w}yUqtL745q@|r;^4dXAG{hY++*D~I^7<282VXOH^g)@cKjs_2ZBb&M}}GH zo>JXF=j19S6V`xOZ&T5x)^=f7<<~Xtzu~h_K^dvu8l#-!nGCnZ2q{Wq*KEM@^N-(H zw$F=^MY9VV)bi%$M_0%HoF8)UnitAN{a^TUy>>sx@uAnrI9T=h)HuN#tVSIaBPiFU{ehR&3LD9JbNPP!H6{XYbo zAN@nxHFcE^N22V?9#O%x*koi1 zdU_NN7dD)6Qoee&Q3KA~xeKvW9aM3Xzki$Qk6KO2N`xTRigZNJK+kV)ibLMS%wykP zp8+7l0HT|dH6fPZN#%GKK%3`{SIE zQpF)TUxFwmr9^nd0Oc)yGWtB-(9!cF)&1MNf?AYkTLF249xW=KO({d@W_5Q_qhm$k zKpO$*r-|a;&b$flFwiE1RyK9iOjS)SA}Z>e#&StI{q8ES)Su>`#ESHzX7Y6oiKY=V zj5O50EQ~(U*fUv$DTvN!{D=GW=s(Fwo5WYGFt{PV2XUBE^&KB&b?!+#?Qg9e*PJ-b zN$&8R&jF(AcPP|&CZIbf;axC?C`&kjvgm=n_p}=FGBvihmy4uc4m&{wz;UGYjNWX&CEF? zBv4vX*FTn~yL8ru5apc^B<7)@c7{=kH3_>(%R^c%@4q?7*VYu()P&}tFbNO8Zwk6f zC44^Z_0oi5ln;fK5487I2$QOxvj*P4y)$bF#ef@3_JlccoYOQGNMFvj(x@i#fS;RBr040u@%~;mncdH!%>@ zmYZgV*E2JwHvzq7h7kMn?N{y)~Qtf2nSs~`MIo< literal 0 HcmV?d00001 diff --git a/documentation/manual/source/pics/song_edit_verse_error.png b/documentation/manual/source/pics/song_edit_verse_error.png new file mode 100644 index 0000000000000000000000000000000000000000..4fa10fec3f5d1b83a48c1ac39a75ce7dc4dc1e87 GIT binary patch literal 14183 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%0D>Y zo3T(d25t|5(T6If4|+ChHh(it&-Z~;v xRMf4MDLTDaJL)#PxX^eXC>2v>-rOsEpp&217uD66w>RY=WF!>Dt3-_h{|D~A+Zq4> literal 0 HcmV?d00001 diff --git a/documentation/manual/source/pics/song_edit_verse_type.png b/documentation/manual/source/pics/song_edit_verse_type.png new file mode 100644 index 0000000000000000000000000000000000000000..e4cdfa1a676d8e0aa97a54e8ed101595fd8d3412 GIT binary patch literal 46119 zcmZ^K19+remuWu--6p)jC;fPi4dL!PLg_3b>ma2nY{IOps5}HRF84%~R53Yv^Wb z+_3H{R8$f*PL!WAl&cbttg_KmDe+e!bRlNtsa7Gpxdk~(7^)DtR)hFel05%R-eb~g zGJ*tAELT03k0hd+@dSP9@PjuKP38#OQtKoW>0NsL_=`Ut#D9CM3hVE>DSScwy+GVh z^w~Ja5Kp8x4HBtb4qAyyr9SQ7neUMJsE7c<=UTIWU`P-v3MAI!gXnDaK8&LEWA=NR z{Fgc3S5~y)h7B5{dL&q-a^Gs?)}AV9+>eh{4KpPWK7>Hd7^J(@I z7NqgJd%0htsz!|*4Nn4p1SoZC;{pRg3gpp!k=pnRemzzfZ0k_r&8VcvmMWgFw`Kxr zl9|n{uy>LMbiafhP|Ca@As8ɗ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

n>9%$gc-^-0ACY+uS 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 mqhnM+ZTi2_!!*>Ke}03iM`v2>t Date: Sat, 16 Apr 2011 12:36:20 +0100 Subject: [PATCH 31/94] more changes --- openlp/core/lib/renderer.py | 4 ++-- openlp/plugins/bibles/lib/mediaitem.py | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 703e477cd..ac8e26191 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -399,7 +399,7 @@ class Renderer(object): if line_count > 1: if html_text.endswith(u'
'): html_text = html_text[:len(html_text)-4] - formatted.append(html_text) + formatted.append(html_text + line_end) line = previous_line line_count = 1 html_text = u'' @@ -419,7 +419,7 @@ class Renderer(object): if self.web_frame.contentsSize().height() > self.page_height: if html_text.endswith(u'
'): html_text = html_text[:len(html_text)-4] - formatted.append(html_text) + formatted.append(html_text + line_break) html_text = u'' styled_text = u'' html_text += word diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 8440cb783..405507523 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -799,9 +799,9 @@ class BibleMediaItem(MediaManagerItem): else: verse_text = unicode(verse) if self.settings.display_style == DisplayStyle.Round: - return u'[---]{su}(%s){/su}' % verse_text + return u'{su}(%s){/su}' % verse_text if self.settings.display_style == DisplayStyle.Curly: - return u'[---]{su}{%s}{/su}' % verse_text + return u'{su}{%s}{/su}' % verse_text if self.settings.display_style == DisplayStyle.Square: - return u'[---]{su}[%s]{/su}' % verse_text - return u'[---]{su}%s{/su}' % verse_text + return u'{su}[%s]{/su}' % verse_text + return u'{su}%s{/su}' % verse_text From 596c9288817116f2b943a8ce79753ffdbed5b718 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Sat, 16 Apr 2011 17:14:21 +0100 Subject: [PATCH 32/94] Untidy the code I tided, so it functions correctly! --- .../lib/pptviewlib/pptviewlib.cpp | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp index 93e7b17d9..fcb7c66ca 100644 --- a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp +++ b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp @@ -350,18 +350,18 @@ BOOL GetPPTViewerPath(char *pptViewerPath, int stringSize) LRESULT lResult; DEBUG("GetPPTViewerPath: start\n"); - if ((RegOpenKeyEx(HKEY_CLASSES_ROOT, + if (RegOpenKeyEx(HKEY_CLASSES_ROOT, "PowerPointViewer.Show.12\\shell\\Show\\command", 0, KEY_READ, &hKey) != ERROR_SUCCESS) - && (RegOpenKeyEx(HKEY_CLASSES_ROOT, - "Applications\\PPTVIEW.EXE\\shell\\open\\command", 0, KEY_READ, &hKey) - != ERROR_SUCCESS) - && (RegOpenKeyEx(HKEY_CLASSES_ROOT, - "Applications\\PPTVIEW.EXE\\shell\\Show\\command", 0, KEY_READ, &hKey) - != ERROR_SUCCESS)) - { - return FALSE; - } + if(RegOpenKeyEx(HKEY_CLASSES_ROOT, + "Applications\\PPTVIEW.EXE\\shell\\open\\command", 0, KEY_READ, &hKey) + != ERROR_SUCCESS) + if (RegOpenKeyEx(HKEY_CLASSES_ROOT, + "Applications\\PPTVIEW.EXE\\shell\\Show\\command", 0, KEY_READ, &hKey) + != ERROR_SUCCESS) + { + return FALSE; + } dwType = REG_SZ; dwSize = (DWORD)stringSize; lResult = RegQueryValueEx(hKey, NULL, NULL, &dwType, (LPBYTE)pptViewerPath, From 91d53b7adcf6bc7ce96fe2aac80fe2e351268bdc Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Sat, 16 Apr 2011 17:15:08 +0100 Subject: [PATCH 33/94] Add the dll too --- .../lib/pptviewlib/pptviewlib.dll | Bin 78848 -> 80896 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll index 36581e00bb3bde8d7d059b50bf7b0eb51bd92a6e..000115803f98b1b2fd8f3c4e8b41703a8250d882 100644 GIT binary patch delta 139 zcmZp8!P4-9Wx@|B$^9#R8KB?+1Ct^*BPRnx5m4aNWFf{ZCQhD-io%;GGWs)eaq<8~ z6POqn_$I$%(q=T;EXK@N!3@;DS-qN9K-6P_{nj57&pR(mJ@77gzwch4LI&r_p55B) h1x2aFsd*)vtGhip!Rn7sv6{MAVHwAEMlHtwoB&~)D(V0L delta 135 zcmZqp!P4-8Wx@}s@6L_B3{dcZfk}~@k&}U;2q Date: Sat, 16 Apr 2011 22:47:54 +0100 Subject: [PATCH 34/94] Further detection efforts --- .../lib/pptviewlib/pptviewlib.cpp | 91 +++++++++++++++--- .../lib/pptviewlib/pptviewlib.dll | Bin 80896 -> 80384 bytes .../presentations/lib/pptviewlib/pptviewlib.h | 1 + 3 files changed, 77 insertions(+), 15 deletions(-) diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp index fcb7c66ca..75242eec4 100644 --- a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp +++ b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp @@ -27,6 +27,8 @@ #include #include #include +#include +#include #include #include #include @@ -88,7 +90,12 @@ DllExport BOOL CheckInstalled() char cmdLine[MAX_PATH * 2]; DEBUG("CheckInstalled\n"); - return GetPPTViewerPath(cmdLine, sizeof(cmdLine)); + BOOL found = GetPPTViewerPath(cmdLine, sizeof(cmdLine)); + if(found) + { + DEBUG("Exe: %s\n", cmdLine); + } + return found; } // Open the PointPoint, count the slides and take a snapshot of each slide @@ -160,7 +167,7 @@ DllExport int OpenPPT(char *filename, HWND hParentWnd, RECT rect, pptView[id].rect.bottom = rect.bottom; pptView[id].rect.right = rect.right; } - strcat_s(cmdLine, MAX_PATH * 2, "/F /S \""); + strcat_s(cmdLine, MAX_PATH * 2, " /F /S \""); strcat_s(cmdLine, MAX_PATH * 2, filename); strcat_s(cmdLine, MAX_PATH * 2, "\""); memset(&si, 0, sizeof(si)); @@ -189,7 +196,7 @@ DllExport int OpenPPT(char *filename, HWND hParentWnd, RECT rect, Sleep(10); if (!CreateProcess(NULL, cmdLine, NULL, NULL, FALSE, 0, 0, NULL, &si, &pi)) { - DEBUG("OpenPPT: CreateProcess failed\n"); + DEBUG("OpenPPT: CreateProcess failed: %s\n", cmdLine); ClosePPT(id); return -1; } @@ -344,24 +351,79 @@ BOOL SavePPTInfo(int id) // Get the path of the PowerPoint viewer from the registry BOOL GetPPTViewerPath(char *pptViewerPath, int stringSize) +{ + char cwd[MAX_PATH]; + + DEBUG("GetPPTViewerPath: start\n"); + if(GetPPTViewerPathFromReg(pptViewerPath, stringSize)) + { + if(_access(pptViewerPath, 0) != -1) + { + DEBUG("GetPPTViewerPath: exit registry\n"); + return TRUE; + } + } + // This is where it gets ugly. PPT2007 it seems no longer stores its + // location in the registry. So we have to use the defaults which will + // upset those who like to put things somewhere else + + // Viewer 2007 in 64bit Windows: + if(_access("C:\\Program Files (x86)\\Microsoft Office\\Office12\\PPTVIEW.EXE", + 0) != -1) + { + strcpy_s( + "C:\\Program Files (x86)\\Microsoft Office\\Office12\\PPTVIEW.EXE", + stringSize, pptViewerPath); + DEBUG("GetPPTViewerPath: exit 64bit 2007\n"); + return TRUE; + } + // Viewer 2007 in 32bit Windows: + if(_access("C:\\Program Files\\Microsoft Office\\Office12\\PPTVIEW.EXE", 0) + != -1) + { + strcpy_s("C:\\Program Files\\Microsoft Office\\Office12\\PPTVIEW.EXE", + stringSize, pptViewerPath); + DEBUG("GetPPTViewerPath: exit 32bit 2007\n"); + return TRUE; + } + // Give them the opportunity to place it in the same folder as the app + _getcwd(cwd, MAX_PATH); + strcat_s(cwd, MAX_PATH, "\\PPTVIEW.EXE"); + if(_access(cwd, 0) != -1) + { + strcpy_s(pptViewerPath, stringSize, cwd); + DEBUG("GetPPTViewerPath: exit local\n"); + return TRUE; + } + DEBUG("GetPPTViewerPath: exit fail\n"); + return FALSE; +} +BOOL GetPPTViewerPathFromReg(char *pptViewerPath, int stringSize) { HKEY hKey; DWORD dwType, dwSize; LRESULT lResult; - DEBUG("GetPPTViewerPath: start\n"); - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, + // The following registry settings are for, respectively, (I think) + // PPT Viewer 2007 (older versions. Latest not in registry) & PPT Viewer 2010 + // PPT Viewer 2003 (recent versions) + // PPT Viewer 2003 (older versions) + // PPT Viewer 97 + if ((RegOpenKeyEx(HKEY_CLASSES_ROOT, "PowerPointViewer.Show.12\\shell\\Show\\command", 0, KEY_READ, &hKey) != ERROR_SUCCESS) - if(RegOpenKeyEx(HKEY_CLASSES_ROOT, - "Applications\\PPTVIEW.EXE\\shell\\open\\command", 0, KEY_READ, &hKey) - != ERROR_SUCCESS) - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, - "Applications\\PPTVIEW.EXE\\shell\\Show\\command", 0, KEY_READ, &hKey) - != ERROR_SUCCESS) - { - return FALSE; - } + && (RegOpenKeyEx(HKEY_CLASSES_ROOT, + "PowerPointViewer.Show.11\\shell\\Show\\command", 0, KEY_READ, &hKey) + != ERROR_SUCCESS) + && (RegOpenKeyEx(HKEY_CLASSES_ROOT, + "Applications\\PPTVIEW.EXE\\shell\\open\\command", 0, KEY_READ, &hKey) + != ERROR_SUCCESS) + && (RegOpenKeyEx(HKEY_CLASSES_ROOT, + "Applications\\PPTVIEW.EXE\\shell\\Show\\command", 0, KEY_READ, &hKey) + != ERROR_SUCCESS)) + { + return FALSE; + } dwType = REG_SZ; dwSize = (DWORD)stringSize; lResult = RegQueryValueEx(hKey, NULL, NULL, &dwType, (LPBYTE)pptViewerPath, @@ -373,7 +435,6 @@ BOOL GetPPTViewerPath(char *pptViewerPath, int stringSize) } // remove "%1" from end of key value pptViewerPath[strlen(pptViewerPath) - 4] = '\0'; - DEBUG("GetPPTViewerPath: exit ok\n"); return TRUE; } diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll index 000115803f98b1b2fd8f3c4e8b41703a8250d882..524b30ebb1f0c70089e3faa96c771c2e5d855358 100644 GIT binary patch delta 13402 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 E4^>buV*mgE delta 12282 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 diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.h b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.h index 4c98f8bb3..98b0a21ab 100644 --- a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.h +++ b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.h @@ -49,6 +49,7 @@ LRESULT CALLBACK CbtProc(int nCode, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK CwpProc(int nCode, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam); BOOL GetPPTViewerPath(char *pptViewerPath, int stringSize); +BOOL GetPPTViewerPathFromReg(char *pptViewerPath, int stringSize); HBITMAP CaptureWindow(HWND hWnd); VOID SaveBitmap(CHAR* filename, HBITMAP hBmp) ; VOID CaptureAndSaveWindow(HWND hWnd, CHAR* filename); From 4b3d506379b0f2eaaa5dab29ee447cae2be84992 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 17 Apr 2011 07:26:55 +0100 Subject: [PATCH 35/94] Allow alerts to be sent but not saved Fixes: https://launchpad.net/bugs/763066 --- openlp/plugins/alerts/forms/alertform.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py index b87ff3c5d..5f81076db 100644 --- a/openlp/plugins/alerts/forms/alertform.py +++ b/openlp/plugins/alerts/forms/alertform.py @@ -61,6 +61,12 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): QtCore.QObject.connect(self.alertListWidget, QtCore.SIGNAL(u'currentRowChanged(int)'), self.onCurrentRowChanged) + def exec_(self): + self.displayButton.setEnabled(False) + self.displayCloseButton.setEnabled(False) + self.alertTextEdit.setText(u'') + return QtGui.QDialog.exec_(self) + def loadList(self): """ Loads the list with alerts. @@ -125,6 +131,13 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): # Only enable the button, if we are editing an item. if self.item_id: self.saveButton.setEnabled(True) + if self.alertTextEdit.text(): + self.displayButton.setEnabled(True) + self.displayCloseButton.setEnabled(True) + else: + self.displayButton.setEnabled(False) + self.displayCloseButton.setEnabled(False) + def onDoubleClick(self): """ From 946d74372de8564e0e89b58d17791b0875691347 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 17 Apr 2011 13:00:44 +0200 Subject: [PATCH 36/94] --- openlp/core/lib/ui.py | 4 ++-- openlp/core/ui/mainwindow.py | 10 +++------- openlp/core/ui/servicemanager.py | 3 ++- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index a0686416c..b544efab9 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -323,7 +323,7 @@ def shortcut_action(parent, name, shortcuts, function, icon=None, checked=None, action.setShortcutContext(context) action_list = ActionList.get_instance() action_list.add_action(action, category) - QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered()'), function) + QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered(bool)'), function) return action def context_menu_action(base, icon, text, slot, shortcuts=None, category=None, @@ -356,7 +356,7 @@ def context_menu_action(base, icon, text, slot, shortcuts=None, category=None, action = QtGui.QAction(text, base) if icon: action.setIcon(build_icon(icon)) - QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered()'), slot) + QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered(bool)'), slot) if shortcuts is not None: action.setShortcuts(shortcuts) action.setShortcutContext(context) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index d2fbaef9e..32a28d474 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -896,7 +896,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): def toggleThemeManager(self): self.themeManagerDock.setVisible(not self.themeManagerDock.isVisible()) - def setPreviewPanelVisibility(self, visible=None): + def setPreviewPanelVisibility(self, visible): """ Sets the visibility of the preview panel including saving the setting and updating the menu. @@ -906,14 +906,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): True - Visible False - Hidden """ - if visible is None: - visible = self.ViewPreviewPanel.isVisible() self.previewController.panel.setVisible(visible) QtCore.QSettings().setValue(u'user interface/preview panel', QtCore.QVariant(visible)) self.ViewPreviewPanel.setChecked(visible) - def setLivePanelVisibility(self, visible=None): + def setLivePanelVisibility(self, visible): """ Sets the visibility of the live panel including saving the setting and updating the menu. @@ -923,8 +921,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): True - Visible False - Hidden """ - if visible is None: - visible = self.ViewLivePanel.isVisible() self.liveController.panel.setVisible(visible) QtCore.QSettings().setValue(u'user interface/live panel', QtCore.QVariant(visible)) @@ -1011,4 +1007,4 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): self.recentFiles.insert(0, QtCore.QString(filename)) while self.recentFiles.count() > maxRecentFiles: # Don't care what API says takeLast works, removeLast doesn't! - self.recentFiles.takeLast() \ No newline at end of file + self.recentFiles.takeLast() diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 9de82dd82..40bd5e9d4 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -347,7 +347,8 @@ class ServiceManager(QtGui.QWidget): has been modified. """ self._modified = modified - serviceFile = self.shortFileName() or u'Untitled Service' + serviceFile = self.shortFileName() or translate( + 'OpenLP.ServiceManager', 'Untitled Service') self.mainwindow.setServiceModified(modified, serviceFile) def isModified(self): From d3a0952d66a300378b4d6ab62dd8bcc0b1dfd310 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 17 Apr 2011 14:36:35 +0200 Subject: [PATCH 37/94] fixed a bug, where themes 'lost' their background image; fixed theme re name when the name has not been changed --- openlp/core/ui/thememanager.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 81da6e021..cc972e5c8 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -280,6 +280,8 @@ class ThemeManager(QtGui.QWidget): self.fileRenameForm.fileNameEdit.setText(oldThemeName) if self.fileRenameForm.exec_(): newThemeName = unicode(self.fileRenameForm.fileNameEdit.text()) + if oldThemeName == newThemeName: + return if self.checkIfThemeExists(newThemeName): oldThemeData = self.getThemeData(oldThemeName) self.cloneThemeData(oldThemeData, newThemeName) @@ -333,6 +335,7 @@ class ThemeManager(QtGui.QWidget): self.oldBackgroundImage = theme.background_filename self.themeForm.theme = theme self.themeForm.exec_(True) + self.oldBackgroundImage = None def onDeleteTheme(self): """ From b436c34742bfe06c08613127a3810ecca3fa9554 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 17 Apr 2011 13:53:35 +0100 Subject: [PATCH 38/94] Remove blank line --- openlp/plugins/alerts/forms/alertform.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py index 5f81076db..6f6311392 100644 --- a/openlp/plugins/alerts/forms/alertform.py +++ b/openlp/plugins/alerts/forms/alertform.py @@ -138,7 +138,6 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): self.displayButton.setEnabled(False) self.displayCloseButton.setEnabled(False) - def onDoubleClick(self): """ List item has been double clicked to display it From 2d02f3e9a052469f117e349b7483310357b2c2c7 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 17 Apr 2011 17:47:02 +0200 Subject: [PATCH 39/94] --- openlp/plugins/songs/forms/songimportform.py | 14 +- openlp/plugins/songs/lib/cclifileimport.py | 18 +- openlp/plugins/songs/lib/easislidesimport.py | 36 ++-- openlp/plugins/songs/lib/ewimport.py | 23 +-- .../plugins/songs/lib/foilpresenterimport.py | 48 +++--- openlp/plugins/songs/lib/olp1import.py | 23 ++- openlp/plugins/songs/lib/olpimport.py | 12 +- openlp/plugins/songs/lib/oooimport.py | 2 +- openlp/plugins/songs/lib/openlyricsimport.py | 2 +- openlp/plugins/songs/lib/opensongimport.py | 47 ++---- openlp/plugins/songs/lib/sofimport.py | 3 +- openlp/plugins/songs/lib/songbeamerimport.py | 17 +- openlp/plugins/songs/lib/songimport.py | 23 +++ .../plugins/songs/lib/songshowplusimport.py | 154 +++++++++--------- 14 files changed, 209 insertions(+), 213 deletions(-) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 4ee7d9fd8..3fc802ed9 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -740,13 +740,17 @@ class SongImportForm(OpenLPWizard): importer = self.plugin.importSongs(SongFormat.FoilPresenter, filenames=self.getListOfFiles(self.foilPresenterFileListWidget) ) - message = importer.do_import() - if isinstance(message, bool) and not message: + test = importer.do_import() + print test + if test is not None: + raise A + print importer.import_error_log + if importer.stop_import_flag: + print u'cancelled' + elif importer.import_error_log: self.progressLabel.setText(self.progressLabel.setText( translate('SongsPlugin.SongImportForm', 'Your song import failed.'))) - elif not isinstance(message, bool) and message: - self.progressLabel.setText(message) else: self.progressLabel.setText(WizardStrings.FinishedImport) @@ -836,4 +840,4 @@ class SongImportForm(OpenLPWizard): setattr(self, prefix + u'DisabledLayout', disabledLayout) setattr(self, prefix + u'DisabledLabel', disabledLabel) setattr(self, prefix + u'ImportWidget', importWidget) - return importWidget \ No newline at end of file + return importWidget diff --git a/openlp/plugins/songs/lib/cclifileimport.py b/openlp/plugins/songs/lib/cclifileimport.py index c63a9fa98..35e138a19 100644 --- a/openlp/plugins/songs/lib/cclifileimport.py +++ b/openlp/plugins/songs/lib/cclifileimport.py @@ -59,16 +59,10 @@ class CCLIFileImport(SongImport): Import either a ``.usr`` or a ``.txt`` SongSelect file. """ log.debug(u'Starting CCLI File Import') - song_total = len(self.import_source) - self.import_wizard.progressBar.setMaximum(song_total) - song_count = 1 + self.import_wizard.progressBar.setMaximum(len(self.import_source)) for filename in self.import_source: - self.import_wizard.incrementProgressBar(unicode(translate( - 'SongsPlugin.CCLIFileImport', 'Importing song %d of %d')) % - (song_count, song_total)) filename = unicode(filename) log.debug(u'Importing CCLI File: %s', filename) - self.set_defaults() lines = [] if os.path.isfile(filename): detect_file = open(filename, u'r') @@ -81,6 +75,7 @@ class CCLIFileImport(SongImport): detect_file.close() infile = codecs.open(filename, u'r', details['encoding']) lines = infile.readlines() + infile.close() ext = os.path.splitext(filename)[1] if ext.lower() == u'.usr': log.info(u'SongSelect .usr format file found: %s', filename) @@ -89,10 +84,12 @@ class CCLIFileImport(SongImport): log.info(u'SongSelect .txt format file found: %s', filename) self.do_import_txt_file(lines) else: + self.log_error(filename, + translate('SongsPlugin.CCLIFileImport', + 'The file does not have a valid extension.')) log.info(u'Extension %s is not valid', filename) - song_count += 1 if self.stop_import_flag: - return False + return def do_import_usr_file(self, textList): """ @@ -333,6 +330,5 @@ class CCLIFileImport(SongImport): if len(author_list) < 2: author_list = song_author.split(u'|') # Clean spaces before and after author names. - for author_name in author_list: - self.add_author(author_name.strip()) + [self.add_author(author_name.strip()) for author_name in author_list] self.finish() diff --git a/openlp/plugins/songs/lib/easislidesimport.py b/openlp/plugins/songs/lib/easislidesimport.py index 8ef6dc1a7..f2b38c26e 100644 --- a/openlp/plugins/songs/lib/easislidesimport.py +++ b/openlp/plugins/songs/lib/easislidesimport.py @@ -26,11 +26,13 @@ import logging import os -from lxml import etree, objectify import re +from lxml import etree, objectify + from openlp.core.lib import translate from openlp.core.ui.wizard import WizardStrings +from openlp.plugins.songs.lib import VerseType from openlp.plugins.songs.lib.songimport import SongImport log = logging.getLogger(__name__) @@ -56,27 +58,19 @@ class EasiSlidesImport(SongImport): multiple opensong files. If `self.commit` is set False, the import will not be committed to the database (useful for test scripts). """ - self.import_wizard.progressBar.setMaximum(1) log.info(u'Importing EasiSlides XML file %s', self.import_source) parser = etree.XMLParser(remove_blank_text=True) file = etree.parse(self.import_source, parser) xml = unicode(etree.tostring(file)) song_xml = objectify.fromstring(xml) - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % os.path.split(self.import_source)[-1]) self.import_wizard.progressBar.setMaximum(len(song_xml.Item)) for song in song_xml.Item: - self.import_wizard.incrementProgressBar( - unicode(translate('SongsPlugin.ImportWizardForm', - u'Importing %s, song %s...')) % - (os.path.split(self.import_source)[-1], song.Title1)) - success = self._parse_song(song) - if not success or self.stop_import_flag: - return False - elif self.commit: - self.finish() + if self.stop_import_flag: + return + self._parse_song(song) def _parse_song(self, song): + self.set_defaults() self._success = True self._add_unicode_attribute(u'title', song.Title1, True) self._add_unicode_attribute(u'alternate_title', song.Title2) @@ -89,7 +83,8 @@ class EasiSlidesImport(SongImport): self._add_copyright(song.LicenceAdmin2) self._add_unicode_attribute(u'song_book_name', song.BookReference) self._parse_and_add_lyrics(song) - return self._success + if self._success: + self.finish() def _add_unicode_attribute(self, self_attribute, import_attribute, mandatory=False): @@ -187,12 +182,13 @@ class EasiSlidesImport(SongImport): # if the regions are inside verses regionsInVerses = (regions and regionlines[regionlines.keys()[0]] > 1) MarkTypes = { - u'CHORUS': u'C', - u'VERSE': u'V', - u'INTRO': u'I', - u'ENDING': u'E', - u'BRIDGE': u'B', - u'PRECHORUS': u'P'} + u'CHORUS': VerseType.Tags[VerseType.Chorus], + u'VERSE': VerseType.Tags[VerseType.Verse], + u'INTRO': VerseType.Tags[VerseType.Intro], + u'ENDING': VerseType.Tags[VerseType.Ending], + u'BRIDGE': VerseType.Tags[VerseType.Bridge], + u'PRECHORUS': VerseType.Tags[VerseType.PreChorus] + } verses = {} # list as [region, versetype, versenum, instance] our_verse_order = [] diff --git a/openlp/plugins/songs/lib/ewimport.py b/openlp/plugins/songs/lib/ewimport.py index 43be5bd07..66f6eec42 100644 --- a/openlp/plugins/songs/lib/ewimport.py +++ b/openlp/plugins/songs/lib/ewimport.py @@ -33,6 +33,7 @@ import struct from openlp.core.lib import translate from openlp.core.ui.wizard import WizardStrings +from openlp.plugins.songs.lib import VerseType from openlp.plugins.songs.lib import retrieve_windows_encoding from songimport import SongImport @@ -203,8 +204,8 @@ class EasyWorshipSongImport(SongImport): field_size)) self.set_record_struct(field_descs) # Pick out the field description indexes we will need - success = True try: + success = True fi_title = self.find_field(u'Title') fi_author = self.find_field(u'Author') fi_copy = self.find_field(u'Copyright') @@ -223,24 +224,18 @@ class EasyWorshipSongImport(SongImport): # Loop through each record within the current block for i in range(rec_count): if self.stop_import_flag: - success = False break raw_record = db_file.read(record_size) self.fields = self.record_struct.unpack(raw_record) self.set_defaults() - # Get title and update progress bar message - title = self.get_field(fi_title) - if title: - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % title, 0) - self.title = title - # Get remaining fields + self.title = self.get_field(fi_title) + # Get remaining fields. copy = self.get_field(fi_copy) admin = self.get_field(fi_admin) ccli = self.get_field(fi_ccli) authors = self.get_field(fi_author) words = self.get_field(fi_words) - # Set the SongImport object members + # Set the SongImport object members. if copy: self.copyright = copy if admin: @@ -264,17 +259,13 @@ class EasyWorshipSongImport(SongImport): # Format the lyrics words = strip_rtf(words, self.encoding) for verse in words.split(u'\n\n'): - self.add_verse(verse.strip(), u'V') + self.add_verse( + verse.strip(), VerseType.Tags[VerseType.Verse]) if self.stop_import_flag: - success = False break self.finish() - if not self.stop_import_flag: - self.import_wizard.incrementProgressBar(u'') db_file.close() self.memo_file.close() - if not success: - return False def find_field(self, field_name): return [i for i, x in enumerate(self.field_descs) \ diff --git a/openlp/plugins/songs/lib/foilpresenterimport.py b/openlp/plugins/songs/lib/foilpresenterimport.py index fef2bd41b..dd98bc415 100644 --- a/openlp/plugins/songs/lib/foilpresenterimport.py +++ b/openlp/plugins/songs/lib/foilpresenterimport.py @@ -121,7 +121,7 @@ class FoilPresenterImport(SongImport): parser = etree.XMLParser(remove_blank_text=True) for file_path in self.import_source: if self.stop_import_flag: - return False + return self.import_wizard.incrementProgressBar( WizardStrings.ImportingType % os.path.basename(file_path)) try: @@ -303,9 +303,8 @@ class FoilPresenter(object): for marker in markers: copyright = re.compile(marker).sub(u'', copyright, re.U) copyright = re.compile(u'(?<=) *:').sub(u'', copyright) - i = 0 x = 0 - while i != 1: + while True: if copyright.find(u'') != -1: temp = copyright.partition(u'') if temp[0].strip() and x > 0: @@ -314,9 +313,9 @@ class FoilPresenter(object): x += 1 elif x > 0: strings.append(copyright) - i = 1 + break else: - i = 1 + break author_temp = [] for author in strings: temp = re.split(u',(?=\D{2})|(?<=\D),|\/(?=\D{3,})|(?<=\D);', @@ -347,8 +346,8 @@ class FoilPresenter(object): if author is None: # We need to create a new author, as the author does not exist. author = Author.populate(display_name=display_name, - last_name = display_name.split(u' ')[-1], - first_name = u' '.join(display_name.split(u' ')[:-1])) + last_name=display_name.split(u' ')[-1], + first_name=u' '.join(display_name.split(u' ')[:-1])) self.manager.save_object(author) song.authors.append(author) @@ -412,8 +411,15 @@ class FoilPresenter(object): temp_verse_order_backup = [] temp_sortnr_backup = 1 temp_sortnr_liste = [] - versenumber = {u'V': 1, u'C': 1, u'B': 1, u'E': 1, u'O': 1, u'I': 1, - u'P': 1} + versenumber = { + VerseType.Tags[VerseType.Verse]: 1, + VerseType.Tags[VerseType.Chorus]: 1, + VerseType.Tags[VerseType.Bridge]: 1, + VerseType.Tags[VerseType.Ending]: 1, + VerseType.Tags[VerseType.Other]: 1, + VerseType.Tags[VerseType.Intro]: 1, + VerseType.Tags[VerseType.PreChorus]: 1 + } for strophe in foilpresenterfolie.strophen.strophe: text = self._child(strophe.text_) verse_name = self._child(strophe.key) @@ -432,25 +438,25 @@ class FoilPresenter(object): temp_verse_name = re.compile(u'[0-9].*').sub(u'', verse_name) temp_verse_name = temp_verse_name[:3].lower() if temp_verse_name == u'ref': - verse_type = u'C' + verse_type = VerseType.Tags[VerseType.Chorus] elif temp_verse_name == u'r': - verse_type = u'C' + verse_type = VerseType.Tags[VerseType.Chorus] elif temp_verse_name == u'': - verse_type = u'V' + verse_type = VerseType.Tags[VerseType.Verse] elif temp_verse_name == u'v': - verse_type = u'V' + verse_type = VerseType.Tags[VerseType.Verse] elif temp_verse_name == u'bri': - verse_type = u'B' + verse_type = VerseType.Tags[VerseType.Bridge] elif temp_verse_name == u'cod': - verse_type = u'E' + verse_type = VerseType.Tags[VerseType.Ending] elif temp_verse_name == u'sch': - verse_type = u'E' + verse_type = VerseType.Tags[VerseType.Ending] elif temp_verse_name == u'pre': - verse_type = u'P' + verse_type = VerseType.Tags[VerseType.PreChorus] elif temp_verse_name == u'int': - verse_type = u'I' + verse_type = VerseType.Tags[VerseType.Intro] else: - verse_type = u'O' + verse_type = VerseType.Tags[VerseType.Other] verse_number = re.compile(u'[a-zA-Z.+-_ ]*').sub(u'', verse_name) # Foilpresenter allows e. g. "C", but we need "C1". if not verse_number: @@ -464,8 +470,8 @@ class FoilPresenter(object): verse_number = unicode(int(verse_number) + 1) verse_type_index = VerseType.from_tag(verse_type[0]) verse_type = VerseType.Names[verse_type_index] - temp_verse_order[verse_sortnr] = (u''.join((verse_type[0], - verse_number))) + temp_verse_order[verse_sortnr] = u''.join((verse_type[0], + verse_number)) temp_verse_order_backup.append(u''.join((verse_type[0], verse_number))) sxml.add_verse_to_lyrics(verse_type, verse_number, text) diff --git a/openlp/plugins/songs/lib/olp1import.py b/openlp/plugins/songs/lib/olp1import.py index b4995caed..765794d05 100644 --- a/openlp/plugins/songs/lib/olp1import.py +++ b/openlp/plugins/songs/lib/olp1import.py @@ -63,12 +63,18 @@ class OpenLP1SongImport(SongImport): Run the import for an openlp.org 1.x song database. """ if not self.import_source.endswith(u'.olp'): - return translate('SongsPlugin.OpenLP1SongImport', 'The file you ' + self.log_error(self.import_source, + translate('SongsPlugin.OpenLP1SongImport', 'The file you ' 'were trying to import is not a valid openlp.org 1.x song ' - 'database.') + 'database.')) + return encoding = self.get_encoding() if not encoding: - return False + self.log_error(self.import_source, + translate('SongsPlugin.OpenLP1SongImport', 'The file you ' + 'were trying to import is not a valid openlp.org 1.x song ' + 'database.')) + return # Connect to the database connection = sqlite.connect(self.import_source, mode=0444, encoding=(encoding, 'replace')) @@ -81,7 +87,6 @@ class OpenLP1SongImport(SongImport): cursor.execute(u'-- types int') cursor.execute(u'SELECT COUNT(songid) FROM songs') count = cursor.fetchone()[0] - success = True self.import_wizard.progressBar.setMaximum(count) # "cache" our list of authors cursor.execute(u'-- types int, unicode') @@ -100,7 +105,6 @@ class OpenLP1SongImport(SongImport): for song in songs: self.set_defaults() if self.stop_import_flag: - success = False break song_id = song[0] title = song[1] @@ -110,9 +114,7 @@ class OpenLP1SongImport(SongImport): WizardStrings.ImportingType % title) self.title = title verses = lyrics.split(u'\n\n') - for verse in verses: - if verse.strip() != u'': - self.add_verse(verse.strip()) + [self.add_verse(verse.strip()) for verse in verses if verse.strip()] self.add_copyright(copyright) cursor.execute(u'-- types int') cursor.execute(u'SELECT authorid FROM songauthors ' @@ -120,14 +122,12 @@ class OpenLP1SongImport(SongImport): author_ids = cursor.fetchall() for author_id in author_ids: if self.stop_import_flag: - success = False break for author in authors: if author[0] == author_id[0]: self.parse_author(author[1]) break if self.stop_import_flag: - success = False break if new_db: cursor.execute(u'-- types int') @@ -136,17 +136,14 @@ class OpenLP1SongImport(SongImport): track_ids = cursor.fetchall() for track_id in track_ids: if self.stop_import_flag: - success = False break for track in tracks: if track[0] == track_id[0]: self.add_media_file(track[1]) break if self.stop_import_flag: - success = False break self.finish() - return success def get_encoding(self): """ diff --git a/openlp/plugins/songs/lib/olpimport.py b/openlp/plugins/songs/lib/olpimport.py index 4e0116198..d89ba5c46 100644 --- a/openlp/plugins/songs/lib/olpimport.py +++ b/openlp/plugins/songs/lib/olpimport.py @@ -101,8 +101,10 @@ class OpenLPSongImport(SongImport): Run the import for an OpenLP version 2 song database. """ if not self.import_source.endswith(u'.sqlite'): - return translate('SongsPlugin.OpenLPSongImport', 'The file you were' - ' trying to import is not a valid OpenLP 2.0 song database.') + self.log_error(self.import_source, + translate('SongsPlugin.OpenLPSongImport', 'The file you were ' + 'trying to import is not a valid OpenLP 2.0 song database.')) + return engine = create_engine(self.import_source) source_meta = MetaData() source_meta.reflect(engine) @@ -127,10 +129,10 @@ class OpenLPSongImport(SongImport): mapper(OldMediaFile, source_media_files_table) song_props = { 'authors': relation(OldAuthor, backref='songs', - secondary=source_authors_songs_table), + secondary=source_authors_songs_table), 'book': relation(OldBook, backref='songs'), 'topics': relation(OldTopic, backref='songs', - secondary=source_songs_topics_table) + secondary=source_songs_topics_table) } if has_media_files: song_props['media_files'] = relation(OldMediaFile, backref='songs', @@ -218,5 +220,5 @@ class OpenLPSongImport(SongImport): self.manager.save_object(new_song) song_count += 1 if self.stop_import_flag: - return False + break engine.dispose() diff --git a/openlp/plugins/songs/lib/oooimport.py b/openlp/plugins/songs/lib/oooimport.py index 47cdace26..3abc17a7a 100644 --- a/openlp/plugins/songs/lib/oooimport.py +++ b/openlp/plugins/songs/lib/oooimport.py @@ -60,7 +60,7 @@ class OooImport(SongImport): self.import_wizard.progressBar.setMaximum(self.import_source) for filename in self.import_source: if self.stop_import_flag: - return False + break filename = unicode(filename) if os.path.isfile(filename): self.open_ooo_file(filename) diff --git a/openlp/plugins/songs/lib/openlyricsimport.py b/openlp/plugins/songs/lib/openlyricsimport.py index c72f1af89..cf46d7449 100644 --- a/openlp/plugins/songs/lib/openlyricsimport.py +++ b/openlp/plugins/songs/lib/openlyricsimport.py @@ -59,7 +59,7 @@ class OpenLyricsImport(SongImport): parser = etree.XMLParser(remove_blank_text=True) for file_path in self.import_source: if self.stop_import_flag: - return False + return self.import_wizard.incrementProgressBar( WizardStrings.ImportingType % os.path.basename(file_path)) try: diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py index a5798dc33..aebb865b8 100644 --- a/openlp/plugins/songs/lib/opensongimport.py +++ b/openlp/plugins/songs/lib/opensongimport.py @@ -26,12 +26,14 @@ import logging import os +import re from zipfile import ZipFile + from lxml import objectify from lxml.etree import Error, LxmlError -import re from openlp.core.ui.wizard import WizardStrings +from openlp.plugins.songs.lib import VerseType from openlp.plugins.songs.lib.songimport import SongImport log = logging.getLogger(__name__) @@ -105,29 +107,26 @@ class OpenSongImport(SongImport): Initialise the class. """ SongImport.__init__(self, manager, **kwargs) - self.commit = True def do_import(self): """ Import either each of the files in self.import_source - each element of which can be either a single opensong file, or a zipfile containing - multiple opensong files. If `self.commit` is set False, the - import will not be committed to the database (useful for test scripts). + multiple opensong files. """ - success = True numfiles = 0 for filename in self.import_source: ext = os.path.splitext(filename)[1] if ext.lower() == u'.zip': z = ZipFile(filename, u'r') numfiles += len(z.infolist()) + z.close() else: numfiles += 1 log.debug(u'Total number of files: %d', numfiles) self.import_wizard.progressBar.setMaximum(numfiles) for filename in self.import_source: if self.stop_import_flag: - success = False break ext = os.path.splitext(filename)[1] if ext.lower() == u'.zip': @@ -135,48 +134,36 @@ class OpenSongImport(SongImport): z = ZipFile(filename, u'r') for song in z.infolist(): if self.stop_import_flag: - success = False break parts = os.path.split(song.filename) if parts[-1] == u'': - #No final part => directory + # No final part => directory continue log.info(u'Zip importing %s', parts[-1]) self.import_wizard.incrementProgressBar( WizardStrings.ImportingType % parts[-1]) - songfile = z.open(song) - if self.do_import_file(songfile) and self.commit and \ - not self.stop_import_flag: - self.finish() - else: - success = False - break + song_file = z.open(song) + self.do_import_file(song_file) + song_file.close() + z.close() else: # not a zipfile log.info(u'Direct import %s', filename) self.import_wizard.incrementProgressBar( WizardStrings.ImportingType % os.path.split(filename)[-1]) song_file = open(filename) - if self.do_import_file(song_file) and self.commit and \ - not self.stop_import_flag: - self.finish() - else: - success = False - break - if not success: - return False + self.do_import_file(song_file) + song_file.close() def do_import_file(self, file): """ - Process the OpenSong file - pass in a file-like object, - not a filename + Process the OpenSong file - pass in a file-like object, not a file path. """ self.set_defaults() try: tree = objectify.parse(file) except (Error, LxmlError): log.exception(u'Error parsing XML') - return False root = tree.getroot() fields = dir(root) decode = { @@ -196,7 +183,7 @@ class OpenSongImport(SongImport): fn_or_string(ustring) if not len(self.title): # to prevent creation of empty songs from wrong files - return False + return if u'theme' in fields and unicode(root.theme) not in self.topics: self.topics.append(unicode(root.theme)) if u'alttheme' in fields and unicode(root.alttheme) not in self.topics: @@ -206,7 +193,7 @@ class OpenSongImport(SongImport): # keep track of verses appearance order our_verse_order = [] # default verse - verse_tag = u'v' + verse_tag = VerseType.Tags[VerseType.Verse] verse_num = u'1' # for the case where song has several sections with same marker inst = 1 @@ -244,7 +231,7 @@ class OpenSongImport(SongImport): if [verse_tag, verse_num, inst] in our_verse_order \ and verses.has_key(verse_tag) \ and verses[verse_tag].has_key(verse_num): - inst = len(verses[verse_tag][verse_num])+1 + inst = len(verses[verse_tag][verse_num]) + 1 our_verse_order.append([verse_tag, verse_num, inst]) continue # number at start of line.. it's verse number @@ -293,4 +280,4 @@ class OpenSongImport(SongImport): else: log.info(u'Got order %s but not in verse tags, dropping' u'this item from presentation order', verse_def) - return True + self.finish() diff --git a/openlp/plugins/songs/lib/sofimport.py b/openlp/plugins/songs/lib/sofimport.py index 84955f33a..7f9fa16bc 100644 --- a/openlp/plugins/songs/lib/sofimport.py +++ b/openlp/plugins/songs/lib/sofimport.py @@ -88,8 +88,7 @@ class SofImport(OooImport): paragraphs = self.document.getText().createEnumeration() while paragraphs.hasMoreElements(): if self.stop_import_flag: - self.import_wizard.incrementProgressBar(u'Import cancelled', 0) - return False + return paragraph = paragraphs.nextElement() if paragraph.supportsService("com.sun.star.text.Paragraph"): self.process_paragraph(paragraph) diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index fcfa2f44b..be0fae589 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -33,7 +33,6 @@ import logging import os import re -from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib import VerseType from openlp.plugins.songs.lib.songimport import SongImport @@ -80,18 +79,16 @@ class SongBeamerImport(SongImport): """ self.import_wizard.progressBar.setMaximum(len(self.import_source)) if not isinstance(self.import_source, list): - return False + return for file in self.import_source: # TODO: check that it is a valid SongBeamer file if self.stop_import_flag: - return False + return self.set_defaults() self.current_verse = u'' self.current_verse_type = VerseType.Tags[VerseType.Verse] read_verses = False file_name = os.path.split(file)[1] - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % file_name, 0) if os.path.isfile(file): detect_file = open(file, u'r') details = chardet.detect(detect_file.read(2048)) @@ -100,7 +97,7 @@ class SongBeamerImport(SongImport): songData = infile.readlines() infile.close() else: - return False + continue self.title = file_name.split('.sng')[0] read_verses = False for line in songData: @@ -127,10 +124,7 @@ class SongBeamerImport(SongImport): if self.current_verse: self.replace_html_tags() self.add_verse(self.current_verse, self.current_verse_type) - if self.check_complete(): - self.finish() - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % file_name) + self.finish() def replace_html_tags(self): """ @@ -288,5 +282,4 @@ class SongBeamerImport(SongImport): if marks[1].isdigit(): self.current_verse_type += marks[1] return True - else: - return False + return False diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py index 5bc1f15d0..87aa09bcb 100644 --- a/openlp/plugins/songs/lib/songimport.py +++ b/openlp/plugins/songs/lib/songimport.py @@ -29,6 +29,7 @@ import re from PyQt4 import QtCore from openlp.core.lib import Receiver, translate +from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib import clean_song, VerseType from openlp.plugins.songs.lib.db import Song, Author, Topic, Book, MediaFile from openlp.plugins.songs.lib.ui import SongStrings @@ -66,6 +67,7 @@ class SongImport(QtCore.QObject): self.song = None self.stop_import_flag = False self.set_defaults() + self.import_error_log = [] QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'openlp_stop_wizard'), self.stop_import) @@ -94,6 +96,21 @@ class SongImport(QtCore.QObject): self.copyright_string = unicode(translate( 'SongsPlugin.SongImport', 'copyright')) + def log_error(self, filepath, reason=None): + """ + This should be called, when a song could not be imported. + + ``filepath`` + This should be the file path if ``self.import_source`` is a list + with different files. If it is not a list, but a single file (for + instance a database), then this should be the song's title. + + ``reason`` + The reason, why the import failed. The string should be as + informative as possible. + """ + self.import_error_log.append((filepath, unicode(reason))) + def stop_import(self): """ Sets the flag for importers to stop their import @@ -249,9 +266,15 @@ class SongImport(QtCore.QObject): """ All fields have been set to this song. Write the song to disk. """ + if not self.check_complete(): + self.set_defaults() + return log.info(u'committing song %s to database', self.title) song = Song() song.title = self.title + self.import_wizard.incrementProgressBar( + WizardStrings.ImportingType % song.title) + print WizardStrings.ImportingType song.alternate_title = self.alternate_title # Values will be set when cleaning the song. song.search_title = u'' diff --git a/openlp/plugins/songs/lib/songshowplusimport.py b/openlp/plugins/songs/lib/songshowplusimport.py index c7a6b6a3c..28f07ea31 100644 --- a/openlp/plugins/songs/lib/songshowplusimport.py +++ b/openlp/plugins/songs/lib/songshowplusimport.py @@ -32,6 +32,7 @@ import logging import struct from openlp.core.ui.wizard import WizardStrings +from openlp.plugins.songs.lib import VerseType from openlp.plugins.songs.lib.songimport import SongImport TITLE = 1 @@ -97,82 +98,83 @@ class SongShowPlusImport(SongImport): Receive a single file or a list of files to import. """ if isinstance(self.import_source, list): - self.import_wizard.progressBar.setMaximum(len(self.import_source)) - for file in self.import_source: - author = u'' - self.sspVerseOrderList = [] - otherCount = 0 - otherList = {} - file_name = os.path.split(file)[1] - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % file_name, 0) - songData = open(file, 'rb') - while True: - blockKey, = struct.unpack("I", songData.read(4)) - # The file ends with 4 NUL's - if blockKey == 0: - break - nextBlockStarts, = struct.unpack("I", songData.read(4)) - if blockKey == VERSE or blockKey == CHORUS: - null, verseNo, = struct.unpack("BB", songData.read(2)) - elif blockKey == CUSTOM_VERSE: - null, verseNameLength, = struct.unpack("BB", - songData.read(2)) - verseName = songData.read(verseNameLength) - lengthDescriptorSize, = struct.unpack("B", songData.read(1)) - # Detect if/how long the length descriptor is - if lengthDescriptorSize == 12: - lengthDescriptor, = struct.unpack("I", songData.read(4)) - elif lengthDescriptorSize == 2: - lengthDescriptor = 1 - elif lengthDescriptorSize == 9: - lengthDescriptor = 0 - else: - lengthDescriptor, = struct.unpack("B", songData.read(1)) - data = songData.read(lengthDescriptor) - if blockKey == TITLE: - self.title = unicode(data, u'cp1252') - elif blockKey == AUTHOR: - authors = data.split(" / ") - for author in authors: - if author.find(",") !=-1: - authorParts = author.split(", ") - author = authorParts[1] + " " + authorParts[0] - self.parse_author(unicode(author, u'cp1252')) - elif blockKey == COPYRIGHT: - self.add_copyright(unicode(data, u'cp1252')) - elif blockKey == CCLI_NO: - self.ccli_number = int(data) - elif blockKey == VERSE: - self.add_verse(unicode(data, u'cp1252'), - "V%s" % verseNo) - elif blockKey == CHORUS: - self.add_verse(unicode(data, u'cp1252'), - "C%s" % verseNo) - elif blockKey == TOPIC: - self.topics.append(unicode(data, u'cp1252')) - elif blockKey == COMMENTS: - self.comments = unicode(data, u'cp1252') - elif blockKey == VERSE_ORDER: - verseTag = self.toOpenLPVerseTag(data, True) - if verseTag: - self.sspVerseOrderList.append(unicode(verseTag, - u'cp1252')) - elif blockKey == SONG_BOOK: - self.song_book_name = unicode(data, u'cp1252') - elif blockKey == SONG_NUMBER: - self.song_number = ord(data) - elif blockKey == CUSTOM_VERSE: - verseTag = self.toOpenLPVerseTag(verseName) - self.add_verse(unicode(data, u'cp1252'), verseTag) - else: - log.debug("Unrecognised blockKey: %s, data: %s" - %(blockKey, data)) - self.verse_order_list = self.sspVerseOrderList - songData.close() - self.finish() - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % file_name) + return + self.import_wizard.progressBar.setMaximum(len(self.import_source)) + for file in self.import_source: + author = u'' + self.sspVerseOrderList = [] + otherCount = 0 + otherList = {} + file_name = os.path.split(file)[1] + self.import_wizard.incrementProgressBar( + WizardStrings.ImportingType % file_name, 0) + songData = open(file, 'rb') + while True: + blockKey, = struct.unpack("I", songData.read(4)) + # The file ends with 4 NUL's + if blockKey == 0: + break + nextBlockStarts, = struct.unpack("I", songData.read(4)) + if blockKey == VERSE or blockKey == CHORUS: + null, verseNo, = struct.unpack("BB", songData.read(2)) + elif blockKey == CUSTOM_VERSE: + null, verseNameLength, = struct.unpack("BB", + songData.read(2)) + verseName = songData.read(verseNameLength) + lengthDescriptorSize, = struct.unpack("B", songData.read(1)) + # Detect if/how long the length descriptor is + if lengthDescriptorSize == 12: + lengthDescriptor, = struct.unpack("I", songData.read(4)) + elif lengthDescriptorSize == 2: + lengthDescriptor = 1 + elif lengthDescriptorSize == 9: + lengthDescriptor = 0 + else: + lengthDescriptor, = struct.unpack("B", songData.read(1)) + data = songData.read(lengthDescriptor) + if blockKey == TITLE: + self.title = unicode(data, u'cp1252') + elif blockKey == AUTHOR: + authors = data.split(" / ") + for author in authors: + if author.find(",") !=-1: + authorParts = author.split(", ") + author = authorParts[1] + " " + authorParts[0] + self.parse_author(unicode(author, u'cp1252')) + elif blockKey == COPYRIGHT: + self.add_copyright(unicode(data, u'cp1252')) + elif blockKey == CCLI_NO: + self.ccli_number = int(data) + elif blockKey == VERSE: + self.add_verse(unicode(data, u'cp1252'), + "V%s" % verseNo) + elif blockKey == CHORUS: + self.add_verse(unicode(data, u'cp1252'), + "C%s" % verseNo) + elif blockKey == TOPIC: + self.topics.append(unicode(data, u'cp1252')) + elif blockKey == COMMENTS: + self.comments = unicode(data, u'cp1252') + elif blockKey == VERSE_ORDER: + verseTag = self.toOpenLPVerseTag(data, True) + if verseTag: + self.sspVerseOrderList.append(unicode(verseTag, + u'cp1252')) + elif blockKey == SONG_BOOK: + self.song_book_name = unicode(data, u'cp1252') + elif blockKey == SONG_NUMBER: + self.song_number = ord(data) + elif blockKey == CUSTOM_VERSE: + verseTag = self.toOpenLPVerseTag(verseName) + self.add_verse(unicode(data, u'cp1252'), verseTag) + else: + log.debug("Unrecognised blockKey: %s, data: %s" + %(blockKey, data)) + self.verse_order_list = self.sspVerseOrderList + songData.close() + self.finish() + self.import_wizard.incrementProgressBar( + WizardStrings.ImportingType % file_name) def toOpenLPVerseTag(self, verseName, ignoreUnique=False): if verseName.find(" ") != -1: From c7843012e961d262bf48e7e957cb2a3f7cb9da6f Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 18 Apr 2011 16:57:37 +0200 Subject: [PATCH 40/94] fixed bug #76330 Fixes: https://launchpad.net/bugs/7633099 --- openlp/core/ui/firsttimeform.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/openlp/core/ui/firsttimeform.py b/openlp/core/ui/firsttimeform.py index dc1932015..dade26cf9 100644 --- a/openlp/core/ui/firsttimeform.py +++ b/openlp/core/ui/firsttimeform.py @@ -140,6 +140,8 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard): return FirstTimePage.Songs elif self.currentId() == FirstTimePage.Progress: return -1 + elif self.currentId() == FirstTimePage.NoInternet: + return FirstTimePage.Progress else: return self.currentId() + 1 @@ -147,11 +149,7 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard): """ Detects Page changes and updates as approprate. """ - if pageId == FirstTimePage.NoInternet: - self.finishButton.setVisible(True) - self.finishButton.setEnabled(True) - self.nextButton.setVisible(False) - elif pageId == FirstTimePage.Defaults: + if pageId == FirstTimePage.Defaults: self.themeComboBox.clear() for iter in xrange(self.themesListWidget.count()): item = self.themesListWidget.item(iter) From 3c8568443be04767f931e304506a4916f76ed688 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 18 Apr 2011 16:30:32 +0100 Subject: [PATCH 41/94] Delete the correct item Fixes: https://launchpad.net/bugs/764651 --- openlp/core/ui/settingsform.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openlp/core/ui/settingsform.py b/openlp/core/ui/settingsform.py index 949d907b4..9f3d5208f 100644 --- a/openlp/core/ui/settingsform.py +++ b/openlp/core/ui/settingsform.py @@ -82,7 +82,9 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog): item_name.setIcon(icon) self.settingListWidget.insertItem(location, item_name) else: - self.stackedLayout.takeAt(location) + # add then remove tab to stop th UI displaying it even if + # it is not required. + self.stackedLayout.takeAt(pos) def accept(self): """ From 133145d5c226c4eff5ccb8905fe452c9f8010c29 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 18 Apr 2011 16:31:20 +0100 Subject: [PATCH 42/94] Fix comment --- openlp/core/ui/settingsform.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openlp/core/ui/settingsform.py b/openlp/core/ui/settingsform.py index 9f3d5208f..1967412f5 100644 --- a/openlp/core/ui/settingsform.py +++ b/openlp/core/ui/settingsform.py @@ -75,6 +75,7 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog): Add a tab to the form at a specific location """ log.debug(u'Inserting %s tab' % tab.tabTitle) + # add the tab to get it to display in the correct part of the screen pos = self.stackedLayout.addWidget(tab) if is_active: item_name = QtGui.QListWidgetItem(tab.tabTitleVisible) @@ -82,7 +83,7 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog): item_name.setIcon(icon) self.settingListWidget.insertItem(location, item_name) else: - # add then remove tab to stop th UI displaying it even if + # then remove tab to stop the UI displaying it even if # it is not required. self.stackedLayout.takeAt(pos) From a530851124840e0f4d4547b5d85d3874b9afd882 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 18 Apr 2011 18:46:22 +0200 Subject: [PATCH 43/94] added error logger methods --- openlp/plugins/songs/forms/songimportform.py | 14 +++++--- openlp/plugins/songs/lib/cclifileimport.py | 10 +++--- openlp/plugins/songs/lib/easislidesimport.py | 12 +++---- openlp/plugins/songs/lib/ewimport.py | 3 +- .../plugins/songs/lib/foilpresenterimport.py | 3 ++ openlp/plugins/songs/lib/olp1import.py | 3 +- openlp/plugins/songs/lib/olpimport.py | 12 +++---- openlp/plugins/songs/lib/openlyricsimport.py | 3 ++ openlp/plugins/songs/lib/opensongimport.py | 11 +++--- openlp/plugins/songs/lib/songbeamerimport.py | 11 ++++-- openlp/plugins/songs/lib/songimport.py | 35 ++++++++++++++----- .../plugins/songs/lib/songshowplusimport.py | 22 +++++------- openlp/plugins/songs/lib/ui.py | 3 ++ openlp/plugins/songs/lib/wowimport.py | 24 +++++-------- 14 files changed, 97 insertions(+), 69 deletions(-) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 4986c26a4..e3b44237f 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -741,15 +741,19 @@ class SongImportForm(OpenLPWizard): filenames=self.getListOfFiles(self.foilPresenterFileListWidget) ) test = importer.do_import() + importer.write_error_report() if isinstance(test, bool): raise received_boolean if importer.stop_import_flag: - print importer.import_error_log - print u'cancelled' + self.progressLabel.setText(translate('SongsPlugin.SongImportForm', + 'Song import has been cancelled.')) elif importer.import_error_log: - self.progressLabel.setText(self.progressLabel.setText( - translate('SongsPlugin.SongImportForm', - 'Your song import failed.'))) + error_path = importer.write_error_report() + self.progressLabel.setTextInteractionFlags( + QtCore.Qt.TextSelectableByMouse) + self.progressLabel.setText(unicode(translate( + 'SongsPlugin.SongImportForm', 'Your song import failed. See ' + 'the error report for more details:\n%s')) % error_path) else: self.progressLabel.setText(WizardStrings.FinishedImport) diff --git a/openlp/plugins/songs/lib/cclifileimport.py b/openlp/plugins/songs/lib/cclifileimport.py index 35e138a19..d304b0241 100644 --- a/openlp/plugins/songs/lib/cclifileimport.py +++ b/openlp/plugins/songs/lib/cclifileimport.py @@ -79,10 +79,12 @@ class CCLIFileImport(SongImport): ext = os.path.splitext(filename)[1] if ext.lower() == u'.usr': log.info(u'SongSelect .usr format file found: %s', filename) - self.do_import_usr_file(lines) + if not self.do_import_usr_file(lines): + self.log_error(filename) elif ext.lower() == u'.txt': log.info(u'SongSelect .txt format file found: %s', filename) - self.do_import_txt_file(lines) + if not self.do_import_txt_file(lines): + self.log_error(filename) else: self.log_error(filename, translate('SongsPlugin.CCLIFileImport', @@ -214,7 +216,7 @@ class CCLIFileImport(SongImport): else: self.add_author(author) self.topics = [topic.strip() for topic in song_topics.split(u'/t')] - self.finish() + return self.finish() def do_import_txt_file(self, textList): """ @@ -331,4 +333,4 @@ class CCLIFileImport(SongImport): author_list = song_author.split(u'|') # Clean spaces before and after author names. [self.add_author(author_name.strip()) for author_name in author_list] - self.finish() + return self.finish() diff --git a/openlp/plugins/songs/lib/easislidesimport.py b/openlp/plugins/songs/lib/easislidesimport.py index f2b38c26e..0c710377a 100644 --- a/openlp/plugins/songs/lib/easislidesimport.py +++ b/openlp/plugins/songs/lib/easislidesimport.py @@ -70,7 +70,6 @@ class EasiSlidesImport(SongImport): self._parse_song(song) def _parse_song(self, song): - self.set_defaults() self._success = True self._add_unicode_attribute(u'title', song.Title1, True) self._add_unicode_attribute(u'alternate_title', song.Title2) @@ -84,7 +83,10 @@ class EasiSlidesImport(SongImport): self._add_unicode_attribute(u'song_book_name', song.BookReference) self._parse_and_add_lyrics(song) if self._success: - self.finish() + if not self.finish(): + self.log_error(song.Title1 if song.Title1 else u'') + else: + self.set_defaults() def _add_unicode_attribute(self, self_attribute, import_attribute, mandatory=False): @@ -116,10 +118,8 @@ class EasiSlidesImport(SongImport): def _add_authors(self, song): try: authors = unicode(song.Writer).split(u',') - for author in authors: - author = author.strip() - if len(author): - self.authors.append(author) + self.authors = \ + [author.strip() for author in authors if author.strip()] except UnicodeDecodeError: log.exception(u'Unicode decode error while decoding Writer') self._success = False diff --git a/openlp/plugins/songs/lib/ewimport.py b/openlp/plugins/songs/lib/ewimport.py index 66f6eec42..85a0b88c2 100644 --- a/openlp/plugins/songs/lib/ewimport.py +++ b/openlp/plugins/songs/lib/ewimport.py @@ -263,7 +263,8 @@ class EasyWorshipSongImport(SongImport): verse.strip(), VerseType.Tags[VerseType.Verse]) if self.stop_import_flag: break - self.finish() + if not self.finish(): + self.log_error(self.import_source) db_file.close() self.memo_file.close() diff --git a/openlp/plugins/songs/lib/foilpresenterimport.py b/openlp/plugins/songs/lib/foilpresenterimport.py index dd98bc415..dcbc4367d 100644 --- a/openlp/plugins/songs/lib/foilpresenterimport.py +++ b/openlp/plugins/songs/lib/foilpresenterimport.py @@ -97,6 +97,7 @@ from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib import clean_song, VerseType from openlp.plugins.songs.lib.songimport import SongImport from openlp.plugins.songs.lib.db import Author, Book, Song, Topic +from openlp.plugins.songs.lib.ui import SongStrings from openlp.plugins.songs.lib.xml import SongXML log = logging.getLogger(__name__) @@ -128,8 +129,10 @@ class FoilPresenterImport(SongImport): parsed_file = etree.parse(file_path, parser) xml = unicode(etree.tostring(parsed_file)) if self.FoilPresenter.xml_to_song(xml) is None: + self.log_error(file_path, SongStrings.NoXML) log.debug(u'File could not be imported: %s' % file_path) except etree.XMLSyntaxError: + self.log_error(file_path, SongStrings.XMLSyntaxError) log.exception(u'XML syntax error in file %s' % file_path) diff --git a/openlp/plugins/songs/lib/olp1import.py b/openlp/plugins/songs/lib/olp1import.py index 765794d05..26fdf19a9 100644 --- a/openlp/plugins/songs/lib/olp1import.py +++ b/openlp/plugins/songs/lib/olp1import.py @@ -143,7 +143,8 @@ class OpenLP1SongImport(SongImport): break if self.stop_import_flag: break - self.finish() + if not self.finish(): + self.log_error(self.import_source) def get_encoding(self): """ diff --git a/openlp/plugins/songs/lib/olpimport.py b/openlp/plugins/songs/lib/olpimport.py index d89ba5c46..c69e5ded0 100644 --- a/openlp/plugins/songs/lib/olpimport.py +++ b/openlp/plugins/songs/lib/olpimport.py @@ -155,15 +155,9 @@ class OpenLPSongImport(SongImport): mapper(OldTopic, source_topics_table) source_songs = self.source_session.query(OldSong).all() - song_total = len(source_songs) if self.import_wizard: - self.import_wizard.progressBar.setMaximum(song_total) - song_count = 1 + self.import_wizard.progressBar.setMaximum(len(source_songs)) for song in source_songs: - if self.import_wizard: - self.import_wizard.incrementProgressBar( - unicode(translate('SongsPlugin.OpenLPSongImport', - 'Importing song %d of %d.')) % (song_count, song_total)) new_song = Song() new_song.title = song.title if has_media_files and hasattr(song, 'alternate_title'): @@ -218,7 +212,9 @@ class OpenLPSongImport(SongImport): # file_name=media_file.file_name)) clean_song(self.manager, new_song) self.manager.save_object(new_song) - song_count += 1 + if self.import_wizard: + self.import_wizard.incrementProgressBar( + WizardStrings.ImportingType % new_song.title) if self.stop_import_flag: break engine.dispose() diff --git a/openlp/plugins/songs/lib/openlyricsimport.py b/openlp/plugins/songs/lib/openlyricsimport.py index cf46d7449..687a949af 100644 --- a/openlp/plugins/songs/lib/openlyricsimport.py +++ b/openlp/plugins/songs/lib/openlyricsimport.py @@ -35,6 +35,7 @@ from lxml import etree from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib.songimport import SongImport +from openlp.plugins.songs.lib.ui import SongStrings from openlp.plugins.songs.lib import OpenLyrics log = logging.getLogger(__name__) @@ -69,5 +70,7 @@ class OpenLyricsImport(SongImport): xml = unicode(etree.tostring(parsed_file)) if self.openLyrics.xml_to_song(xml) is None: log.debug(u'File could not be imported: %s' % file_path) + self.log_error(file_path, SongStrings.NoXML) except etree.XMLSyntaxError: log.exception(u'XML syntax error in file %s' % file_path) + self.log_error(file_path, SongStrings.XMLSyntaxError) diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py index aebb865b8..7cff1522f 100644 --- a/openlp/plugins/songs/lib/opensongimport.py +++ b/openlp/plugins/songs/lib/opensongimport.py @@ -35,6 +35,7 @@ from lxml.etree import Error, LxmlError from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib import VerseType from openlp.plugins.songs.lib.songimport import SongImport +from openlp.plugins.songs.lib.ui import SongStrings log = logging.getLogger(__name__) @@ -181,9 +182,6 @@ class OpenSongImport(SongImport): setattr(self, fn_or_string, ustring) else: fn_or_string(ustring) - if not len(self.title): - # to prevent creation of empty songs from wrong files - return if u'theme' in fields and unicode(root.theme) not in self.topics: self.topics.append(unicode(root.theme)) if u'alttheme' in fields and unicode(root.alttheme) not in self.topics: @@ -274,10 +272,11 @@ class OpenSongImport(SongImport): verse_tag = verse_def verse_num = u'1' verse_def = u'%s%s' % (verse_tag, verse_num) - if verses.has_key(verse_tag) \ - and verses[verse_tag].has_key(verse_num): + if verses.has_key(verse_tag) and \ + verses[verse_tag].has_key(verse_num): self.verse_order_list.append(verse_def) else: log.info(u'Got order %s but not in verse tags, dropping' u'this item from presentation order', verse_def) - self.finish() + if not self.finish(): + self.log_error(file.name) diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index be0fae589..2813240a4 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -35,6 +35,7 @@ import re from openlp.plugins.songs.lib import VerseType from openlp.plugins.songs.lib.songimport import SongImport +from openlp.plugins.songs.lib.ui import SongStrings log = logging.getLogger(__name__) @@ -72,6 +73,11 @@ class SongBeamerImport(SongImport): Initialise the Song Beamer importer. """ SongImport.__init__(self, manager, **kwargs) + self.log_error(u'/home/andreas/1.sng', u'aaaa') + self.log_error(u'/home/andreas/4.sng', u'asdfsdfsadfds') + self.log_error(u'/home/andreas/3.sng', u'asdf3q4') + self.log_error(u'/home/andreas/2.sng', u'sadfasdf') + self.log_error(u'/home/andreas/ä.sng', u'kqwjw32w3') def do_import(self): """ @@ -124,7 +130,8 @@ class SongBeamerImport(SongImport): if self.current_verse: self.replace_html_tags() self.add_verse(self.current_verse, self.current_verse_type) - self.finish() + if not self.finish(): + self.log_error(file) def replace_html_tags(self): """ @@ -184,7 +191,7 @@ class SongBeamerImport(SongImport): elif tag_val[0] == u'#Bible': pass elif tag_val[0] == u'#Categories': - self.topics = line.split(',') + self.topics = tag_val[1].split(',') elif tag_val[0] == u'#CCLI': self.ccli_number = tag_val[1] elif tag_val[0] == u'#Chords': diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py index 87aa09bcb..80eebde43 100644 --- a/openlp/plugins/songs/lib/songimport.py +++ b/openlp/plugins/songs/lib/songimport.py @@ -23,13 +23,17 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### - +import codecs +import datetime import logging +import os import re + from PyQt4 import QtCore from openlp.core.lib import Receiver, translate from openlp.core.ui.wizard import WizardStrings +from openlp.core.utils import AppLocation from openlp.plugins.songs.lib import clean_song, VerseType from openlp.plugins.songs.lib.db import Song, Author, Topic, Book, MediaFile from openlp.plugins.songs.lib.ui import SongStrings @@ -67,7 +71,7 @@ class SongImport(QtCore.QObject): self.song = None self.stop_import_flag = False self.set_defaults() - self.import_error_log = [] + self.error_log = [] QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'openlp_stop_wizard'), self.stop_import) @@ -96,7 +100,7 @@ class SongImport(QtCore.QObject): self.copyright_string = unicode(translate( 'SongsPlugin.SongImport', 'copyright')) - def log_error(self, filepath, reason=None): + def log_error(self, filepath, reason=SongStrings.SongIncomplete): """ This should be called, when a song could not be imported. @@ -109,7 +113,22 @@ class SongImport(QtCore.QObject): The reason, why the import failed. The string should be as informative as possible. """ - self.import_error_log.append((filepath, unicode(reason))) + self.error_log.append((filepath, unicode(reason))) + + def write_error_report(self): + """ + Creates a error import containing all error messages. + """ + report_path = os.path.join(AppLocation.get_data_path(), unicode(translate( + 'SongsPlugin.SongImport','song_import_report (%s).txt')) % + datetime.datetime.now().strftime(u'%Y-%m-%dT%H:%M:%S')) + report_file = codecs.open(report_path, u'w', u'utf-8') + report_file.write(translate('SongsPlugin.SongImport', + 'The following songs could not be imported:\n')) + for filepath, reason in self.error_log: + report_file.write(u'- %s (%s)\n' % (filepath, reason)) + report_file.close() + return report_path def stop_import(self): """ @@ -257,7 +276,7 @@ class SongImport(QtCore.QObject): Author not checked here, if no author then "Author unknown" is automatically added """ - if self.title == u'' or len(self.verses) == 0: + if not self.title or not len(self.verses): return False else: return True @@ -268,13 +287,12 @@ class SongImport(QtCore.QObject): """ if not self.check_complete(): self.set_defaults() - return + return False log.info(u'committing song %s to database', self.title) song = Song() song.title = self.title self.import_wizard.incrementProgressBar( WizardStrings.ImportingType % song.title) - print WizardStrings.ImportingType song.alternate_title = self.alternate_title # Values will be set when cleaning the song. song.search_title = u'' @@ -331,7 +349,7 @@ class SongImport(QtCore.QObject): publisher=self.song_book_pub) song.book = song_book for topictext in self.topics: - if len(topictext) == 0: + if not topictext: continue topic = self.manager.get_object_filtered(Topic, Topic.name == topictext) @@ -341,6 +359,7 @@ class SongImport(QtCore.QObject): clean_song(self.manager, song) self.manager.save_object(song) self.set_defaults() + return True def print_song(self): """ diff --git a/openlp/plugins/songs/lib/songshowplusimport.py b/openlp/plugins/songs/lib/songshowplusimport.py index 28f07ea31..27620d11a 100644 --- a/openlp/plugins/songs/lib/songshowplusimport.py +++ b/openlp/plugins/songs/lib/songshowplusimport.py @@ -169,12 +169,11 @@ class SongShowPlusImport(SongImport): self.add_verse(unicode(data, u'cp1252'), verseTag) else: log.debug("Unrecognised blockKey: %s, data: %s" - %(blockKey, data)) + % (blockKey, data)) self.verse_order_list = self.sspVerseOrderList songData.close() - self.finish() - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % file_name) + if not self.finish(): + self.log_error(file) def toOpenLPVerseTag(self, verseName, ignoreUnique=False): if verseName.find(" ") != -1: @@ -186,22 +185,19 @@ class SongShowPlusImport(SongImport): verseNumber = "1" verseType = verseType.lower() if verseType == "verse": - verseTag = "V" + verseTag = VerseType.Tags[VerseType.Verse] elif verseType == "chorus": - verseTag = "C" + verseTag = VerseType.Tags[VerseType.Chorus] elif verseType == "bridge": - verseTag = "B" + verseTag = VerseType.Tags[VerseType.Bridge] elif verseType == "pre-chorus": - verseTag = "P" - elif verseType == "bridge": - verseTag = "B" + verseTag = VerseType.Tags[VerseType.PreChorus] else: if not self.otherList.has_key(verseName): if ignoreUnique: return None self.otherCount = self.otherCount + 1 self.otherList[verseName] = str(self.otherCount) - verseTag = "O" + verseTag = VerseType.Tags[VerseType.Other] verseNumber = self.otherList[verseName] - verseTag = verseTag + verseNumber - return verseTag + return verseTag + verseNumber diff --git a/openlp/plugins/songs/lib/ui.py b/openlp/plugins/songs/lib/ui.py index 0a389087e..e9dfd0f13 100644 --- a/openlp/plugins/songs/lib/ui.py +++ b/openlp/plugins/songs/lib/ui.py @@ -38,8 +38,11 @@ class SongStrings(object): Authors = translate('OpenLP.Ui', 'Authors', 'Plural') AuthorUnknown = u'Author Unknown' # Used to populate the database. CopyrightSymbol = translate('OpenLP.Ui', '\xa9', 'Copyright symbol.') + NoXML = translate('OpenLP.Ui', 'Song does not contain any XML') SongBook = translate('OpenLP.Ui', 'Song Book', 'Singular') SongBooks = translate('OpenLP.Ui', 'Song Books', 'Plural') + SongIncomplete = translate('OpenLP.Ui','Title and/or verses not found') SongMaintenance = translate('OpenLP.Ui', 'Song Maintenance') Topic = translate('OpenLP.Ui', 'Topic', 'Singular') Topics = translate('OpenLP.Ui', 'Topics', 'Plural') + XMLSyntaxError = translate('OpenLP.Ui', 'XML syntax error') diff --git a/openlp/plugins/songs/lib/wowimport.py b/openlp/plugins/songs/lib/wowimport.py index e6495a2b9..661e6787d 100644 --- a/openlp/plugins/songs/lib/wowimport.py +++ b/openlp/plugins/songs/lib/wowimport.py @@ -105,11 +105,7 @@ class WowImport(SongImport): if isinstance(self.import_source, list): self.import_wizard.progressBar.setMaximum(len(self.import_source)) for file in self.import_source: - author = u'' - copyright = u'' file_name = os.path.split(file)[1] - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % file_name, 0) # Get the song title self.title = file_name.rpartition(u'.')[0] songData = open(file, 'rb') @@ -129,7 +125,7 @@ class WowImport(SongImport): self.line_text = unicode( songData.read(ord(songData.read(1))), u'cp1252') songData.seek(1, os.SEEK_CUR) - if block_text != u'': + if block_text: block_text += u'\n' block_text += self.line_text self.lines_to_read -= 1 @@ -143,16 +139,14 @@ class WowImport(SongImport): self.add_verse(block_text, block_type) # Now to extract the author author_length = ord(songData.read(1)) - if author_length != 0: - author = unicode(songData.read(author_length), u'cp1252') + if author_length: + self.parse_author( + unicode(songData.read(author_length), u'cp1252')) # Finally the copyright copyright_length = ord(songData.read(1)) - if copyright_length != 0: - copyright = unicode( - songData.read(copyright_length), u'cp1252') - self.parse_author(author) - self.add_copyright(copyright) + if copyright_length: + self.add_copyright(unicode( + songData.read(copyright_length), u'cp1252')) songData.close() - self.finish() - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % file_name) + if not self.finish(): + self.log_error(file) From 16fa78bbe32c12a3272240bf13ff36b9c4a21e31 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 18 Apr 2011 19:15:41 +0200 Subject: [PATCH 44/94] fixes --- openlp/plugins/songs/forms/songimportform.py | 3 +-- openlp/plugins/songs/lib/foilpresenterimport.py | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index e3b44237f..36fdf0181 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -741,13 +741,12 @@ class SongImportForm(OpenLPWizard): filenames=self.getListOfFiles(self.foilPresenterFileListWidget) ) test = importer.do_import() - importer.write_error_report() if isinstance(test, bool): raise received_boolean if importer.stop_import_flag: self.progressLabel.setText(translate('SongsPlugin.SongImportForm', 'Song import has been cancelled.')) - elif importer.import_error_log: + elif importer.error_log: error_path = importer.write_error_report() self.progressLabel.setTextInteractionFlags( QtCore.Qt.TextSelectableByMouse) diff --git a/openlp/plugins/songs/lib/foilpresenterimport.py b/openlp/plugins/songs/lib/foilpresenterimport.py index dcbc4367d..6f4164d17 100644 --- a/openlp/plugins/songs/lib/foilpresenterimport.py +++ b/openlp/plugins/songs/lib/foilpresenterimport.py @@ -237,6 +237,7 @@ class FoilPresenter(object): self._process_topics(foilpresenterfolie, song) clean_song(self.manager, song) self.manager.save_object(song) + return song.id def _child(self, element): """ From 757933c448480daa964e6944c42f996ee768adfc Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 18 Apr 2011 20:03:41 +0200 Subject: [PATCH 45/94] clean ups --- openlp/plugins/songs/forms/songimportform.py | 4 +--- openlp/plugins/songs/lib/ewimport.py | 14 +++++++------- openlp/plugins/songs/lib/olp1import.py | 10 ++++------ openlp/plugins/songs/lib/olpimport.py | 4 ++-- openlp/plugins/songs/lib/opensongimport.py | 4 ++-- openlp/plugins/songs/lib/songbeamerimport.py | 16 ++++++---------- openlp/plugins/songs/lib/songshowplusimport.py | 1 - openlp/plugins/songs/lib/wowimport.py | 2 +- 8 files changed, 23 insertions(+), 32 deletions(-) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 36fdf0181..73fa7c79d 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -740,9 +740,7 @@ class SongImportForm(OpenLPWizard): importer = self.plugin.importSongs(SongFormat.FoilPresenter, filenames=self.getListOfFiles(self.foilPresenterFileListWidget) ) - test = importer.do_import() - if isinstance(test, bool): - raise received_boolean + importer.do_import() if importer.stop_import_flag: self.progressLabel.setText(translate('SongsPlugin.SongImportForm', 'Song import has been cancelled.')) diff --git a/openlp/plugins/songs/lib/ewimport.py b/openlp/plugins/songs/lib/ewimport.py index 85a0b88c2..784558c5b 100644 --- a/openlp/plugins/songs/lib/ewimport.py +++ b/openlp/plugins/songs/lib/ewimport.py @@ -143,12 +143,12 @@ class EasyWorshipSongImport(SongImport): # Open the DB and MB files if they exist import_source_mb = self.import_source.replace('.DB', '.MB') if not os.path.isfile(self.import_source): - return False + return if not os.path.isfile(import_source_mb): - return False + return db_size = os.path.getsize(self.import_source) if db_size < 0x800: - return False + return db_file = open(self.import_source, 'rb') self.memo_file = open(import_source_mb, 'rb') # Don't accept files that are clearly not paradox files @@ -157,7 +157,7 @@ class EasyWorshipSongImport(SongImport): if header_size != 0x800 or block_size < 1 or block_size > 4: db_file.close() self.memo_file.close() - return False + return # Take a stab at how text is encoded self.encoding = u'cp1252' db_file.seek(106) @@ -184,7 +184,7 @@ class EasyWorshipSongImport(SongImport): self.encoding = u'cp874' self.encoding = retrieve_windows_encoding(self.encoding) if not self.encoding: - return False + return # There does not appear to be a _reliable_ way of getting the number # of songs/records, so let's use file blocks for measuring progress. total_blocks = (db_size - header_size) / (block_size * 1024) @@ -242,7 +242,7 @@ class EasyWorshipSongImport(SongImport): if copy: self.copyright += u', ' self.copyright += \ - unicode(translate('SongsPlugin.ImportWizardForm', + unicode(translate('SongsPlugin.EasyWorshipSongImport', 'Administered by %s')) % admin if ccli: self.ccli_number = ccli @@ -269,7 +269,7 @@ class EasyWorshipSongImport(SongImport): self.memo_file.close() def find_field(self, field_name): - return [i for i, x in enumerate(self.field_descs) \ + return [i for i, x in enumerate(self.field_descs) if x.name == field_name][0] def set_record_struct(self, field_descs): diff --git a/openlp/plugins/songs/lib/olp1import.py b/openlp/plugins/songs/lib/olp1import.py index 26fdf19a9..b282a8dd7 100644 --- a/openlp/plugins/songs/lib/olp1import.py +++ b/openlp/plugins/songs/lib/olp1import.py @@ -64,16 +64,14 @@ class OpenLP1SongImport(SongImport): """ if not self.import_source.endswith(u'.olp'): self.log_error(self.import_source, - translate('SongsPlugin.OpenLP1SongImport', 'The file you ' - 'were trying to import is not a valid openlp.org 1.x song ' - 'database.')) + translate('SongsPlugin.OpenLP1SongImport', + 'Not a valid openlp.org 1.x song database.')) return encoding = self.get_encoding() if not encoding: self.log_error(self.import_source, - translate('SongsPlugin.OpenLP1SongImport', 'The file you ' - 'were trying to import is not a valid openlp.org 1.x song ' - 'database.')) + translate('SongsPlugin.OpenLP1SongImport', + 'Not a valid openlp.org 1.x song database.')) return # Connect to the database connection = sqlite.connect(self.import_source, mode=0444, diff --git a/openlp/plugins/songs/lib/olpimport.py b/openlp/plugins/songs/lib/olpimport.py index c69e5ded0..bbfabce3e 100644 --- a/openlp/plugins/songs/lib/olpimport.py +++ b/openlp/plugins/songs/lib/olpimport.py @@ -102,8 +102,8 @@ class OpenLPSongImport(SongImport): """ if not self.import_source.endswith(u'.sqlite'): self.log_error(self.import_source, - translate('SongsPlugin.OpenLPSongImport', 'The file you were ' - 'trying to import is not a valid OpenLP 2.0 song database.')) + translate('SongsPlugin.OpenLPSongImport', + 'Not a valid OpenLP 2.0 song database.')) return engine = create_engine(self.import_source) source_meta = MetaData() diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py index 7cff1522f..acf672ca0 100644 --- a/openlp/plugins/songs/lib/opensongimport.py +++ b/openlp/plugins/songs/lib/opensongimport.py @@ -255,7 +255,7 @@ class OpenSongImport(SongImport): lines = u'\n'.join(verses[verse_tag][verse_num][inst]) self.add_verse(lines, verse_def) # figure out the presentation order, if present - if u'presentation' in fields and root.presentation != u'': + if u'presentation' in fields and root.presentation: order = unicode(root.presentation) # We make all the tags in the lyrics lower case, so match that here # and then split into a list on the whitespace @@ -266,7 +266,7 @@ class OpenSongImport(SongImport): verse_tag = match.group(1) verse_num = match.group(2) if not len(verse_tag): - verse_tag = u'v' + verse_tag = VerseType.Tags[VerseType.Verse] else: # Assume it's no.1 if there are no digits verse_tag = verse_def diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index 2813240a4..5a8ee9ca8 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -73,11 +73,6 @@ class SongBeamerImport(SongImport): Initialise the Song Beamer importer. """ SongImport.__init__(self, manager, **kwargs) - self.log_error(u'/home/andreas/1.sng', u'aaaa') - self.log_error(u'/home/andreas/4.sng', u'asdfsdfsadfds') - self.log_error(u'/home/andreas/3.sng', u'asdf3q4') - self.log_error(u'/home/andreas/2.sng', u'sadfasdf') - self.log_error(u'/home/andreas/ä.sng', u'kqwjw32w3') def do_import(self): """ @@ -238,11 +233,12 @@ class SongBeamerImport(SongImport): pass elif tag_val[0] == u'#Rights': song_book_pub = tag_val[1] - elif tag_val[0] == u'#Songbook': - book_num = tag_val[1].split(' / ') - self.song_book_name = book_num[0] - if len(book_num) == book_num[1]: - self.song_number = u'' + elif tag_val[0] == u'#Songbook' or tag_val[0] == u'#SongBook': + book_data = tag_val[1].split(u'/') + self.song_book_name = book_data[0].strip() + if len(book_data) == 2: + number = book_data[1].strip() + self.song_number = number if number.isdigit() else u'' elif tag_val[0] == u'#Speed': pass elif tag_val[0] == u'Tempo': diff --git a/openlp/plugins/songs/lib/songshowplusimport.py b/openlp/plugins/songs/lib/songshowplusimport.py index 27620d11a..9fdc5804a 100644 --- a/openlp/plugins/songs/lib/songshowplusimport.py +++ b/openlp/plugins/songs/lib/songshowplusimport.py @@ -101,7 +101,6 @@ class SongShowPlusImport(SongImport): return self.import_wizard.progressBar.setMaximum(len(self.import_source)) for file in self.import_source: - author = u'' self.sspVerseOrderList = [] otherCount = 0 otherList = {} diff --git a/openlp/plugins/songs/lib/wowimport.py b/openlp/plugins/songs/lib/wowimport.py index 661e6787d..f5293a53c 100644 --- a/openlp/plugins/songs/lib/wowimport.py +++ b/openlp/plugins/songs/lib/wowimport.py @@ -134,7 +134,7 @@ class WowImport(SongImport): songData.seek(3, os.SEEK_CUR) # Blocks are seperated by 2 bytes, skip them, but not if # this is the last block! - if (block + 1) < no_of_blocks: + if block + 1 < no_of_blocks: songData.seek(2, os.SEEK_CUR) self.add_verse(block_text, block_type) # Now to extract the author From 6baefdadced3cc201e38cfeb6f6007e69080b5b2 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 18 Apr 2011 20:57:58 +0200 Subject: [PATCH 46/94] more fixes --- openlp/plugins/songs/forms/songimportform.py | 5 +---- openlp/plugins/songs/lib/olp1import.py | 18 +++--------------- openlp/plugins/songs/lib/olpimport.py | 1 + openlp/plugins/songs/lib/oooimport.py | 2 +- 4 files changed, 6 insertions(+), 20 deletions(-) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 73fa7c79d..3d3421d8b 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -741,10 +741,7 @@ class SongImportForm(OpenLPWizard): filenames=self.getListOfFiles(self.foilPresenterFileListWidget) ) importer.do_import() - if importer.stop_import_flag: - self.progressLabel.setText(translate('SongsPlugin.SongImportForm', - 'Song import has been cancelled.')) - elif importer.error_log: + if importer.error_log: error_path = importer.write_error_report() self.progressLabel.setTextInteractionFlags( QtCore.Qt.TextSelectableByMouse) diff --git a/openlp/plugins/songs/lib/olp1import.py b/openlp/plugins/songs/lib/olp1import.py index b282a8dd7..7ba933a8f 100644 --- a/openlp/plugins/songs/lib/olp1import.py +++ b/openlp/plugins/songs/lib/olp1import.py @@ -33,7 +33,6 @@ from chardet.universaldetector import UniversalDetector import sqlite from openlp.core.lib import translate -from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib import retrieve_windows_encoding from songimport import SongImport @@ -69,9 +68,6 @@ class OpenLP1SongImport(SongImport): return encoding = self.get_encoding() if not encoding: - self.log_error(self.import_source, - translate('SongsPlugin.OpenLP1SongImport', - 'Not a valid openlp.org 1.x song database.')) return # Connect to the database connection = sqlite.connect(self.import_source, mode=0444, @@ -81,11 +77,6 @@ class OpenLP1SongImport(SongImport): cursor.execute(u'SELECT name FROM sqlite_master ' u'WHERE type = \'table\' AND name = \'tracks\'') new_db = len(cursor.fetchall()) > 0 - # Count the number of records we need to import, for the progress bar - cursor.execute(u'-- types int') - cursor.execute(u'SELECT COUNT(songid) FROM songs') - count = cursor.fetchone()[0] - self.import_wizard.progressBar.setMaximum(count) # "cache" our list of authors cursor.execute(u'-- types int, unicode') cursor.execute(u'SELECT authorid, authorname FROM authors') @@ -100,20 +91,17 @@ class OpenLP1SongImport(SongImport): cursor.execute(u'SELECT songid, songtitle, lyrics || \'\' AS lyrics, ' u'copyrightinfo FROM songs') songs = cursor.fetchall() + self.import_wizard.progressBar.setMaximum(len(songs)) for song in songs: self.set_defaults() if self.stop_import_flag: break song_id = song[0] - title = song[1] + self.title = song[1] lyrics = song[2].replace(u'\r\n', u'\n') - copyright = song[3] - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % title) - self.title = title + self.add_copyright(song[3]) verses = lyrics.split(u'\n\n') [self.add_verse(verse.strip()) for verse in verses if verse.strip()] - self.add_copyright(copyright) cursor.execute(u'-- types int') cursor.execute(u'SELECT authorid FROM songauthors ' u'WHERE songid = %s' % song_id) diff --git a/openlp/plugins/songs/lib/olpimport.py b/openlp/plugins/songs/lib/olpimport.py index bbfabce3e..f17ac188b 100644 --- a/openlp/plugins/songs/lib/olpimport.py +++ b/openlp/plugins/songs/lib/olpimport.py @@ -36,6 +36,7 @@ from sqlalchemy.orm.exc import UnmappedClassError from openlp.core.lib import translate from openlp.core.lib.db import BaseModel +from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib import clean_song from openlp.plugins.songs.lib.db import Author, Book, Song, Topic #, MediaFile from songimport import SongImport diff --git a/openlp/plugins/songs/lib/oooimport.py b/openlp/plugins/songs/lib/oooimport.py index 3abc17a7a..d43541bc7 100644 --- a/openlp/plugins/songs/lib/oooimport.py +++ b/openlp/plugins/songs/lib/oooimport.py @@ -57,7 +57,7 @@ class OooImport(SongImport): def do_import(self): self.start_ooo() - self.import_wizard.progressBar.setMaximum(self.import_source) + self.import_wizard.progressBar.setMaximum(len(self.import_source)) for filename in self.import_source: if self.stop_import_flag: break From 974a90a173f97454795f8b9176a0d4b8d4624f1c Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 18 Apr 2011 21:24:06 +0200 Subject: [PATCH 47/94] no xml raises XMLSyntaxError, that is why this is not needed --- openlp/plugins/songs/lib/foilpresenterimport.py | 7 ++----- openlp/plugins/songs/lib/openlyricsimport.py | 4 +--- openlp/plugins/songs/lib/ui.py | 1 - 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/openlp/plugins/songs/lib/foilpresenterimport.py b/openlp/plugins/songs/lib/foilpresenterimport.py index 6f4164d17..0c7152bfd 100644 --- a/openlp/plugins/songs/lib/foilpresenterimport.py +++ b/openlp/plugins/songs/lib/foilpresenterimport.py @@ -128,9 +128,7 @@ class FoilPresenterImport(SongImport): try: parsed_file = etree.parse(file_path, parser) xml = unicode(etree.tostring(parsed_file)) - if self.FoilPresenter.xml_to_song(xml) is None: - self.log_error(file_path, SongStrings.NoXML) - log.debug(u'File could not be imported: %s' % file_path) + self.FoilPresenter.xml_to_song(xml) except etree.XMLSyntaxError: self.log_error(file_path, SongStrings.XMLSyntaxError) log.exception(u'XML syntax error in file %s' % file_path) @@ -213,7 +211,7 @@ class FoilPresenter(object): """ # No xml get out of here. if not xml: - return None + return if xml[:5] == u' Date: Tue, 19 Apr 2011 13:34:04 +0200 Subject: [PATCH 48/94] fixed OpenSong import --- openlp/plugins/songs/lib/opensongimport.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py index acf672ca0..fa20dfcac 100644 --- a/openlp/plugins/songs/lib/opensongimport.py +++ b/openlp/plugins/songs/lib/opensongimport.py @@ -164,7 +164,9 @@ class OpenSongImport(SongImport): try: tree = objectify.parse(file) except (Error, LxmlError): + self.log_error(file.name, SongStrings.XMLSyntaxError) log.exception(u'Error parsing XML') + return root = tree.getroot() fields = dir(root) decode = { From d45f93b5941f4bb4970d99d2ee1ef17a5263e9c4 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 19 Apr 2011 13:46:25 +0200 Subject: [PATCH 49/94] return where possible instead of breaking --- openlp/plugins/songs/lib/opensongimport.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py index fa20dfcac..54b96043d 100644 --- a/openlp/plugins/songs/lib/opensongimport.py +++ b/openlp/plugins/songs/lib/opensongimport.py @@ -128,14 +128,15 @@ class OpenSongImport(SongImport): self.import_wizard.progressBar.setMaximum(numfiles) for filename in self.import_source: if self.stop_import_flag: - break + return ext = os.path.splitext(filename)[1] if ext.lower() == u'.zip': log.debug(u'Zipfile found %s', filename) z = ZipFile(filename, u'r') for song in z.infolist(): if self.stop_import_flag: - break + z.close() + return parts = os.path.split(song.filename) if parts[-1] == u'': # No final part => directory From 48d0d39a17d80911460ba579f53ed21073b400bf Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 19 Apr 2011 17:55:36 +0200 Subject: [PATCH 50/94] ask before creating an error report copy not imported files to a folder --- openlp/plugins/songs/forms/songimportform.py | 13 ++++++++++--- openlp/plugins/songs/lib/olpimport.py | 2 +- openlp/plugins/songs/lib/songimport.py | 12 ++++++++++-- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 3d3421d8b..05de6c8a1 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -742,12 +742,19 @@ class SongImportForm(OpenLPWizard): ) importer.do_import() if importer.error_log: - error_path = importer.write_error_report() self.progressLabel.setTextInteractionFlags( QtCore.Qt.TextSelectableByMouse) + self.progressLabel.setText(translate( + 'SongsPlugin.SongImportForm', 'Your song import failed.')) + if critical_error_message_box(translate('SongsPlugin.SongImportForm', + 'Song import failed.'), translate('SongsPlugin.SongImportForm', + 'Your song import failed. Do you want to create an error ' + 'report?'), self, True) == QtGui.QMessageBox.No: + return + error_path = importer.write_error_report() self.progressLabel.setText(unicode(translate( - 'SongsPlugin.SongImportForm', 'Your song import failed. See ' - 'the error report for more details:\n%s')) % error_path) + 'SongsPlugin.SongImportForm', 'Your song import failed. ' + 'For more details see the error report:\n%s')) % error_path) else: self.progressLabel.setText(WizardStrings.FinishedImport) diff --git a/openlp/plugins/songs/lib/olpimport.py b/openlp/plugins/songs/lib/olpimport.py index f17ac188b..a201c1783 100644 --- a/openlp/plugins/songs/lib/olpimport.py +++ b/openlp/plugins/songs/lib/olpimport.py @@ -94,7 +94,6 @@ class OpenLPSongImport(SongImport): The database providing the data to import. """ SongImport.__init__(self, manager, **kwargs) - self.import_source = u'sqlite:///%s' % self.import_source self.source_session = None def do_import(self): @@ -106,6 +105,7 @@ class OpenLPSongImport(SongImport): translate('SongsPlugin.OpenLPSongImport', 'Not a valid OpenLP 2.0 song database.')) return + self.import_source = u'sqlite:///%s' % self.import_source engine = create_engine(self.import_source) source_meta = MetaData() source_meta.reflect(engine) diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py index 80eebde43..b8163fab6 100644 --- a/openlp/plugins/songs/lib/songimport.py +++ b/openlp/plugins/songs/lib/songimport.py @@ -28,10 +28,11 @@ import datetime import logging import os import re +import shutil from PyQt4 import QtCore -from openlp.core.lib import Receiver, translate +from openlp.core.lib import Receiver, translate, check_directory_exists from openlp.core.ui.wizard import WizardStrings from openlp.core.utils import AppLocation from openlp.plugins.songs.lib import clean_song, VerseType @@ -121,12 +122,19 @@ class SongImport(QtCore.QObject): """ report_path = os.path.join(AppLocation.get_data_path(), unicode(translate( 'SongsPlugin.SongImport','song_import_report (%s).txt')) % - datetime.datetime.now().strftime(u'%Y-%m-%dT%H:%M:%S')) + datetime.datetime.now().strftime(u'%Y-%m-%d %H:%M:%S')) report_file = codecs.open(report_path, u'w', u'utf-8') report_file.write(translate('SongsPlugin.SongImport', 'The following songs could not be imported:\n')) for filepath, reason in self.error_log: report_file.write(u'- %s (%s)\n' % (filepath, reason)) + if not os.path.isfile(filepath): + continue + check_directory_exists(report_path[:-4]) + new_song_path = \ + os.path.join(report_path[:-4], os.path.basename(filepath)) + if not os.path.exists(new_song_path): + shutil.copyfile(filepath, new_song_path) report_file.close() return report_path From 8cd3742c874f1acdc829a7a9991bfdae53cd250f Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Wed, 20 Apr 2011 19:36:16 +0200 Subject: [PATCH 51/94] added textEdit and buttons for better feedback --- openlp/core/ui/wizard.py | 46 +++++++++++++++++++- openlp/plugins/songs/forms/songimportform.py | 39 ++++++++++++----- openlp/plugins/songs/lib/opensongimport.py | 5 --- openlp/plugins/songs/lib/songimport.py | 43 ++++++------------ 4 files changed, 86 insertions(+), 47 deletions(-) diff --git a/openlp/core/ui/wizard.py b/openlp/core/ui/wizard.py index bc21c1295..9d1147638 100644 --- a/openlp/core/ui/wizard.py +++ b/openlp/core/ui/wizard.py @@ -95,6 +95,10 @@ class OpenLPWizard(QtGui.QWizard): self.customSignals() QtCore.QObject.connect(self, QtCore.SIGNAL(u'currentIdChanged(int)'), self.onCurrentIdChanged) + QtCore.QObject.connect(self.errorCopyToButton, + QtCore.SIGNAL(u'clicked()'), self.onErrorCopyToButtonClicked) + QtCore.QObject.connect(self.errorSaveToButton, + QtCore.SIGNAL(u'clicked()'), self.onErrorSaveToButtonClicked) def setupUi(self, image): """ @@ -129,11 +133,36 @@ class OpenLPWizard(QtGui.QWizard): self.progressLayout.setObjectName(u'progressLayout') self.progressLabel = QtGui.QLabel(self.progressPage) self.progressLabel.setObjectName(u'progressLabel') + self.progressLabel.setWordWrap(True) self.progressLayout.addWidget(self.progressLabel) self.progressBar = QtGui.QProgressBar(self.progressPage) self.progressBar.setObjectName(u'progressBar') - self.progressLabel.setWordWrap(True) self.progressLayout.addWidget(self.progressBar) + # Add a QTextEdit and a copy to file and copy to clipboard button to be + # able to provide feedback to the user. Hidden by default. + self.errorReportTextEdit = QtGui.QTextEdit(self.progressPage) + self.errorReportTextEdit.setObjectName(u'progresserrorReportTextEdit') + self.errorReportTextEdit.setHidden(True) + self.errorReportTextEdit.setReadOnly(True) + self.progressLayout.addWidget(self.errorReportTextEdit) + self.errorButtonLayout = QtGui.QHBoxLayout() + self.errorButtonLayout.setObjectName(u'errorButtonLayout') + spacer = QtGui.QSpacerItem(40, 20, + QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.errorButtonLayout.addItem(spacer) + self.errorCopyToButton = QtGui.QPushButton(self.progressPage) + self.errorCopyToButton.setObjectName(u'errorCopyToButton') + self.errorCopyToButton.setHidden(True) + self.errorCopyToButton.setIcon( + build_icon(u':/system/system_edit_copy.png')) + self.errorButtonLayout.addWidget(self.errorCopyToButton) + self.errorSaveToButton = QtGui.QPushButton(self.progressPage) + self.errorSaveToButton.setObjectName(u'errorSaveToButton') + self.errorSaveToButton.setHidden(True) + self.errorSaveToButton.setIcon( + build_icon(u':/general/general_save.png')) + self.errorButtonLayout.addWidget(self.errorSaveToButton) + self.progressLayout.addLayout(self.errorButtonLayout) self.addPage(self.progressPage) def exec_(self): @@ -161,6 +190,18 @@ class OpenLPWizard(QtGui.QWizard): self.performWizard() self.postWizard() + def onErrorCopyToButtonClicked(self): + """ + Called when the ``onErrorCopyToButtonClicked`` has been clicked. + """ + pass + + def onErrorSaveToButtonClicked(self): + """ + Called when the ``onErrorSaveToButtonClicked`` has been clicked. + """ + pass + def incrementProgressBar(self, status_text, increment=1): """ Update the wizard progress page. @@ -220,4 +261,5 @@ class OpenLPWizard(QtGui.QWizard): if filename: editbox.setText(filename) SettingsManager.set_last_dir(self.plugin.settingsSection, - filename, 1) \ No newline at end of file + filename, 1) + diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 05de6c8a1..8c5dbeb8a 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -26,6 +26,7 @@ """ The song import functions for OpenLP. """ +import codecs import logging import os @@ -55,6 +56,7 @@ class SongImportForm(OpenLPWizard): ``plugin`` The songs plugin. """ + self.clipboard = plugin.formparent.clipboard OpenLPWizard.__init__(self, parent, plugin, u'songImportWizard', u':/wizards/wizard_importsong.bmp') @@ -330,6 +332,10 @@ class SongImportForm(OpenLPWizard): 'Please wait while your songs are imported.')) self.progressLabel.setText(WizardStrings.Ready) self.progressBar.setFormat(WizardStrings.PercentSymbolFormat) + self.errorCopyToButton.setText(translate('SongsPlugin.ImportWizardForm', + 'Copy')) + self.errorSaveToButton.setText(translate('SongsPlugin.ImportWizardForm', + 'Save to File')) # Align all QFormLayouts towards each other. width = max(self.formatLabel.minimumSizeHint().width(), self.openLP2FilenameLabel.minimumSizeHint().width()) @@ -656,6 +662,10 @@ class SongImportForm(OpenLPWizard): self.songShowPlusFileListWidget.clear() self.foilPresenterFileListWidget.clear() #self.csvFilenameEdit.setText(u'') + self.errorReportTextEdit.clear() + self.errorReportTextEdit.setHidden(True) + self.errorCopyToButton.setHidden(True) + self.errorSaveToButton.setHidden(True) def preWizard(self): """ @@ -742,22 +752,29 @@ class SongImportForm(OpenLPWizard): ) importer.do_import() if importer.error_log: - self.progressLabel.setTextInteractionFlags( - QtCore.Qt.TextSelectableByMouse) self.progressLabel.setText(translate( 'SongsPlugin.SongImportForm', 'Your song import failed.')) - if critical_error_message_box(translate('SongsPlugin.SongImportForm', - 'Song import failed.'), translate('SongsPlugin.SongImportForm', - 'Your song import failed. Do you want to create an error ' - 'report?'), self, True) == QtGui.QMessageBox.No: - return - error_path = importer.write_error_report() - self.progressLabel.setText(unicode(translate( - 'SongsPlugin.SongImportForm', 'Your song import failed. ' - 'For more details see the error report:\n%s')) % error_path) else: self.progressLabel.setText(WizardStrings.FinishedImport) + def onErrorCopyToButtonClicked(self): + """ + Copy the error report to the clipboard. + """ + self.clipboard.setText(self.errorReportTextEdit.toPlainText()) + + def onErrorSaveToButtonClicked(self): + """ + Save the error report to a file. + """ + filename = QtGui.QFileDialog.getSaveFileName(self, + SettingsManager.get_last_dir(self.plugin.settingsSection, 1)) + if not filename: + return + file = codecs.open(filename, u'w', u'utf-8') + file.write(self.errorReportTextEdit.toPlainText()) + file.close() + def addFileSelectItem(self, prefix, obj_prefix=None, can_disable=False, single_select=False): if not obj_prefix: diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py index 54b96043d..ab8f8c9fa 100644 --- a/openlp/plugins/songs/lib/opensongimport.py +++ b/openlp/plugins/songs/lib/opensongimport.py @@ -32,7 +32,6 @@ from zipfile import ZipFile from lxml import objectify from lxml.etree import Error, LxmlError -from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib import VerseType from openlp.plugins.songs.lib.songimport import SongImport from openlp.plugins.songs.lib.ui import SongStrings @@ -142,8 +141,6 @@ class OpenSongImport(SongImport): # No final part => directory continue log.info(u'Zip importing %s', parts[-1]) - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % parts[-1]) song_file = z.open(song) self.do_import_file(song_file) song_file.close() @@ -151,8 +148,6 @@ class OpenSongImport(SongImport): else: # not a zipfile log.info(u'Direct import %s', filename) - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % os.path.split(filename)[-1]) song_file = open(filename) self.do_import_file(song_file) song_file.close() diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py index b8163fab6..3c7ab8885 100644 --- a/openlp/plugins/songs/lib/songimport.py +++ b/openlp/plugins/songs/lib/songimport.py @@ -23,12 +23,8 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### -import codecs -import datetime import logging -import os import re -import shutil from PyQt4 import QtCore @@ -114,29 +110,17 @@ class SongImport(QtCore.QObject): The reason, why the import failed. The string should be as informative as possible. """ - self.error_log.append((filepath, unicode(reason))) - - def write_error_report(self): - """ - Creates a error import containing all error messages. - """ - report_path = os.path.join(AppLocation.get_data_path(), unicode(translate( - 'SongsPlugin.SongImport','song_import_report (%s).txt')) % - datetime.datetime.now().strftime(u'%Y-%m-%d %H:%M:%S')) - report_file = codecs.open(report_path, u'w', u'utf-8') - report_file.write(translate('SongsPlugin.SongImport', - 'The following songs could not be imported:\n')) - for filepath, reason in self.error_log: - report_file.write(u'- %s (%s)\n' % (filepath, reason)) - if not os.path.isfile(filepath): - continue - check_directory_exists(report_path[:-4]) - new_song_path = \ - os.path.join(report_path[:-4], os.path.basename(filepath)) - if not os.path.exists(new_song_path): - shutil.copyfile(filepath, new_song_path) - report_file.close() - return report_path + if self.import_wizard is None: + return + if self.import_wizard.errorReportTextEdit.isHidden(): + self.import_wizard.errorReportTextEdit.setText( + translate('SongsPlugin.SongImport', + 'The following songs could not be imported:')) + self.import_wizard.errorReportTextEdit.setVisible(True) + self.import_wizard.errorCopyToButton.setVisible(True) + self.import_wizard.errorSaveToButton.setVisible(True) + self.import_wizard.errorReportTextEdit.append( + u'- %s (%s)' % (filepath, reason)) def stop_import(self): """ @@ -299,8 +283,9 @@ class SongImport(QtCore.QObject): log.info(u'committing song %s to database', self.title) song = Song() song.title = self.title - self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % song.title) + if self.import_wizard is not None: + self.import_wizard.incrementProgressBar( + WizardStrings.ImportingType % song.title) song.alternate_title = self.alternate_title # Values will be set when cleaning the song. song.search_title = u'' From c402e5c0750fa1a317756fc415728f45a8cd3307 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Wed, 20 Apr 2011 19:01:25 +0100 Subject: [PATCH 52/94] non-debug version of dll --- .../lib/pptviewlib/pptviewlib.dll | Bin 80384 -> 44032 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll index 524b30ebb1f0c70089e3faa96c771c2e5d855358..14bcf4eb8059ab0c863e3d9427b4dce76adeee57 100644 GIT binary patch literal 44032 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 Avj6}9 From f3f18361504d32084e491a3f860a97515afb2835 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Thu, 21 Apr 2011 00:21:31 +0100 Subject: [PATCH 53/94] remove pptviewlib.dll and build it via windows-builder.py --- .../lib/pptviewlib/pptviewlib.dll | Bin 44032 -> 0 bytes scripts/windows-builder.py | 60 +++++++++++++++--- 2 files changed, 51 insertions(+), 9 deletions(-) delete mode 100644 openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll deleted file mode 100644 index 14bcf4eb8059ab0c863e3d9427b4dce76adeee57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44032 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 YvmLd?Z4)-F-C$o}M}d0%Uqj%30 1 and (sys.argv[1] == u'-v' or sys.argv[1] == u'--verbose'): - print "Script path:", script_path - print "Branch path:", branch_path - print "Source path:", source_path - print "\"dist\" path:", dist_path - print "PyInstaller:", pyi_build - print "Inno Setup path:", innosetup_path - print "Windows resources:", winres_path - update_code() + for arg in sys.argv: + if arg == u'-v' or arg == u'--verbose': + print "Script path:", script_path + print "Branch path:", branch_path + print "Source path:", source_path + print "\"dist\" path:", dist_path + print "PyInstaller:", pyi_build + print "Inno Setup path:", innosetup_exe + print "Windows resources:", winres_path + print "VC++ path:", vcenv_bat + print "PPTVIEWLIB path:", pptviewlib_path + elif arg == u'--skip-update': + skip_update = True + elif arg == u'/?' or arg == u'-h' or arg == u'--help': + print u'Command options:' + print u' -v --verbose : More verbose output' + print u' --skip-update : Do not update or revert current branch' + exit() + if not skip_update: + update_code() + build_pptviewlib() run_pyinstaller() write_version_file() copy_enchant() From c0b0c1a82d390586dc6d2e9bc84b975c9f463976 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Thu, 21 Apr 2011 08:35:17 +0100 Subject: [PATCH 54/94] tabs to spaces *grr at VC++* --- .../lib/pptviewlib/pptviewlib.cpp | 102 +++++++++--------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp index 75242eec4..a679df582 100644 --- a/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp +++ b/openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp @@ -91,11 +91,11 @@ DllExport BOOL CheckInstalled() DEBUG("CheckInstalled\n"); BOOL found = GetPPTViewerPath(cmdLine, sizeof(cmdLine)); - if(found) - { - DEBUG("Exe: %s\n", cmdLine); - } - return found; + if(found) + { + DEBUG("Exe: %s\n", cmdLine); + } + return found; } // Open the PointPoint, count the slides and take a snapshot of each slide @@ -196,7 +196,7 @@ DllExport int OpenPPT(char *filename, HWND hParentWnd, RECT rect, Sleep(10); if (!CreateProcess(NULL, cmdLine, NULL, NULL, FALSE, 0, 0, NULL, &si, &pi)) { - DEBUG("OpenPPT: CreateProcess failed: %s\n", cmdLine); + DEBUG("OpenPPT: CreateProcess failed: %s\n", cmdLine); ClosePPT(id); return -1; } @@ -355,48 +355,48 @@ BOOL GetPPTViewerPath(char *pptViewerPath, int stringSize) char cwd[MAX_PATH]; DEBUG("GetPPTViewerPath: start\n"); - if(GetPPTViewerPathFromReg(pptViewerPath, stringSize)) - { - if(_access(pptViewerPath, 0) != -1) - { - DEBUG("GetPPTViewerPath: exit registry\n"); - return TRUE; - } - } - // This is where it gets ugly. PPT2007 it seems no longer stores its - // location in the registry. So we have to use the defaults which will - // upset those who like to put things somewhere else + if(GetPPTViewerPathFromReg(pptViewerPath, stringSize)) + { + if(_access(pptViewerPath, 0) != -1) + { + DEBUG("GetPPTViewerPath: exit registry\n"); + return TRUE; + } + } + // This is where it gets ugly. PPT2007 it seems no longer stores its + // location in the registry. So we have to use the defaults which will + // upset those who like to put things somewhere else - // Viewer 2007 in 64bit Windows: - if(_access("C:\\Program Files (x86)\\Microsoft Office\\Office12\\PPTVIEW.EXE", - 0) != -1) - { - strcpy_s( - "C:\\Program Files (x86)\\Microsoft Office\\Office12\\PPTVIEW.EXE", - stringSize, pptViewerPath); - DEBUG("GetPPTViewerPath: exit 64bit 2007\n"); - return TRUE; - } - // Viewer 2007 in 32bit Windows: - if(_access("C:\\Program Files\\Microsoft Office\\Office12\\PPTVIEW.EXE", 0) - != -1) - { - strcpy_s("C:\\Program Files\\Microsoft Office\\Office12\\PPTVIEW.EXE", - stringSize, pptViewerPath); - DEBUG("GetPPTViewerPath: exit 32bit 2007\n"); - return TRUE; - } - // Give them the opportunity to place it in the same folder as the app - _getcwd(cwd, MAX_PATH); - strcat_s(cwd, MAX_PATH, "\\PPTVIEW.EXE"); - if(_access(cwd, 0) != -1) - { - strcpy_s(pptViewerPath, stringSize, cwd); - DEBUG("GetPPTViewerPath: exit local\n"); - return TRUE; - } + // Viewer 2007 in 64bit Windows: + if(_access("C:\\Program Files (x86)\\Microsoft Office\\Office12\\PPTVIEW.EXE", + 0) != -1) + { + strcpy_s( + "C:\\Program Files (x86)\\Microsoft Office\\Office12\\PPTVIEW.EXE", + stringSize, pptViewerPath); + DEBUG("GetPPTViewerPath: exit 64bit 2007\n"); + return TRUE; + } + // Viewer 2007 in 32bit Windows: + if(_access("C:\\Program Files\\Microsoft Office\\Office12\\PPTVIEW.EXE", 0) + != -1) + { + strcpy_s("C:\\Program Files\\Microsoft Office\\Office12\\PPTVIEW.EXE", + stringSize, pptViewerPath); + DEBUG("GetPPTViewerPath: exit 32bit 2007\n"); + return TRUE; + } + // Give them the opportunity to place it in the same folder as the app + _getcwd(cwd, MAX_PATH); + strcat_s(cwd, MAX_PATH, "\\PPTVIEW.EXE"); + if(_access(cwd, 0) != -1) + { + strcpy_s(pptViewerPath, stringSize, cwd); + DEBUG("GetPPTViewerPath: exit local\n"); + return TRUE; + } DEBUG("GetPPTViewerPath: exit fail\n"); - return FALSE; + return FALSE; } BOOL GetPPTViewerPathFromReg(char *pptViewerPath, int stringSize) { @@ -404,11 +404,11 @@ BOOL GetPPTViewerPathFromReg(char *pptViewerPath, int stringSize) DWORD dwType, dwSize; LRESULT lResult; - // The following registry settings are for, respectively, (I think) - // PPT Viewer 2007 (older versions. Latest not in registry) & PPT Viewer 2010 - // PPT Viewer 2003 (recent versions) - // PPT Viewer 2003 (older versions) - // PPT Viewer 97 + // The following registry settings are for, respectively, (I think) + // PPT Viewer 2007 (older versions. Latest not in registry) & PPT Viewer 2010 + // PPT Viewer 2003 (recent versions) + // PPT Viewer 2003 (older versions) + // PPT Viewer 97 if ((RegOpenKeyEx(HKEY_CLASSES_ROOT, "PowerPointViewer.Show.12\\shell\\Show\\command", 0, KEY_READ, &hKey) != ERROR_SUCCESS) From 073e68e8d5aaf399275676e14da17dc0366f0b80 Mon Sep 17 00:00:00 2001 From: M2j Date: Thu, 21 Apr 2011 10:47:52 +0200 Subject: [PATCH 55/94] translation string fixes --- openlp/core/ui/printserviceorderform.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/core/ui/printserviceorderform.py b/openlp/core/ui/printserviceorderform.py index 70128cb89..44cbac180 100644 --- a/openlp/core/ui/printserviceorderform.py +++ b/openlp/core/ui/printserviceorderform.py @@ -113,11 +113,11 @@ class PrintServiceOrderForm(QtGui.QDialog, Ui_PrintServiceOrderDialog): # Add play length of media files. if item.is_media() and self.printMetaDataCheckBox.isChecked(): text += u'

%s %s

' % (translate( - 'OpenLP.ServiceManager', u'Playing time:'), + 'OpenLP.ServiceManager', 'Playing time:'), unicode(datetime.timedelta(seconds=item.media_length))) if self.customNoteEdit.toPlainText(): text += u'

%s

%s' % (translate('OpenLP.ServiceManager', - u'Custom Service Notes:'), self.customNoteEdit.toPlainText()) + 'Custom Service Notes:'), self.customNoteEdit.toPlainText()) self.document.setHtml(text) self.previewWidget.updatePreview() From 8439d1ed4f8d729d77ff6f5a30b0f30f519512e5 Mon Sep 17 00:00:00 2001 From: M2j Date: Thu, 21 Apr 2011 10:53:48 +0200 Subject: [PATCH 56/94] fix verse order rebuild to handle single character verse references rename variable to avoid using the 'type' keyword --- openlp/plugins/songs/lib/__init__.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/openlp/plugins/songs/lib/__init__.py b/openlp/plugins/songs/lib/__init__.py index 4f95791b3..6c8e187a9 100644 --- a/openlp/plugins/songs/lib/__init__.py +++ b/openlp/plugins/songs/lib/__init__.py @@ -278,24 +278,29 @@ def clean_song(manager, song): # List for later comparison. compare_order = [] for verse in verses: - type = VerseType.Tags[VerseType.from_loose_input(verse[0][u'type'])] + verse_type = + VerseType.Tags[VerseType.from_loose_input(verse[0][u'type'])] sxml.add_verse_to_lyrics( - type, + verse_type, verse[0][u'label'], verse[1], verse[0][u'lang'] if verse[0].has_key(u'lang') else None ) - compare_order.append((u'%s%s' % (type, verse[0][u'label'])).upper()) + compare_order.append((u'%s%s' % (verse_type, verse[0][u'label']) + ).upper()) + if verse[0][u'label'] == u'1': + compare_order.append(verse_type.upper()) song.lyrics = unicode(sxml.extract_xml(), u'utf-8') # Rebuild the verse order, to convert translated verse tags, which might # have been added prior to 1.9.5. order = song.verse_order.strip().split() new_order = [] for verse_def in order: - new_order.append((u'%s%s' % ( - VerseType.Tags[VerseType.from_loose_input(verse_def[0])], - verse_def[1:])).upper() - ) + verse_type = VerseType.Tags[VerseType.from_loose_input(verse_def[0])] + if len(verse_def) > 1: + new_order.append((u'%s%s' % (verse_type, verse_def[1:])).upper()) + else: + new_order.append(verse_type.upper()) song.verse_order = u' '.join(new_order) # Check if the verse order contains tags for verses which do not exist. for order in new_order: From 2582b337683e2e661a7c955166a90540b2212b3e Mon Sep 17 00:00:00 2001 From: M2j Date: Thu, 21 Apr 2011 11:02:41 +0200 Subject: [PATCH 57/94] syntax fix --- openlp/plugins/songs/lib/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/songs/lib/__init__.py b/openlp/plugins/songs/lib/__init__.py index 6c8e187a9..249a76a38 100644 --- a/openlp/plugins/songs/lib/__init__.py +++ b/openlp/plugins/songs/lib/__init__.py @@ -278,8 +278,8 @@ def clean_song(manager, song): # List for later comparison. compare_order = [] for verse in verses: - verse_type = - VerseType.Tags[VerseType.from_loose_input(verse[0][u'type'])] + verse_type = VerseType.Tags[VerseType.from_loose_input( + verse[0][u'type'])] sxml.add_verse_to_lyrics( verse_type, verse[0][u'label'], From ba45d7e113fa9fa3a81e3644ae0b1bf81f0a37b0 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 21 Apr 2011 19:14:07 +0200 Subject: [PATCH 58/94] fixed names; hide/show menu entries when disabeling/enabeling the songs plugin --- openlp/plugins/songs/songsplugin.py | 35 ++++++++++++++++------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index 0cace4977..85294dee2 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -65,10 +65,12 @@ class SongsPlugin(Plugin): def initialise(self): log.info(u'Songs Initialising') Plugin.initialise(self) + self.songImportItem.setVisible(True) + self.songExportItem.setVisible(True) self.toolsReindexItem.setVisible(True) action_list = ActionList.get_instance() - action_list.add_action(self.SongImportItem, UiStrings().Import) - action_list.add_action(self.SongExportItem, UiStrings().Export) + action_list.add_action(self.songImportItem, UiStrings().Import) + action_list.add_action(self.songExportItem, UiStrings().Export) action_list.add_action(self.toolsReindexItem, UiStrings().Tools) def addImportMenuItem(self, import_menu): @@ -81,13 +83,13 @@ class SongsPlugin(Plugin): use it as their parent. """ # Main song import menu item - will eventually be the only one - self.SongImportItem = base_action(import_menu, u'SongImportItem') - self.SongImportItem.setText(translate('SongsPlugin', '&Song')) - self.SongImportItem.setToolTip(translate('SongsPlugin', + self.songImportItem = base_action(import_menu, u'songImportItem') + self.songImportItem.setText(translate('SongsPlugin', '&Song')) + self.songImportItem.setToolTip(translate('SongsPlugin', 'Import songs using the import wizard.')) - import_menu.addAction(self.SongImportItem) + import_menu.addAction(self.songImportItem) # Signals and slots - QtCore.QObject.connect(self.SongImportItem, + QtCore.QObject.connect(self.songImportItem, QtCore.SIGNAL(u'triggered()'), self.onSongImportItemClicked) def addExportMenuItem(self, export_menu): @@ -100,13 +102,13 @@ class SongsPlugin(Plugin): use it as their parent. """ # Main song import menu item - will eventually be the only one - self.SongExportItem = base_action(export_menu, u'SongExportItem') - self.SongExportItem.setText(translate('SongsPlugin', '&Song')) - self.SongExportItem.setToolTip(translate('SongsPlugin', + self.songExportItem = base_action(export_menu, u'songExportItem') + self.songExportItem.setText(translate('SongsPlugin', '&Song')) + self.songExportItem.setToolTip(translate('SongsPlugin', 'Exports songs using the export wizard.')) - export_menu.addAction(self.SongExportItem) + export_menu.addAction(self.songExportItem) # Signals and slots - QtCore.QObject.connect(self.SongExportItem, + QtCore.QObject.connect(self.songExportItem, QtCore.SIGNAL(u'triggered()'), self.onSongExportItemClicked) def addToolsMenuItem(self, tools_menu): @@ -256,9 +258,12 @@ class SongsPlugin(Plugin): """ log.info(u'Songs Finalising') self.manager.finalise() + self.songImportItem.setVisible(False) + self.songExportItem.setVisible(False) self.toolsReindexItem.setVisible(False) action_list = ActionList.get_instance() - action_list.remove_action(self.SongImportItem, UiStrings().Import) - action_list.remove_action(self.SongExportItem, UiStrings().Export) + action_list.remove_action(self.songImportItem, UiStrings().Import) + action_list.remove_action(self.songExportItem, UiStrings().Export) action_list.remove_action(self.toolsReindexItem, UiStrings().Tools) - Plugin.finalise(self) \ No newline at end of file + Plugin.finalise(self) + From 65925efd253bc07f1631fd89144a96aab5391b98 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 22 Apr 2011 08:30:07 +0200 Subject: [PATCH 59/94] fixed logo pixelation --- openlp/core/ui/maindisplay.py | 2 -- openlp/core/ui/mainwindow.py | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 3931139d1..d5960f966 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -69,8 +69,6 @@ class MainDisplay(DisplayWidget): self.hideMode = None self.videoHide = False self.override = {} - mainIcon = build_icon(u':/icon/openlp-logo-16x16.png') - self.setWindowIcon(mainIcon) self.retranslateUi() self.setStyleSheet(u'border: 0px; margin: 0px; padding: 0px;') self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.Tool | diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 32a28d474..cb01e37a1 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -71,7 +71,7 @@ class Ui_MainWindow(object): mainWindow.setObjectName(u'MainWindow') mainWindow.resize(self.settingsmanager.width, self.settingsmanager.height) - mainWindow.setWindowIcon(build_icon(u':/icon/openlp-logo-16x16.png')) + mainWindow.setWindowIcon(build_icon(u':/icon/openlp-logo-64x64.png')) mainWindow.setDockNestingEnabled(True) # Set up the main container, which contains all the other form widgets. self.MainContent = QtGui.QWidget(mainWindow) From c66ffbd725c160018abb1bab5cc65de7e8061390 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 22 Apr 2011 09:06:38 +0200 Subject: [PATCH 60/94] removed import --- openlp/core/ui/maindisplay.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index d5960f966..c413ec8c9 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -34,7 +34,7 @@ from PyQt4 import QtCore, QtGui, QtWebKit from PyQt4.phonon import Phonon from openlp.core.lib import Receiver, build_html, ServiceItem, image_to_byte, \ - build_icon, translate + translate from openlp.core.ui import HideMode From 9a7aef29c396e13d52a5c2819094aaf3d85c0aa3 Mon Sep 17 00:00:00 2001 From: Wesley Stout Date: Fri, 22 Apr 2011 16:00:51 -0500 Subject: [PATCH 61/94] more corrections --- documentation/manual/source/dualmonitors.rst | 10 +++++----- documentation/manual/source/troubleshooting.rst | 16 ++++++++++------ 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/documentation/manual/source/dualmonitors.rst b/documentation/manual/source/dualmonitors.rst index 0566395e8..bf5db7208 100644 --- a/documentation/manual/source/dualmonitors.rst +++ b/documentation/manual/source/dualmonitors.rst @@ -37,11 +37,11 @@ equivalent. **Special Note For Projectors Using USB Connections** Users have reported experiencing difficulties when using a projector with a USB -connection. It seems that third party software many times is required to -properly setup dual monitors. If possible, it is best to use a direct output -(VGA, DVI, HDMI, S-Video) from your machine's video card. f a USB connection is -your only option please consult the manufacturer's manual for instructions on a -proper setup. +connection. It seems that third party software often is required to properly +setup dual monitors. If possible, it is best to use a direct output(VGA, DVI, +HDMI, S-Video) from your machine's video card. If a USB connection is your only +option please consult the manufacturer's manual for instructions on proper +setup. Microsoft Windows ----------------- diff --git a/documentation/manual/source/troubleshooting.rst b/documentation/manual/source/troubleshooting.rst index 1bd374e18..6f5f21a74 100644 --- a/documentation/manual/source/troubleshooting.rst +++ b/documentation/manual/source/troubleshooting.rst @@ -175,13 +175,17 @@ only download the section you search for. If you do not have an internet connection where you intend to use OpenLP you will need another scripture source. For more information about acquiring Bibles please see :ref:`bibleimporter`. -I am using high amounts of RAM when showing PowerPoint or Impress slides ------------------------------------------------------------------------- +OpenLP is using a large amount of RAM when showing a presentation +----------------------------------------------------------------- -The reason OpenLP uses greater amounts of RAM is because it does not load the -presentation by itself. OpenLP uses PowerPoint or Impress to load the -presentation. Then OpenLP displays images of each slide. This results in the -higher than expected RAM usage. +OpenLP uses a large amount of RAM when showing a presentation due to the way it +handles presentations. OpenLP itself is unable to show those presentations or +load the presentation files, so it interacts with the presentation through +either Microsoft PowerPoint or LibreOffice Impress. In order to show the slides +in the slide controller, OpenLP requests that the presentation application +export the slides to images, and then uses those images as slides. This results +in a large amount of RAM being used, especially in presentations with more than +about 20 slides. OpenLP is not displaying correctly, or is not on the correct screen ------------------------------------------------------------------- From a73012e3f6903d995ae1b82386b88704472aa040 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Fri, 22 Apr 2011 23:32:08 +0100 Subject: [PATCH 62/94] StevanP's changes, so vc variables don't need setting now --- scripts/windows-builder.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/scripts/windows-builder.py b/scripts/windows-builder.py index 1046fb71e..c74da4e09 100644 --- a/scripts/windows-builder.py +++ b/scripts/windows-builder.py @@ -108,8 +108,8 @@ sphinx_exe = os.path.join(os.path.split(python_exe)[0], u'Scripts', u'sphinx-build.exe') hhc_exe = os.path.join(os.getenv(u'PROGRAMFILES'), 'HTML Help Workshop', u'hhc.exe') -vcenv_bat = os.path.join(os.getenv(u'PROGRAMFILES'), 'Microsoft Visual Studio 9.0', - u'VC', 'vcvarsall.bat') +vcbuild_exe = os.path.join(os.getenv(u'PROGRAMFILES'), + 'Microsoft Visual Studio 9.0', 'VC','vcpackages','vcbuild.exe') # Base paths script_path = os.path.split(os.path.abspath(__file__))[0] @@ -280,13 +280,8 @@ def run_innosetup(): def build_pptviewlib(): print u'Building PPTVIEWLIB.DLL...' - vcenv = Popen(vcenv_bat) - code = vcenv.wait() - if code != 0: - raise Exception(u'Error creating VC++ environment') - vcbuild = Popen((u'vcbuild', '/rebuild', - os.path.join(pptviewlib_path, u'pptviewlib.vcproj'), - u'Release|Win32')) + vcbuild = Popen((vcbuild_exe, '/rebuild', + os.path.join(pptviewlib_path, u'pptviewlib.vcproj'), u'Release|Win32')) code = vcbuild.wait() if code != 0: raise Exception(u'Error building pptviewlib.dll') @@ -305,7 +300,7 @@ def main(): print "PyInstaller:", pyi_build print "Inno Setup path:", innosetup_exe print "Windows resources:", winres_path - print "VC++ path:", vcenv_bat + print "VCBuild path:", vcbuild_exe print "PPTVIEWLIB path:", pptviewlib_path elif arg == u'--skip-update': skip_update = True From 9b1c9243195bc37c6d72f761215580dabebc7bb7 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Sat, 23 Apr 2011 11:06:47 +0100 Subject: [PATCH 63/94] u's and spaces --- scripts/windows-builder.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/windows-builder.py b/scripts/windows-builder.py index c74da4e09..ef5528cd7 100644 --- a/scripts/windows-builder.py +++ b/scripts/windows-builder.py @@ -109,7 +109,7 @@ sphinx_exe = os.path.join(os.path.split(python_exe)[0], u'Scripts', hhc_exe = os.path.join(os.getenv(u'PROGRAMFILES'), 'HTML Help Workshop', u'hhc.exe') vcbuild_exe = os.path.join(os.getenv(u'PROGRAMFILES'), - 'Microsoft Visual Studio 9.0', 'VC','vcpackages','vcbuild.exe') + u'Microsoft Visual Studio 9.0', u'VC', u'vcpackages', u'vcbuild.exe') # Base paths script_path = os.path.split(os.path.abspath(__file__))[0] @@ -280,12 +280,12 @@ def run_innosetup(): def build_pptviewlib(): print u'Building PPTVIEWLIB.DLL...' - vcbuild = Popen((vcbuild_exe, '/rebuild', + vcbuild = Popen((vcbuild_exe, u'/rebuild', os.path.join(pptviewlib_path, u'pptviewlib.vcproj'), u'Release|Win32')) code = vcbuild.wait() if code != 0: raise Exception(u'Error building pptviewlib.dll') - copy(os.path.join(pptviewlib_path, u'Release', 'pptviewlib.dll'), + copy(os.path.join(pptviewlib_path, u'Release', u'pptviewlib.dll'), pptviewlib_path) def main(): From d534440d2a941e84bd56b8a74f0637c70fee2723 Mon Sep 17 00:00:00 2001 From: Wesley Stout Date: Sat, 23 Apr 2011 22:03:12 -0500 Subject: [PATCH 64/94] corrections --- documentation/manual/source/dualmonitors.rst | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/documentation/manual/source/dualmonitors.rst b/documentation/manual/source/dualmonitors.rst index bf5db7208..0299f2467 100644 --- a/documentation/manual/source/dualmonitors.rst +++ b/documentation/manual/source/dualmonitors.rst @@ -37,11 +37,10 @@ equivalent. **Special Note For Projectors Using USB Connections** Users have reported experiencing difficulties when using a projector with a USB -connection. It seems that third party software often is required to properly -setup dual monitors. If possible, it is best to use a direct output(VGA, DVI, -HDMI, S-Video) from your machine's video card. If a USB connection is your only -option please consult the manufacturer's manual for instructions on proper -setup. +connection, as third party software is often required to properly configure +dual monitors. If possible, it is best to use a direct output (VGA, DVI, HDMI, +S-Video) from your machine's video card. f a USB connection is your only option +please consult the manufacturer's manual for instructions on a proper setup. Microsoft Windows ----------------- From f7e81ad70a0800d8c6d76867e74f10d6b329c307 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 24 Apr 2011 16:44:40 +0200 Subject: [PATCH 65/94] fixe possible bug when using the clear buttons --- openlp/core/ui/shortcutlistform.py | 105 +++++++++++++++++++---------- 1 file changed, 68 insertions(+), 37 deletions(-) diff --git a/openlp/core/ui/shortcutlistform.py b/openlp/core/ui/shortcutlistform.py index 26bfddadd..3136c9b1f 100644 --- a/openlp/core/ui/shortcutlistform.py +++ b/openlp/core/ui/shortcutlistform.py @@ -29,6 +29,7 @@ import re from PyQt4 import QtCore, QtGui +from openlp.core.lib import Receiver from openlp.core.utils import translate from openlp.core.utils.actions import ActionList from shortcutlistdialog import Ui_ShortcutListDialog @@ -95,43 +96,7 @@ class ShortcutListForm(QtGui.QDialog, Ui_ShortcutListDialog): QtCore.Qt.ShiftModifier: key_string = u'Shift+' + key_string key_sequence = QtGui.QKeySequence(key_string) - # The action we are attempting to change. - changing_action = self._currentItemAction() - shortcut_valid = True - for category in self.action_list.categories: - for action in category.actions: - shortcuts = self._actionShortcuts(action) - if key_sequence not in shortcuts: - continue - if action is changing_action: - if self.primaryPushButton.isChecked() and \ - shortcuts.index(key_sequence) == 0: - continue - if self.alternatePushButton.isChecked() and \ - shortcuts.index(key_sequence) == 1: - continue - # Have the same parent, thus they cannot have the same shortcut. - if action.parent() is changing_action.parent(): - shortcut_valid = False - # The new shortcut is already assigned, but if both shortcuts - # are only valid in a different widget the new shortcut is - # vaild, because they will not interfere. - if action.shortcutContext() in [QtCore.Qt.WindowShortcut, - QtCore.Qt.ApplicationShortcut]: - shortcut_valid = False - if changing_action.shortcutContext() in \ - [QtCore.Qt.WindowShortcut, QtCore.Qt.ApplicationShortcut]: - shortcut_valid = False - if not shortcut_valid: - QtGui.QMessageBox.warning(self, - translate('OpenLP.ShortcutListDialog', 'Duplicate Shortcut'), - unicode(translate('OpenLP.ShortcutListDialog', 'The shortcut ' - '"%s" is already assigned to another action, please ' - 'use a different shortcut.')) % key_sequence.toString(), - QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok), - QtGui.QMessageBox.Ok - ) - else: + if self._validiate_shortcut(self._currentItemAction(), key_sequence): if self.primaryPushButton.isChecked(): self._adjustButton(self.primaryPushButton, False, text=key_sequence.toString()) @@ -227,6 +192,12 @@ class ShortcutListForm(QtGui.QDialog, Ui_ShortcutListDialog): new_shortcuts.append( QtGui.QKeySequence(self.alternatePushButton.text())) self.changedActions[action] = new_shortcuts + if not self.primaryPushButton.text(): + # When we do not have a primary shortcut, the just entered alternate + # shortcut will automatically become the primary shortcut. That is + # why we have to adjust the primary button's text. + self.primaryPushButton.setText(self.alternatePushButton.text()) + self.alternatePushButton.setText(u'') self.refreshShortcutList() def onItemDoubleClicked(self, item, column): @@ -374,6 +345,16 @@ class ShortcutListForm(QtGui.QDialog, Ui_ShortcutListDialog): new_shortcuts = [] if len(action.defaultShortcuts) != 0: new_shortcuts.append(action.defaultShortcuts[0]) + # We have to check if the primary default shortcut is available. But + # we only have to check, if the action has a default primary + # shortcut (an "empty" shortcut is always valid and if the action + # does not have a default primary shortcut, then the alternative + # shortcut (not the default one) will become primary shortcut, thus + # the check will assume that an action were going to have the same + # shortcut twice. + if not self._validiate_shortcut(action, new_shortcuts[0]) and \ + new_shortcuts[0] != shortcuts[0]: + return if len(shortcuts) == 2: new_shortcuts.append(shortcuts[1]) self.changedActions[action] = new_shortcuts @@ -394,10 +375,60 @@ class ShortcutListForm(QtGui.QDialog, Ui_ShortcutListDialog): new_shortcuts.append(shortcuts[0]) if len(action.defaultShortcuts) == 2: new_shortcuts.append(action.defaultShortcuts[1]) + if len(new_shortcuts) == 2: + if not self._validiate_shortcut(action, new_shortcuts[1]): + return self.changedActions[action] = new_shortcuts self.refreshShortcutList() self.onCurrentItemChanged(self.treeWidget.currentItem()) + def _validiate_shortcut(self, changing_action, key_sequence): + """ + Checks if the given ``changing_action `` can use the given + ``key_sequence``. Returns ``True`` if the ``key_sequence`` can be used + by the action, otherwise displays a dialog and returns ``False``. + + ``changing_action`` + The action which wants to use the ``key_sequence``. + + ``key_sequence`` + The key sequence which the action want so use. + """ + is_valid = True + for category in self.action_list.categories: + for action in category.actions: + shortcuts = self._actionShortcuts(action) + if key_sequence not in shortcuts: + continue + if action is changing_action: + if self.primaryPushButton.isChecked() and \ + shortcuts.index(key_sequence) == 0: + continue + if self.alternatePushButton.isChecked() and \ + shortcuts.index(key_sequence) == 1: + continue + # Have the same parent, thus they cannot have the same shortcut. + if action.parent() is changing_action.parent(): + is_valid = False + # The new shortcut is already assigned, but if both shortcuts + # are only valid in a different widget the new shortcut is + # vaild, because they will not interfere. + if action.shortcutContext() in [QtCore.Qt.WindowShortcut, + QtCore.Qt.ApplicationShortcut]: + is_valid = False + if changing_action.shortcutContext() in \ + [QtCore.Qt.WindowShortcut, QtCore.Qt.ApplicationShortcut]: + is_valid = False + if not is_valid: + Receiver.send_message(u'openlp_warning_message', { + u'title': translate('OpenLP.ShortcutListDialog', + 'Duplicate Shortcut'), + u'message': unicode(translate('OpenLP.ShortcutListDialog', + 'The shortcut "%s" is already assigned to another action, ' + 'please use a different shortcut.')) % key_sequence.toString() + }) + return is_valid + def _actionShortcuts(self, action): """ This returns the shortcuts for the given ``action``, which also includes From 393f25cd88b76e61086797a2c4db6e666a62c3e2 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 24 Apr 2011 17:36:12 +0200 Subject: [PATCH 66/94] fixed a bug where a song's author/topic/songbooks might not be saved --- openlp/plugins/songs/forms/songmaintenanceform.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py index 48e614eeb..c1437ce0e 100644 --- a/openlp/plugins/songs/forms/songmaintenanceform.py +++ b/openlp/plugins/songs/forms/songmaintenanceform.py @@ -386,7 +386,8 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): existing_author = self.manager.get_object_filtered(Author, and_(Author.first_name == old_author.first_name, Author.last_name == old_author.last_name, - Author.display_name == old_author.display_name)) + Author.display_name == old_author.display_name, + Author.id != old_author.id)) # Find the songs, which have the old_author as author. songs = self.manager.get_all_objects(Song, Song.authors.contains(old_author)) @@ -408,7 +409,7 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): """ # Find the duplicate. existing_topic = self.manager.get_object_filtered(Topic, - Topic.name == old_topic.name) + and_(Topic.name == old_topic.name, Topic.id != old_topic.id)) # Find the songs, which have the old_topic as topic. songs = self.manager.get_all_objects(Song, Song.topics.contains(old_topic)) @@ -431,7 +432,8 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): # Find the duplicate. existing_book = self.manager.get_object_filtered(Book, and_(Book.name == old_book.name, - Book.publisher == old_book.publisher)) + Book.publisher == old_book.publisher, + Book.id != old_book.id)) # Find the songs, which have the old_book as book. songs = self.manager.get_all_objects(Song, Song.song_book_id == old_book.id) @@ -503,4 +505,5 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): editButton.setEnabled(False) else: deleteButton.setEnabled(True) - editButton.setEnabled(True) \ No newline at end of file + editButton.setEnabled(True) + From ae874f09bfac685cf90936a9af1791bee4aa7dc2 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Sun, 24 Apr 2011 20:50:28 +0100 Subject: [PATCH 67/94] Print Service cleanups --- openlp/core/ui/printserviceform.py | 192 +++++++++++++++-------------- 1 file changed, 100 insertions(+), 92 deletions(-) diff --git a/openlp/core/ui/printserviceform.py b/openlp/core/ui/printserviceform.py index 0de20d8a9..dce7f63bd 100644 --- a/openlp/core/ui/printserviceform.py +++ b/openlp/core/ui/printserviceform.py @@ -61,15 +61,23 @@ http://doc.trolltech.com/4.7/richtext-html-subset.html#css-properties color:black; } +.itemNotes { + color:black; +} + .itemNotesTitle { font-weight:bold; font-size:12px; - color:black; } .itemNotesText { font-size:11px; - color:black; +} + +.mediaTitle { + font-weight:bold; + font-size:11px; + color:black; } .customNotesTitle { @@ -82,6 +90,10 @@ http://doc.trolltech.com/4.7/richtext-html-subset.html#css-properties font-size:11px; color:black; } + +.newPage { + page-break-before:always; +} """ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): @@ -153,86 +165,90 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): """ Creates the html text and updates the html of *self.document*. """ - html_data = html.fromstring( - u'%s' % unicode(self.titleLineEdit.text())) + html_data = self._addElement(u'html') + self._addElement(u'head', parent=html_data) + self._addElement(u'title', unicode(self.titleLineEdit.text()), + html_data.head) css_path = os.path.join( - AppLocation.get_data_path(), u'servicePrint.css') - if not os.path.isfile(css_path): - # Create default css file. - css_file = open(css_path, u'w') - css_file.write(DEFAULT_CSS) - css_file.close() + AppLocation.get_data_path(), u'service_print.css') custom_css = get_text_file_string(css_path) - self._addChildToParent( - u'style', custom_css, html_data.head, u'type', u'text/css') - self._addChildToParent(u'body', parent=html_data) - self._addChildToParent(u'span', unicode(self.titleLineEdit.text()), - html_data.body, u'class', u'serviceTitle') + if not custom_css: + custom_css = DEFAULT_CSS + self._addElement(u'style', custom_css, html_data.head, + attribute=(u'type', u'text/css')) + self._addElement(u'body', parent=html_data) + self._addElement(u'h1', unicode(self.titleLineEdit.text()), + html_data.body, classId=u'serviceTitle') for index, item in enumerate(self.serviceManager.serviceItems): - item = item[u'service_item'] - div = self._addChildToParent(u'div', parent=html_data.body) - # Add the title of the service item. - item_title = self._addChildToParent( - u'h2', parent=div, attribute=u'class', value=u'itemTitle') - self._addChildToParent( - u'img', parent=item_title, attribute=u'src', value=item.icon) - self._fromstring( - u' %s' % item.get_display_title(), item_title) - if self.slideTextCheckBox.isChecked(): - # Add the text of the service item. - if item.is_text(): - verse_def = None - for slide in item.get_frames(): - if not verse_def or verse_def != slide[u'verseTag']: - p = self._addChildToParent(u'p', parent=div, - attribute=u'class', value=u'itemText') - else: - self._addChildToParent(u'br', parent=p) - self._fromstring(u'%s' % slide[u'html'], p) - verse_def = slide[u'verseTag'] - # Break the page before the div element. - if index != 0 and self.pageBreakAfterText.isChecked(): - div.set(u'style', u'page-break-before:always') - # Add the image names of the service item. - elif item.is_image(): - ol = self._addChildToParent(u'ol', parent=div) - for slide in range(len(item.get_frames())): - self._addChildToParent(u'li', item.get_frame_title(slide), ol) - # add footer - if item.foot_text: - self._fromstring( - item.foot_text, div, u'class', u'itemFooter') - # Add service items' notes. - if self.notesCheckBox.isChecked(): - if item.notes: - p = self._addChildToParent(u'p', parent=div) - self._addChildToParent(u'span', unicode( - translate('OpenLP.ServiceManager', 'Notes:')), p, - u'class', u'itemNotesTitle') - self._fromstring(u' %s' % item.notes.replace( - u'\n', u'
'), p, u'class', u'itemNotesText') - # Add play length of media files. - if item.is_media() and self.metaDataCheckBox.isChecked(): - tme = item.media_length - if item.end_time > 0: - tme = item.end_time - item.start_time - title = self._fromstring(u'

%s

' % - translate('OpenLP.ServiceManager', 'Playing time:'), div) - self._fromstring(u'%s' % - unicode(datetime.timedelta(seconds=tme)), title) + self._addPreviewItem(html_data.body, item[u'service_item'], index) # Add the custom service notes: if self.footerTextEdit.toPlainText(): - div = self._addChildToParent(u'div', parent=html_data.body) - self._addChildToParent(u'span', translate('OpenLP.ServiceManager', - u'Custom Service Notes:'), div, u'class', u'customNotesTitle') - self._addChildToParent( - u'span', u' %s' % self.footerTextEdit.toPlainText(), div, - u'class', u'customNotesText') + div = self._addElement(u'div', parent=html_data.body, + classId=u'customNotes') + self._addElement(u'span', translate('OpenLP.ServiceManager', + u'Custom Service Notes: '), div, classId=u'customNotesTitle') + self._addElement(u'span', self.footerTextEdit.toPlainText(), div, + classId=u'customNotesText') self.document.setHtml(html.tostring(html_data)) + print html.tostring(html_data) self.previewWidget.updatePreview() - def _addChildToParent(self, tag, text=None, parent=None, attribute=None, - value=None): + def _addPreviewItem(self, body, item, index): + div = self._addElement(u'div', classId=u'item', parent=body) + # Add the title of the service item. + item_title = self._addElement(u'h2', parent=div, classId=u'itemTitle') + self._addElement(u'img', parent=item_title, + attribute=(u'src', item.icon)) + self._addElement(u'span', item.get_display_title(), item_title) + if self.slideTextCheckBox.isChecked(): + # Add the text of the service item. + if item.is_text(): + verse_def = None + for slide in item.get_frames(): + if not verse_def or verse_def != slide[u'verseTag']: + p = self._addElement(u'div', parent=div, + classId=u'itemText') + else: + self._addElement(u'br', parent=p) + self._addElement(u'p', slide[u'html'], p) + verse_def = slide[u'verseTag'] + # Break the page before the div element. + if index != 0 and self.pageBreakAfterText.isChecked(): + div.set(u'class', u'item newPage') + # Add the image names of the service item. + elif item.is_image(): + ol = self._addElement(u'ol', parent=div, classId=u'imageList') + for slide in range(len(item.get_frames())): + self._addElement(u'li', item.get_frame_title(slide), ol) + # add footer + foot_text = item.foot_text + foot_text = foot_text.partition(u'
')[2] + if foot_text: + foot = self._addElement(u'div', foot_text, parent=div, + classId=u'itemFooter') + # Add service items' notes. + if self.notesCheckBox.isChecked(): + if item.notes: + p = self._addElement(u'div', classId=u'itemNotes', parent=div) + self._addElement(u'span', + translate('OpenLP.ServiceManager', 'Notes: '), p, + classId=u'itemNotesTitle') + notes = self._addElement(u'span', + item.notes.replace(u'\n', u'
'), p, + classId=u'itemNotesText') + # Add play length of media files. + if item.is_media() and self.metaDataCheckBox.isChecked(): + tme = item.media_length + if item.end_time > 0: + tme = item.end_time - item.start_time + title = self._addElement(u'div', classId=u'media', parent=div) + self._addElement(u'span', translate('OpenLP.ServiceManager', + 'Playing time: '), title, classId=u'mediaTitle') + self._addElement(u'span', unicode(datetime.timedelta(seconds=tme)), + title, classId=u'mediaText') + + def _addElement(self, tag, text=None, parent=None, classId=None, + attribute=None): """ Creates a html element. If ``text`` is given, the element's text will set and if a ``parent`` is given, the element is appended. @@ -246,30 +262,22 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): ``parent`` The parent element. Defaults to ``None``. - ``attribute`` - An optional attribute, for instance ``u'class``. + ``classId`` + Value for the class attribute - ``value`` - The value for the given ``attribute``. It does not have a meaning, - if the attribute is left to its default. + ``attribute`` + Tuple name/value pair to add as an optional attribute """ - element = html.Element(tag) if text is not None: - element.text = unicode(text) + element = html.fragment_fromstring(unicode(text), create_parent=tag) + else: + element = html.Element(tag) if parent is not None: parent.append(element) + if classId is not None: + element.set(u'class', classId) if attribute is not None: - element.set(attribute, value if value is not None else u'') - return element - - def _fromstring(self, string, parent, attribute=None, value=None): - """ - This is used to create a child html element from a string. - """ - element = html.fromstring(string) - if attribute is not None: - element.set(attribute, value if value is not None else u'') - parent.append(element) + element.set(attribute[0], attribute[1]) return element def paintRequested(self, printer): From 81c63146f5c0a19c015d554830f543e154c7962a Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Sun, 24 Apr 2011 20:54:48 +0100 Subject: [PATCH 68/94] remove print statement --- openlp/core/ui/printserviceform.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openlp/core/ui/printserviceform.py b/openlp/core/ui/printserviceform.py index d7e8d1827..6d6f1ecba 100644 --- a/openlp/core/ui/printserviceform.py +++ b/openlp/core/ui/printserviceform.py @@ -190,7 +190,6 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): self._addElement(u'span', self.footerTextEdit.toPlainText(), div, classId=u'customNotesText') self.document.setHtml(html.tostring(html_data)) - print html.tostring(html_data) self.previewWidget.updatePreview() def _addPreviewItem(self, body, item, index): @@ -388,4 +387,4 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): QtCore.QVariant(self.metaDataCheckBox.isChecked())) settings.setValue(u'print notes', QtCore.QVariant(self.notesCheckBox.isChecked())) - settings.endGroup() \ No newline at end of file + settings.endGroup() From 100d60eea4e79501dfc4020afdb3af23da9a3e6b Mon Sep 17 00:00:00 2001 From: Wesley Stout Date: Sun, 24 Apr 2011 15:15:00 -0500 Subject: [PATCH 69/94] corrections --- documentation/manual/source/dualmonitors.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/manual/source/dualmonitors.rst b/documentation/manual/source/dualmonitors.rst index 0299f2467..7e39edb45 100644 --- a/documentation/manual/source/dualmonitors.rst +++ b/documentation/manual/source/dualmonitors.rst @@ -39,7 +39,7 @@ equivalent. Users have reported experiencing difficulties when using a projector with a USB connection, as third party software is often required to properly configure dual monitors. If possible, it is best to use a direct output (VGA, DVI, HDMI, -S-Video) from your machine's video card. f a USB connection is your only option +S-Video) from your machine's video card. If a USB connection is your only option please consult the manufacturer's manual for instructions on a proper setup. Microsoft Windows From 10fca2dd05605df9c2d65d7fd21e6396440f82e8 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 25 Apr 2011 08:06:35 +0100 Subject: [PATCH 70/94] Remove theme image if moving from image to solid or gradient. Fixes: https://launchpad.net/bugs/769988 --- openlp/core/lib/theme.py | 2 +- openlp/core/ui/themeform.py | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/openlp/core/lib/theme.py b/openlp/core/lib/theme.py index 698f0d644..7f2204c67 100644 --- a/openlp/core/lib/theme.py +++ b/openlp/core/lib/theme.py @@ -637,4 +637,4 @@ class ThemeXML(object): self.font_footer_shadow_size) self.add_display(self.display_horizontal_align, self.display_vertical_align, - self.display_slide_transition) \ No newline at end of file + self.display_slide_transition) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index ebba45e7c..a03cbea3b 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -56,6 +56,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.setupUi(self) self.registerFields() self.updateThemeAllowed = True + self.temp_background_filename = u'' QtCore.QObject.connect(self.backgroundComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'), self.onBackgroundComboBoxCurrentIndexChanged) @@ -279,6 +280,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): Run the wizard. """ log.debug(u'Editing theme %s' % self.theme.theme_name) + self.theme.background_filename != u'' self.updateThemeAllowed = False self.setDefaults() self.updateThemeAllowed = True @@ -432,6 +434,15 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): # do not allow updates when screen is building for the first time. if self.updateThemeAllowed: self.theme.background_type = BackgroundType.to_string(index) + if self.theme.background_type != \ + BackgroundType.to_string(BackgroundType.Image): + self.temp_background_filename = self.theme.background_filename + self.theme.background_filename = u'' + if self.theme.background_type == \ + BackgroundType.to_string(BackgroundType.Image) and \ + self.temp_background_filename != u'': + self.theme.background_filename = self.temp_background_filename + self.temp_background_filename = u'' self.setBackgroundPageValues() def onGradientComboBoxCurrentIndexChanged(self, index): @@ -589,4 +600,4 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): QtGui.QColor(field), self) if new_color.isValid(): field = new_color.name() - return field \ No newline at end of file + return field From a173bce04719679db23196147da32e1d851abc5e Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 25 Apr 2011 08:13:17 +0100 Subject: [PATCH 71/94] Minor fix --- openlp/core/ui/themeform.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index a03cbea3b..f459289f6 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -280,7 +280,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): Run the wizard. """ log.debug(u'Editing theme %s' % self.theme.theme_name) - self.theme.background_filename != u'' + self.theme.background_filename = u'' self.updateThemeAllowed = False self.setDefaults() self.updateThemeAllowed = True From 77063381d27ba7265a42e9351778c35ebb2bfb84 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 25 Apr 2011 09:23:45 +0200 Subject: [PATCH 72/94] call set_defaults() when logging an error --- openlp/plugins/songs/lib/songimport.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py index 3c7ab8885..78275d210 100644 --- a/openlp/plugins/songs/lib/songimport.py +++ b/openlp/plugins/songs/lib/songimport.py @@ -110,6 +110,7 @@ class SongImport(QtCore.QObject): The reason, why the import failed. The string should be as informative as possible. """ + self.set_defaults() if self.import_wizard is None: return if self.import_wizard.errorReportTextEdit.isHidden(): From abf44320c34f01f9b8d11081ba849f45d39e5e6e Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 25 Apr 2011 08:56:13 +0100 Subject: [PATCH 73/94] Set correct field to blank --- openlp/core/ui/themeform.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index f459289f6..621493488 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -280,7 +280,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): Run the wizard. """ log.debug(u'Editing theme %s' % self.theme.theme_name) - self.theme.background_filename = u'' + self.temp_background_filename = u'' self.updateThemeAllowed = False self.setDefaults() self.updateThemeAllowed = True From f89e362b5d2dbd749be924be8c1e4732af63d50d Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 25 Apr 2011 10:35:48 +0200 Subject: [PATCH 74/94] mark service as modified when item notes have been edited --- openlp/core/ui/servicemanager.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 40bd5e9d4..a2260cce9 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -686,6 +686,7 @@ class ServiceManager(QtGui.QWidget): self.serviceItems[item][u'service_item'].notes = \ self.serviceNoteForm.textEdit.toPlainText() self.repaintServiceList(item, -1) + self.setModified() def onStartTimeForm(self): item = self.findServiceItem()[0] @@ -789,7 +790,7 @@ class ServiceManager(QtGui.QWidget): # Top Item was selected so set the last one if setLastItem: lastItem.setSelected(True) - self.setModified(True) + self.setModified() def onMoveSelectionDown(self): """ @@ -811,7 +812,7 @@ class ServiceManager(QtGui.QWidget): serviceIterator += 1 if setSelected: firstItem.setSelected(True) - self.setModified(True) + self.setModified() def onCollapseAll(self): """ @@ -855,7 +856,7 @@ class ServiceManager(QtGui.QWidget): self.serviceItems.remove(self.serviceItems[item]) self.serviceItems.insert(0, temp) self.repaintServiceList(0, child) - self.setModified(True) + self.setModified() def onServiceUp(self): """ @@ -867,7 +868,7 @@ class ServiceManager(QtGui.QWidget): self.serviceItems.remove(self.serviceItems[item]) self.serviceItems.insert(item - 1, temp) self.repaintServiceList(item - 1, child) - self.setModified(True) + self.setModified() def onServiceDown(self): """ @@ -879,7 +880,7 @@ class ServiceManager(QtGui.QWidget): self.serviceItems.remove(self.serviceItems[item]) self.serviceItems.insert(item + 1, temp) self.repaintServiceList(item + 1, child) - self.setModified(True) + self.setModified() def onServiceEnd(self): """ @@ -891,7 +892,7 @@ class ServiceManager(QtGui.QWidget): self.serviceItems.remove(self.serviceItems[item]) self.serviceItems.insert(len(self.serviceItems), temp) self.repaintServiceList(len(self.serviceItems) - 1, child) - self.setModified(True) + self.setModified() def onDeleteFromService(self): """ @@ -901,7 +902,7 @@ class ServiceManager(QtGui.QWidget): if item != -1: self.serviceItems.remove(self.serviceItems[item]) self.repaintServiceList(item - 1, -1) - self.setModified(True) + self.setModified() def repaintServiceList(self, serviceItem, serviceItemChild): """ @@ -1026,7 +1027,7 @@ class ServiceManager(QtGui.QWidget): item[u'service_item'], False, expand=item[u'expanded']) # Set to False as items may have changed rendering # does not impact the saved song so True may also be valid - self.setModified(True) + self.setModified() Receiver.send_message(u'cursor_normal') def serviceItemUpdate(self, message): @@ -1037,7 +1038,7 @@ class ServiceManager(QtGui.QWidget): for item in self.serviceItems: if item[u'service_item']._uuid == uuid: item[u'service_item'].edit_id = int(editId) - self.setModified(True) + self.setModified() def replaceServiceItem(self, newItem): """ @@ -1053,7 +1054,7 @@ class ServiceManager(QtGui.QWidget): self.repaintServiceList(itemcount + 1, 0) self.mainwindow.liveController.replaceServiceManagerItem( newItem) - self.setModified(True) + self.setModified() def addServiceItem(self, item, rebuild=False, expand=None, replace=False): """ @@ -1098,7 +1099,7 @@ class ServiceManager(QtGui.QWidget): if rebuild: self.mainwindow.liveController.replaceServiceManagerItem(item) self.dropPosition = 0 - self.setModified(True) + self.setModified() def makePreview(self): """ @@ -1235,7 +1236,7 @@ class ServiceManager(QtGui.QWidget): self.serviceItems.remove(serviceItem) self.serviceItems.insert(endpos, serviceItem) self.repaintServiceList(endpos, child) - self.setModified(True) + self.setModified() else: # we are not over anything so drop replace = False From a3c99e5b5370d18e3a26e267bf7498138638b166 Mon Sep 17 00:00:00 2001 From: John Cegalis Date: Mon, 25 Apr 2011 04:38:29 -0400 Subject: [PATCH 75/94] changed images to new ui --- .../manual/source/pics/configureadvanced.png | Bin 29262 -> 62469 bytes .../manual/source/pics/configurealerts.png | Bin 38072 -> 50842 bytes .../manual/source/pics/configurebibles.png | Bin 37379 -> 53800 bytes .../manual/source/pics/configurecustom.png | Bin 22058 -> 34610 bytes .../manual/source/pics/configuregeneral.png | Bin 61526 -> 82755 bytes .../manual/source/pics/configuremedia.png | Bin 22589 -> 35459 bytes .../source/pics/configurepresentations.png | Bin 28494 -> 44760 bytes .../manual/source/pics/configureremotes.png | Bin 24794 -> 37123 bytes .../manual/source/pics/configuresongs.png | Bin 29651 -> 43736 bytes .../manual/source/pics/configurethemes.png | Bin 46101 -> 199640 bytes 10 files changed, 0 insertions(+), 0 deletions(-) diff --git a/documentation/manual/source/pics/configureadvanced.png b/documentation/manual/source/pics/configureadvanced.png index f31812f93f14d8a6e963f8348768503bda5a2d0c..44908e8284f4c104eb5edd00b78219b0419249cd 100644 GIT binary patch literal 62469 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 z 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 literal 29262 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 aZZ4V_e*dPxt@U@Mq^_c)T=nABhyMk^I8E6A literal 38072 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 diff --git a/documentation/manual/source/pics/configurebibles.png b/documentation/manual/source/pics/configurebibles.png index cd44ee4afd7ecd02624268b696123d5328d4d605..ab8bc193014ad6e0227521a5889099277f7748d5 100644 GIT binary patch literal 53800 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 R5oq>`h`1RI`d}rO{};{A8sh)} diff --git a/documentation/manual/source/pics/configuregeneral.png b/documentation/manual/source/pics/configuregeneral.png index b1bae76e004da4c6d7e4dba488d3b7acb69eed92..18a89474e154fc0de3538893faeaac57236b5cf3 100644 GIT binary patch literal 82755 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 YU#3~B$WSli;(3phxV%{TM}vU>0Y8#xkN^Mx literal 61526 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

O-U!C=xjt@=ibxJCYY^yoV=k0AL>}u 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 literal 28494 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 O2&HGNTlmM7d;bFwye?z_ diff --git a/documentation/manual/source/pics/configureremotes.png b/documentation/manual/source/pics/configureremotes.png index 9eb22131c4895d604656ccd10bd4c2f9ee0726f9..d8801aa788e0804903d526842b3f5bdee8755268 100644 GIT binary patch literal 37123 zcmaI7WmH{Dur&&S0158yZo%C>xVuAecXxMpcZc9^!QI{6W#i7bbI!T%dvA<4EpKVt2(0)|VFeHnFnJJ=FL+Q8z&jdmK_$Rn;0}V~N>IQb zPpDs^z`rpaMbsP>ZHygV^zDs6Oss9JjA$JU?Tw7A9ZYQ;ufV!_K|lyV#DxWvTrbWsu(IeGBE2v`d5)CWZrMnR$JDAf}(^JhMRqRN_< z6m+lAJbE=uh~*djf;4*O;Bb-jYbwoTQfl~;+hf!hK@f^C@PGNx;!{eIYi_Ig?=d?b zIrFDR|8x>wD*gqJd6J=`X6gSLsHUyxa^FB!%`XI*bm+={r6{N(t1jPqzhaN_t6ldR zgH7q2`JYxATf~|ssAVEd2F^>~>_}y!9lDZvbG3+^@<=2Wu0C8c;kSI?LB!L78fUEk z8(s?qCP&aR?&K-8ieQEO-qi&}Pib$KuM7w#wJ{%RIJKKS$b-FZo&mgalDLxkm!wo3 zTk$C5e>)5vqa`kh9bfI!YF$uyz&F$x+7fV&P5L~4$4=hx{v=1x4Ua}h!&Tf zHPxGCalGO~QH$7x-stsqLZd?W>DRKz19E-Kn3R;X&qt;;qWBE{eG=}#;fsV3W>ooO zsrV$<5U+6FfU|s*{eViGlQ}%%pcHqf*RV3Ad@eLC_5aL3GA=%C3cs7Kz~U+c3UJ#} zh|wNHVrP4Vwd#z^Z`+C?e&S}Sd;fO{IvMmpD-XJo$yDHa+;B1QnI~n%Yoj zt#0&$OTXH^g!s=bfE7_n_3s#WE$0G_WFEImL2|PEEt>R5VIRDaGF63Eh%$0(=z|6~ zP8tjGOml-%82Fg*1vTzG+U}8GpPL!+q5m5rv*UY347?`W$? z=p*^ykC%uv53bJKhb1BiD&b07K1&jUtNkv zsU%*sxqJSP%UqPN9V}llVBPKQ?Ew!D26t7R99}QXXNy&R2H`#0_7sGHrSS&hhEww7 zhWKZaE;%=(RO|0xEqP{)Tb84PT;u2>wee}T;RPm)Bh7xR+X8ZG;0*fN$I8C-p^72V z35klraT7aObh$3X6x``A`gq4UA|wZ`OqI2Ww!d$?C0(st7{XVDl~S|6Qp?zxL?*GU z^;$X$9sG_>whiACSKnU)nLmyq>j)??!`O))OrM;*7#beN`lAYD}AdEw4Vp?G;~OQa9Y3f+OpSaxb(&eIcztb8^m6 zPXAKNdq?3@t)$^kM1J}lA~YmEPFpy9dI~y=(Fp|?LqJxz z&YNhyD!<{TOx4}#wc=4e7q(D6ICgd}&w(mu0h@XzYNxtkoBq+_{}>O`0L3zDX+RiA zQBs#(s`yR(&IUQSJ0(7tC0t>4HHMckf@o3f-fQ&UQZYwO6kJJl$af1F zhz!>A-7y}K`IuXR3sWlE7biUfTpK~2hEfnQ9W?Bv_Yril^L|mkfwI0KsNB5!(2OTD za5-0hldXsnqt~D5FMiHLI%G$O3bFRV(+?A_UXf{>cvL+CGNN#h&X+q80l+bi5m zWy+5SU0iL{somRsq=(kLsMukG`&juKsd$RKPFwNP3gc%aaL37I+NY}WaSaL-g-$!u zx*BS+&sgh?jch+Q`rIrK`d}?S3aIXAt^DMQm+H%SZAYRYO;P51>&@@vKxu!TX_VEx zw7Qfr4S|c?=+3NRbaXW~p6;-LB%242&CfaUhBGRtcYCAj;$P?KXY#ohr7C*F>}V=; z8NiU>mmPL2&Sd2XQ+}5bp*#swpi0b9Z_N}_J@PjpXpTCYw5<;=-ZM5oCAN%9sz+Rbzp%O|}n7}hUfCxADE;}`f`KFsNfvZd4MR;E2NTPZW` z@jB-v2Y>2Oxx2!5VS2;NY_>0(3L%Gs!o`BY<8{K?0$tup{X|9G@TaXzLY_gL^{be( z-AdM1N%aI7L%j766HN?|pv*|_bDiv`*Vmamzi9Yo4gRW%mYLQoLO5u%G_2re_=0SR z9)Viv0C{aG89O`yu-9t^54Ik0Z$D&s8z1-0b+GQBv1ft-;RJ&Bl_rh4pK^k&C3$CB zxSDNovN2z08^pn}EXc6Cw?bWnb**pb9E4K%d9_ocCd%{7_Tq1M8Wbx{8J;0$Y)oyi zD&LY)_M8GWWp)-SmcFhcf-ht*4cGPFp~{9RJiCEPAx4!N^89(xc7tK_@XLVInG~)J z_s{Trpa?`TqB;u;4~Ode#Y_*}b8jY&Y@R&YS5awhB2sDH*~h~_{lC0ZTPk7!L#5cn zN_NT3NJ4u0ov^x9v^iYg{li(w2$5Qb=pLE$PYKRGI!&2v)CCCg+(*`=ekvayD&XQA z*`w_5T}KgO_it~D9xDa(w4RUZ-<==S|NkEzWQ6M*7gHLO;NXcc+W)pcS zFJ*cKu}|-_O4TK)0A;?Fr7i?!x-t;CGbeT9`DN_TPnlcQ&64XEF+o3c)R$vVs9Oo+ zp*#cYGdg}bajIPeN|1**4hF&incv~|9-2tI>)*8M7`9DZ^pcuofN-eTB~+Zd ztnuJgI{{Z7-dCpG`B`0e<1{t|j82r2$r5;{4%zLtvhzV9o2^I`K31%G=_puiW)kKS z-y_)YhnVVEWCqkPH`|Uj3nZWj`&%L*&pc}!3U+o=l^<^B*#2YqKM0w#JJd~HBNp7fNXe!S; zR;jtLmEn${&*pNjUJ`38OpaEO_rHoFE0{4-1tNUva89f|(uU04&uAGNvzAeg009P; zPZk;Iy`>F%V)%)dWA|Yh70!g3Y*}Qj>yQDH`IhG&*)4gAxFr%cf?4SzSWegd2@m&;Zw-9d z-9KfSn{bfqrD4i+>vr{w(bCL$%uNQo3TAWdmnDOLl*<+5mRI9?TbD9UaRf_Do;^Po z*!S*uf<)&F%4A6xycdJLC8J8b+gg!^l^_VdwU<$0PO2)Y$+6;(vOt>iP|)iuHP;Q0 z8GpW^udJANbZ}En^eHLBA91mnaZZtv$XA1pZe)jtytCIY&yLk z$D^e3rk&T#Ir}Mnw5}ap>8S#2wk|XHp3R>yXl%M|Fr9vDZ=jZz8;Q}J1PCT|Rlf{b zG@=6T_DrD6T!@`OGTm@Sl=m7`=b}N7Po*RqkM7q^XiRoj?1~*9FP|`{9*mQI(Ckc~ z(zm(o;G+n5)#I@oec}Zo>~6_ud+UeIR=YPQk7p8r05i@k-=6KdE6Ei07#P6bQyL97 zH#b#(Tg&Tiwz4#m@=86GV^GO7Iv!b*wC3#G+>@0oT5xVK#bh1816a8HNcZ!#1*<^6 z$h&{qUjmgz~Yv#{~D32wRNGk8{&P$&tGw_|P;H>cA%`KK^RnNcNLQMZy#77uo zv4n3c1;5&atB*S2QK{4rDvFe~Uyg7f5gZ6wld3CT`Rf}SPu_j<-*2JmTRnCUF0>Wk z>b>6*hUIjLzVL{THRjZF>Ly8Ms-ES0oAqJL&MK@p&IePnUs}Q^cAP>J z_LC}R2$mW0Oi(M@A8&Cb^&aK zi2KoU2zy+nlaBsn*oCV|vk*sp5O)S#O)2X#O;D~v3b;}$qj1vqBnj;so>C?I0%#yk zQVzsRnoB^WwSH~66t560VA{Ss5c^q5XN`r*UbSCH7MB<&TdNIPg_z@u@F#$Ky3Jar zzt)RNcj5bG9CH*vaF4rLW@OF3KDF?PxKOQ^hbp>_3_FNpq_7Z8 zZW}ylF`^g#ZtoHbH7!Gh!8?NP{*P4Yc~Bu4SzNkepf;$Id4oGK9;k8t7nssX3&qxE z!U0hk38WEBHr852-fypk=E|4Tdrd#0 z+~521a+j|}xlce>o|mCEd3XyJ+6y+(qX-joF34?(Cyzpl5{(e85Gq(GSU4H=su8PN z9JU2!*rne($psLz!IkAJDZZCFx_%YgMfKDvvyk&$4d9f+wq=$a2}2_Kx*vW?Y;C9S zpt%Fo?D_F~Wya%egMqrHB;I*Rmx;5D)KsF=+vsz?*L5V-Z*K*_sxRSI&NNxHO#s1h zGC@}@GDBW=>O)Aq^9>T|2canNvR3T^MaBNAG`+2#bTSAS@;r_K(9mT1vP5$aBq}tF z!iZ)qaGP}Vm%>X9M?+sdo)CMOg6XRRoPjRPE-MiCmCwcnV#9NY)XJuIg_5F9NkQQj z(IH;=+rNZfH8tkSa|%!KDN!-5a=P$s0|86^LGyHwmCI5(cwSuN^hv|;yei-9dr|4-}vBC#Yu1pMdeAO0lrz*+viwnHQd zL;CkRG=e}JNN)UdUkhA3|9`qAQgX{Fji~(vh)E%iL_mdUJ4vqC0ROk8NeA_K3f~!* zEtgioZ@noFM_LzT|28aNHkK@`eDuoz?KP%2HZ?O~!kTn=NqA0;={`R|zQRZ;@87O= zU*yijm8^9@eXd3hHt^vSG7^G{DBv~ico%oM&j+4U!J<4L9@z7V1kKwi{~I(QX2BeN zI_EVZG{yx95ovVagL9T*6hC7kI-gxG6D~76ppSfV+Tm&J?e{MsE7pTmJz3*t>PNuw zdY@X2v*v#jODSB8FYV~~a#%II6QGOCk*4C?EQ8EoscJEoFfU;gvdPbTvs@=>9JgRbfw6g8`T6x7=@d~yzZ zD$LA*^;w>1)uBi74_7j1Z=JE0HHbR%cjL{MZ9_*YF0M~rIj8M6zUR9&5*Qw1rmjxa z1ywr|Zv$$5vR9?T4f*ca}TW*NgeLL4VR-{vz?L9NAYZ~5O8~m>R zL_6fL4aO9|kDvw1oQcbW3JyzefAy;^eqUmAu}--L(`y^H^b}*hpP@DBiPH71r&VIl z-Dnrj&T91OtL!WPS)aOGC7z;P2sBC1HzhlifT!xrW9L#OW}F+l+lptHN%6B#x&X@E z#d-vwXmY%@2hqVJ)$#V=v24{;zGsZHEr&OMvI=gayzr{ZxWsTDA*|8;3^oN1Eds{u z!Ipq(m2KD?tp)LDzi=CRA~)b74F>RX;~gC%vc_oeePJ$`*=Lpu!yF3ZD{v<6~>3^1Iq)}pw0))4*yZ!_l1 z%%*x|R0g&SQTGvqqfi-5_(j**KRZSxP;kDc{VF~(P}Jh1PCaJ0_s}slqe2&mqFjzl zMot1>${SpWDApQ%@V%HGifp|SvUKSfFu7_Z{K+x71iv-K#=`6H-!fWgSCPp3eUQoE zjP=cJK!1e{mk3atkyEQABJGUbZ?KG4RIp<^y}qH>g9Dg+_PSbQKcaFiPS$Y#7NZt@ zxZhpU-Q0vI#03PXoE3@NCptV2z zN>NsXyxSf@G!CA?8+#8f!Cc`$Qry9WD-vaN6!v&4H~TEIwh6VACSiKAd|3+IT14@Y z{ytf7ea2Io1*@^A+P5zshJSTY!NnV7RU|>eMsFB2jXf{4~rfj^% z?d}w`TSwfE1e@kxhuck8pcY5*<)DdG72~p-~1l5kG!P`}%bM$hTb2hnG~3 zQBnnhdi|&W_1MX9?Gzh_F%YvmX!@h`@%e4+=-DkDS8fkaD+cbJ3#k%PDcjNWfV}HE zqhIs(qi=%=W%_AaZ=1w@OWg~}sch|R4^RIg!^G8n^)@o|DxJgVE-Y8X%VsHTF__`0 z74jJ{Bb&zTL9kKMlrlhO9(S;BU)*(vr(3lu9sYIt6?w^w{;~Upu>iYWbv44Rstspo zS4y*gI~cw`s*Ste4D2&(VX1UHxg$s!lBUNv`D*fTMzlBn?eE&{>Q*fRV`&QnVJ3Uh zxPQ{gxb6e_S2vF3s%N!`TU(~n-9$D8bY31nsNmBhpM8rAc}w%FcDo;T0vR>IZipD54Vs0mxTxRN( zVf;Y-o*==IX6$HW*D)e}_z9dYxA?m%hyYhkJ$wWRpVjs3*6sbvSvmR^0<^f2X@*jl zmOsqS$TNSdDylr8<99Gev|e?On?Q#5+WW#^U5c#*%Y!F2a23ka;k~&+t{glXaZH3a z57`-Nl~U{QgV$QQGnt=mp(JP4D|UB`|88=U7@g?fd;%X+!2LHb8Z&PsFHg+Kh-00| zH=Uz7l{lAyV#Wh?1z9PqHM~%XZaSCEl*Q$|D|cv$XNtI&ecXGXn*wq7d~f_k`rhkb z5*&Np6jT$EF{2R;m`ka6TKlfovtgR&OSaC<7*>=0oUlGI#;&v;q_T>_`h)8`e`kh= z{^GA%?_JVwel2TP zV?L3|y#L%z$mT7@F{ANlKriqf24@Br9?F&F9Zf^_skfXE56`jm;{{k;c6*TdP~<|F z3l%bi1nwJfZyYqu{{^&`rjcPB0N=>;G2$kkHstTxvx4>$tr|SstIYl*O~u;e`P!V1 z=#*}5Fy{T|dogw#pFqBn1~ExQ3u9W+JVAJA5W{5rLnT3~ku$s!ha4_b(AbW6Be5#> zIW|Bao-Zd1E<(^tykSg9cJ}ulpSAM`BRQYHwl;arpRR1jSJRWTsC^kE_c)wx;5V&{ zzSOBV+R_F2UOX*zd*o7g@dXt%tC(3fhb#SYIVh3 z_zWhrxIkoW&^5^Zg~!ke*?0;-w>a|8Zc6OsMpvqst=V)vWzY~6uRnnTR;^x>@-+N2 zI}14A+aNZM5hMfzkt)bdt%ne#_yk3>Md!-LFr1Euyph(hw&6LdIK*aSg3eU@@9h{G zs-H0iIc!5^i_r&+Ga<80LKq;eVd`pr`G(jW-?ulDX4oL))wkmFHVIxbK#j;h%{D@< z4RuXs{QhWImj1=<{sTLa;9Jnj_4F~i?jzf&iH~{c#p~z&ZUD6N-sDh5ep|NjbHrK5 zD8K8Ge8;jIN<#6a(IroStGhHPcJYM%Rq4pQ3#Xm*&Nq{7FQL#MY|heqTXD9uO0BE@ zWQn|nT=^@lK?M?00USVS%be~Y31#&VUATdxKi ze3u%{Avyqn+cqH@GGvL6u|H6zX25{9$83Dt(eul#XpR0(f~MS$1LEtO%$4)hSE?Ex zk4nqx&?gtF%})kdUV4ALi8BNogis$f2T`vCIA513O;gh^UgO%_eEsMYzus?o%CK={ zT-6ZtYuT>vn*5=!K;)iX_TuzGjrcrZToXa{tNkoKnVqX}A~c0wSX9A+Dlyh#IT_?r zHDz~e^36wo_;qb+OC29T?EgNWi53oGGwg51L_I~h@D8wM&=+PklN`EqVYsLFMRSO} zN;)G#|7UB1H>L|0p`yz`;O(*}?9~VP>*l$lNG|+b&OP zMm+Db&#t^ZlY7334T?l1B7J(G#3aLD&!_`#msUW?JZ=F)wb^COSPs&_N^ z?DD6BAA>-PsKD~h(3Vv+D!zY;!mo1Q5JZ85>a8biTvK02y${unMepC>MzH!L=6H_t zTnJ6)#pWmmX5?T+bf(uy=CL>ot#3V9?$Wn4nhVx9ZJgj8X)p*C&E%_4E@$yFhu-8< zJcEbC6m4He6l?|3J-M3xEOIFQHw{8fiprVedASZ)JYh14ON-MfAdp1+96oNps<>Xq zT*C~X!##g~@ZkOqU5kdA2M;fXjVfX+j|ePJj*m?f^Y;of=MnKXK+ zlp!XIpQ<`fbK=8Z-F3HBDi}4+$Uy1rd z{j*saAu&~Jo4qKU(<1{(}^ zt!eSPvf1nFB&>g952eaSk^24P`%YCV!MCVf+DwOvF?b>jSb&FXf=W#`_s(assf)Ft z*rV*eUyS<0n!&xzq+Ns)BMbvzdQ+w5O`X}f#<(Z5MbO%9j>SeT-y)4QoG*9Xs|}g_ zC5`h_UM7#T|F+Ak6x;lyhNyET|)XODTwk3(A=sy|diwZT5JXi-Lf>kKl(v+EZ-)^XzH^cH@zF-9FfBcz1NonF+TCTLpPX*k-h6;E0X!F z;dA)4y|i2M+ib50Ro(F2OXyS>N zF#`WiByWO4&O-B(Y%=20>ZL96`4_5TwKLa0UT!V`#A5V#sW>~tML8QsJG)~Zo-rf} zlSQn`*ULUJagqy1D)*XT3@6@H&x{1`H-~w#5P<};Pt#AGs28Tf7z-JtkWgWjhs?ey z$Ow#STU^ENpN01seAjQk<(T>FU6|Bo4mr@yhmCCMmLBjJ*rq!rHP=nW9B*VRJ!wOG zi9=@Ruubpn=5vD0&>I&8;vKuv}RBObEaXR2G#snS0S4FA(?Y5lEDvh-QZ z&IuGR3ZqT1>+0(P06_1=1ZpI`UWzj)Gua$DrEn~Y#9wdunv}7_(E%tw`3h( zu=1#~GjF;WXZ1g0E{?yhqzzk+y6o2H84)(zUjL)LwBXH2!x-lxJY{wY;QLRw#rgR` z!otGlYjp9G7NNz4T_e9vZJ%lXeCy&1m50oGH1{8HBwn1%d(xd8G}U5*ZsbDI`jom$ zec_>NU{0zi97M4c9Sgf{R<)2T*rw?WN|Fdrft{=)FAp=Dx8L&5x?8!Xt>?>}+zT+i z1`zXI@6}rY5O&GA-3~7ImQBZ{D=M%-p$Ae6RZv{^_(`s~* zdk-@0li84W=f>isBPx@$R2|8*|nB8wG&*5OuN25*rj_hWOPoqAw8moUb;cMt=Pn8iM?jBa-n# z&Y2+CHFUA5I6irZ&tD9Ti(%DM83tbcz zi(o}n1o53+r2Iv#dgnJ-*uIIXWSf|Zo5DS6K0weG$!7W^{$+Na?_dZ782QZWq@-ki zd4$>c^2E&v{;fg$SGhgxrI->v?{u_cb7E-1YNqgfy?TvWbt`t%qXp~emdVlu^9D{_ zh=6qneqfdClr%9q^Zy$js9)WNB0$YYW6yx~!C%QwXSIo*qZDrercP#I-%8S$JXo1{U!GKQp(tqFP!eCepeU-7#s`?_V?85+ z&UrlKzCsq<+zM%T^KRmDAz>m4=<5@%sIUB@R4-McLPACc+}se+(<9*HvzTOi>a`k$5)a*^2`5OF)0fmK$BVa7jvTBU4 z>W{{kJ%0i;B5DAQBhH!;#Mfj~VABoSa5fDvXA{#3Au7lRigfi(;&n~eTf+YG$9Av@ zG2%f8yNtG+s0xaT-(Z<^FN#CY)TG{D3JXaJ;&r5eHAL}9MFX%4GPn?-;Oj6S;fjS3 zEl%KlIIV>dF)rtGy`f1yN-C;CpKkB|fq@-I&I2Ohe_RvFZlY~>B|M)3#B!xB$m{h1 z83jinnV&M8=vyMfC)oqDch3FygcK6JS8}I+BYrM*b}i5*H#avwB_#_aQ?Q|~?|+>6 zDU>Po4-G9%Mqij&X5MmM(MtB~aCwySEIF(NwIFy9QS-jU+I)`YjegCtP!RjaO~1G0 ziz}JYDVdv7<>loChJ@@^{6%?okm22j9g<`1#Y)#5$`Xkm)mGr80gp|HJR;@i`rZJoi_fffUUL>Ch$c8BQ$CIWZ6$j;DG|Zihw!5F2~ax+2A_z0*I78+HLF zw`$j0tx{f<=rfysuBO$_XVu{3Ze?k5kBEn~I)CB^pr7~CKwCaPAY7b%Vs#Zri)yly zgz%$`$0LQ9U#Bd)(s}&IAWi6v@5FHGbl~s*CNc7974gDF#l`sx<|AWcLIpF^Ws2l~ z`uawsWQ)ua23bP&_Kw-+)Jz^lJ+6^?*OSR}!Xw72pN6TL&|Mkt-r-YSmk3@SaL2V{ zI{qYnHVjEBD~z}Y>uzBQgm6}8r?+JdFwNyj8?OhjXjd^h>3iDH!_{atCN($B>`;aYz)hZiQt z%i(Fi=8r{p*I%%tavF%I5RsQFQ^MhN3?&weMnFXsk&yVl)@)<)c)4-D+8D9CthU;0 zqwDqiEo(g6BlD1Ma<3}-D@}Hjf1*P*R8qd-+tVNV)kOwFR&XT)QvHgQaGwr$b1TV8Jt<&~%kUWOXthcI(Ic();9TS;XzfQe zikB(!pAo~pw*wsNauR9Po0W%Cy~`Jh2;KxAy@U8EO#H5}rC`2MIx`vDUx3G1Wt{Im zp|ahYEtx0>iWC~(dAf=?#SXF&g8^P#;4-2a=ReIkBjGSFgd8TnBpb8 zK2~y&PWB#e`x{YwhYRuVa|7Tn zEGIP8@(4-Re@I^|ftFrdvicsbN_{LRyKV|%E@^oE4Z=#7;WTzS>HN4H_JL1Nt{M%d zy=96e!xIxlhC|VX#l^D~s&pM49iyiz6XGwcX*54BC&u%v%yfMaYPL8Mf`+UQYhT*p zaS!WG1~f6ddxm3=jO{#-!NfJY^-uj~!JJC~u}v6gHHLebToY&J0wab?vz-)CI=N9b za9hp=Ze|YwfluY)E6foko9>C97Bks4AzusZ4*!?K4p1~_+19L`x!YqVeX6M@_};X1 z|Jv$rN&nmF3FN-&oU>h#X@MxiQQt=7OLvHA`#Fz041OQaV^pCFm@Knzd~2}FA=&Ih zmagkbG(9ta#3PgX>bY6hYIfg5r?wrpp~v*&pmR%7zf-z(N#~_ET8->sTq;z1kM_=bI}s4F98yotlfweiT~@z$YRESwUf` zK!@$+&N2j>ZMIbgsoN=QLiRNRW3~~Z&m@aAJR*X!;V91D6!}&+YfvAHu}p{nRg9(l zI`m>9cR3zE)9x_Gh7rrJF&P4E{MFZ!Dc&-8 zl0WDVnUjNX$JIM8e{-i&tt#D=6f%*a82qCiKQLyi)x`dO;hWprlcgH`?Q~-0uFJ10 z$WKO#S1ns_xLIBcEsgClJBJ^hfCb)5kH)WLJ!!ScC(w#zT>7y1+(;34xn58JXw@5P z5ULJM_=2hj{bb9Zhkk84rnisRb4>=jcvqsODnU*EoCU3z%n`_Vc86nPM;l_IX*tgv zBF+V6Z>;T#s&X!f8%R%0Jw59of??Tgcgn&cKOfhOzjTvfjOD~cI!V0~#Vy)=^xXCd z&VWp8PW%$dI8ysfoZ@G-^w%E_Fv2i-1Ekq_1{QU@4l3N{FlSC+)A`;|p>NweNg&q8}OIwWg0@tZj6_j4LdWNIj@w8f^6B!DwSL#C>TVdTge84B?94f+2G#|t) zcsi53&~)4GD$gWXLGE@O&(KCIpxNx!88c%gKK{TGN<$U-&eK541(2LxeQOBMv~7CV z*T(o9faG51_mL5SCQs=YbGY)JX!9yV!REHB2Z60*2etSk6TRwnvdD5{=`kgrz^PoT zbo)Ae@99h4{{H7yXszxw*^c{ZyK{Y=6M;w1T*qnUKyIZX-QF*{%A)FDNH1R?DQBkS zbh{z(csS2fuQw(kCs&k{ zUJ&$bhv=BYOA%rublEEbOsx**kjt0uAvK#eVzKs_&yO*C-9@NMRQ$bmdGdiQWr{`S zlUedZ0TIq~F7IEAz38JtUS#(AhP?Gppf9eO2bHx|-p3S@9C>%1VucKnVJXZKSh4~w zucNLxuDEq9{>@feH8PNu)A_U5?fm&Zo&s80*nw$lts2eU=|V+iNAXC4B;xC5yYJql z;`p(4$uC|76z#3ZkW5t1Hp022{ZbH=O!PJcMaXFwS>yLzD={zGQlB%_*uaqz`mBnVH=*2Q2{)+N)BuEu2c$^H+Anh=p}mj)1F3d`&49-psP0-_ill}g9B$NN=P9>4H(0Ht zrcxnM`0fIkXkjKiZ*yiI4VGf@2o>f#j^@r4OC7t|@?`o_@vQRs)jE zo~aWVY;$c+7L1IHAjgYUniIhn%4An`hwrIUSs}bfeT2OxO#CJg)SosaOo!EkRa;iz zLCvHxd?B>d@bb&GA}iPJ;Yv?VttsAk#A)5842a!mvzPavffjk&Ph@a&iOpn@+oJUl zI9>fON?3&o?he4h*I~Kq0b>A{3hrnwq>)JUl@b7nN_1)Jdy;9Dgw?36^=-hT1h71= zrQu{F)JcFGJ?^S9kv?LF#ZXrZneLkn6sWTc@nZF=z28P&Acd9D$2}#Q21i}`eg^q_ zG#-8E``x9zp|p2G0Jd}lsz0X|2525@Lq@wHr?}-(Hs?eEu}jpE=GBMW%{72kP^LX^ zEdEf4>iwtzn7FF2Loj36ce=Q~48&aVL(@x+3$NdJoh9%`KNd(XuXG@r-}pFOtLH&Q=tV{46ppzRdmG^UUzaamvH4D9dj>r3_80wM zFD?4nZ1^VUV0BGg_r=k;yF<@KWpDW<*)mVY+)9VMEZcXORD71vKP$9=np&WEN|9PT zQKHCTsao4|`L|z_)mnUVa`234Au!co&ytxxl{^7a9Ny$iIZ%gneXG7~DAnvbarP8t z-g!qqs-pp*4T?CM?0PZ4WODe|o|?3_YvQiod=l|qWyWS(wVIfM1Z;XG^JIfPb(j#C zYoQ0kjc?bV=puV-D!#E$;#BmCXi+x$xMbs?PFCSZAA(*mMV=!Bvp&LbAiiVFHbBZo z(=%B`1=OawB&xyv- z#4)x&#qzAafpvrXr3u=r%g_YL*-CP!};d+%waoV;Vql{e>szSiBAinKP# zqTru+VP0H!Mzc`>&u5y&>wuPq$)c(1F|vz~>GkMk#D~xA8q4GHuzhh6HDEwUPag}1 z%c430licE?9>H1$Y%CWSPd3=PTn+$9w;8y<>|?^-v5h*PvDN#$dik z#P!WhzEB7p@GZoYd;T&ds(Ev#pqipBRdL+m*snvF3L>?vr#dQRo0^wl{G2@82}SU_ zEmdvqd+G`7UAqbY_x#+P81I!QZfKP6XeH$e33+VcTftF(>s_Yn(QfEdeW&_&~dj( z`uE=i=j$}Y^Q}AY7r*m~iHIx=TK`o+j!RjRtw@Pt{-BV%oTR`m;@F`CU6hUe|R;oa&R1{VA{j(C-+KnXU_rOr6zY?6!W&rqIpf060r@Sj;^qc&a zd7;Bxt4i)4;t4n#-F9FHo24eVbUyLsT#{|XS@lhhkr=H-e`x0cH38oYDMjT+o^FwK zJe+tfoU=$E>6I!aGkB*MEIjGT6QB2m|JH%PbH}L5Q|Y5Q8duDY6LdT5sB-3f{i0xD zaA7?;m~)xUk;s~oB=+F+4!@EskFcvRSKF=XH3*owarUlkpJP>lF*FtbwiDR$y?Qli z>R>dfAW4jR^Y{${>=c%Oksc{vcXa2D0>hE?$RU{+dnM^&Oq*$I_vC};WVH(YT});_ z%0y$gVr*^1E_k9oc&5l(8F*lWc!B?GH8=r)X8V=&U#qpS z0u3xtqX<%!TE!VDF(RHw`Gi&;KN5Ygg_xo_ug3AlQ9u{4xhixqv}w3<6BKENG}NK* z<$9kYwNz1&hO_>GO>V){>t8hX>^LJ?A3pa#S^(yk=l6b1p`kiL^{@6%XI0*J881wJ zU|YL=Q@ne7X)Xm@&0)GoT4wR@+k&E9zajd3-70mOqifKjj{H~!jJ8hY{v{xHoK-Iz zx)qf{wd2;5ln2VtQuMM6OL=46>OYN_9ST~U`qmuJ9|_=j-axX>Uh*Lu8mc-PkD>Ak zx=bz;?g1d24RAwEB|J9c>phCpuZWp!$+8#Djwkb9Y*y!rjlX2HdG@4(wcbUpPgWiW zC}BRpLJzSFU{5Q=e={}{z=^(7%p8bOvErJpi^J!{dS7Z5gR%pgW`=E_2;MLjTbQqd z6Voz55$V-q-rd=eU(5pznxa=(GQUzrtQMaNCmlJWp1GplL!n}8&GPh}hO1k9pf2VJ zAUAZv?CHpm)3J`Yh1^}cbt=0S%|iJ^H*9*i=$w?+W)3M<^$ztT-zSK&g*R!0?4%NQ zElhXC1W@1>X$E}9i;JXJ3FQ2Bs;);N!#uoMVje64_$nFV6NU@ zgukDY069#njC7EHTP|ABH8p*@Ddy(b>vfm<24i!-*-QQTUoy-fFdWB;3svQsO>k)Qep4d^3P{R6T(txUO{0$|VMeZ#;H5;n>{?NqAUJ zQMY|5ZS`Cyi*dUSU9`Gn-HhzAkC4G;)ju?qGChq|x0wpWnZ9ZR(oyG4Hj6F1m;b}w zTZcv2er=;DBBF$dNP|jBBb|d%(hbtx4MWEW3P?+LcS|=&=P-1`&_mY%L$k+6pWpW$ z`~BWy?|=8PzdwOt?(4qpYpr#zwa#_kDU)%Rd$sqXH;?P7n{GF7ir{&2`Pd1x5Yzi0 zZJB+|=LVWc&Y{C+WMlI3XD=KM$yeMFS6oD;TNxBo{)AezE2NJoKc3N=Vrp&7aZ_&T zRLHAti)f8*8u1+Ua*5FVC;=S=V7=)&gV@$pTEXlVma=Kjb|hAJ*HHN`)x_$HVyM{& zF(P*TJ7T=z2MQX790ySq4tN+ng2ID@t()MuTnaXjm&4TZGw_2(%Znl3u8*q6fa z`8aIBR#>oDo-~s~?VjfJ4{PV(03uEKJ=o=v7tYdBq1dL}Mk&JR}jKLw*Ax4A%yPo%V2&s6H=oA_dt#@A8@H4>d0Uln-myiD6=ZWg{NyA$1=8+z% zzLhssZo17NN;t?X$wiTRCjxM{?E3)qbE`FxY!U~rUGk`T%x)&q_46%HQCUjOqj~wb zJs?BvB%HozKk2#;0Em2=gE^4A<;UZ=`(8Gl-HI2!%sRBD2 z6l?}ufq6Am(F@%ztT~<$vcgFo4*>;%q>1u%E^v%@hnl0)O~>$(tJ}-L?>fj30sb_} zG4WAyf&z5&0g@&tDJ#2iPA-US1uTmFmL~Xam97nd zLuSd*OD&%4J~x8`rz0X>7b}6tTsZ`pz>eieuDuUe{!Lr5zg89SXjxihaWE;ICB473 z+AO>H`pp_e&$7BDeKx&K)XJiTwv381FuTczrdC_JQT$4;CAM68^^>XADXCD<&M+Zz z*5E>(V_(}S2m_CX)nvdp0F&t9FQW*-0OT&>(a0<(+fBuoBp@Rs^EfBGVLvHTC8Kk_ z=7yX^-pfni_!xbr)$sjoM~k$pY;3)Qd7(Ao3%TxJQfPJbD~b!pUDmAt+uU^@E$W{K z8>#K6?iMx=&lzyb>#=8eYfo^A6T#Jq?kFT**!}gg(=+9FS&=bslUR29Y~sb;K=V-} zVc6a+#rummOJI;tz*<%XS|8_vW1o$)Kt1iZ2$ZVm)4L zfe4tYswqaKB)KS%hTdbt4|t%2`NJk__IsUMWf_i!r`mhx0XK5`>F;F9$*X7u8iAL` zUkhbYDtz&TyZlA0X7|E;5`5U@My!{g_q6h-&8b=`Ne_HCksBYDg&{le4r@Q8VxChU z=yld{fW5JiSFLhw;3Uz5b=}*sh-*=w-fi92>NC%m`ls#rl%Hee$$KwA&KAh3Ju| z;)ekCCrZml7{+9f4^Sn1uRp;Az3<%(b;JHks4U4R6{Zv=U4V(I!^VDr`OcBMwhZg$80xPUzv zQ$<0i74i&bW8geU285&$l#1m?o?Qb2+Okg;0%W~TuCh<}=aOh}V~?Xw+!Mz~PF@s_ zL4Tvq>jljq&C4676oH=(|VT_N_!%xH>^e8C>N)_vMItV3#CxeQS4(YA|K6t3DQi$*e)_K(A|e2w#D1 z(DsKx4PY|up&U|p$c&5DN4H~Dkeq{pKuiqnm++Z^ z9v-`P1oJgPTJsShr@w4foTGN}umobU<3g174q16U9{`HGVn%I0Hj!mmG;Bhec^QlC z?fu!sQVXz10~Nd?m675?B3F!+4-W3M?6z=NoM(Dfdw-dK{ZJ87c^!Ruqj2z`=d?7a zqQILpUjtzBaJNVhqJ=XZ8?xQaTSOMp{V|*}n!RFPb-OQNG;< zGrG~gz{yZfeqzm5n)u$C4C3Prh=m6nV;#yM!kLbTDY&PdVffm~9%s8N4nfboc7V&Z z%uL65lr~m0M@HA?t#k2%sZ3I?PlcT4#&boan}f18wXvXXC;Kg*4J$?1&)OqeNEv0T}`-g71a8wncrXZq_H4C;i65VYIKXUUM7kVfc zX)i7RII_sX29vQ9;)_vf%&;SL!Dev};N``sI@zX)Q9dVVP`?Ve;~+j~cllKZ2Toy? zAvx0YsjU}Q@12Y;4{%8Ev#wY-Be5q=riTCZ{!h4$+$*rE>HlXB2Gh2LO_sO(nPXiY}r28P^JwPGU(_y1Xyj`!f zkS5AoqPFLPE;&1!z!6)b{VXZ(MTTVocA!;~o<%g>J|ju`-tbYm+$%5a(QCC#-Qp!o zkO3oN3hp55uQXs#Mkc;rboV}1?8enO&2W2f{>dqwgmCPRO8K7hk*CSK5VzlOH`6Zw zyX7IaRmC=>`z7jAVl?(0pvURcg4`s-{K4Yy=H_mr&cnpIc4}_79BAds&oN1vyal*9 zVq>9Mr10Rcg+f9+#+?-$& zbz1%+zV*ePSu>z9!Ez8R@n-oPG1JHk)ApZtN$~#~SXDTW&Pe9X;3GzsXYu8$w!}Lh z_U7X8F3b?0Igz<+&cd88?1FLL{m+%!DrIDutsG^MAZy{rf_9Lje%Ij!tuOK0T4uABJwmH(%E$A!$#V+4S27(5g^*f(|$$Rwf)NJ1~}5; z-E?>yT}%)OEb*bV#C5mkt`S{tTHZ;y_(|aNh3U0N1zPpjwQ}R?bPqQlnKLzleSY-b z=&rSkKSdWx@5;F~4e*(a9`Fd3&yrEKz%?+uD@tTE=Z_Ms;FuTg;8x zrX5y`&1V9fgB@RGQCBYXs8BiY)*4L6=6WKuN@D6rjdrv8oAK0BC15W3Q4bq`F$-|l z)4L8+^oiufyBFxt>GB@mIORR|Mwd{mNMM^>wnyZste2T+j-o)M8jI<~L-UzEgS~VgDG@rt3Od zck|M}RbW!e=vu41qIh9n)U{mu3QE25>T>ZC8K4(FFK7ih&h&%9)YbDgpQDuN^ji3M zY31xUr}Z$NL;M8sU$A>b#JMnkFGBs{30Ox|bto%Gj z8<;czPZnNZz_DEXmk`euD~-LRvA{Rd498oi_(RxW{rMC&8HyWBP8Y_N^J@Q4F9WQ* zY*@wBxk5|~&kKs;~x{)(#wN;06OMt-mdRz zVD4L?o<8E*>b_7_c7H!G?JUO!n3K~TtPEy(Z!yY_nN;fA`f$ay^&`T!n^v*xX~;R0 zfWFnYpuvKwr(`|#Qd!agMfVNI_VJ5!S+^K1=1H5JFOiy^fc3Q@HW@Fg=Pi}(EUUJ< z_tt!Z#$;8M`Icz+ZHoZ?*RG51=r{|Y1LDGsbnl*NtJak&lk_;%Z^)Q^hgPSDXX47I z=;X-L=)$y#O*X=t8dFTz7lgHYjQNy?Rlskk&5*e~vGYKYqlm9)1n<-(Y`JL)ao1Gw~eGnG@*#j`4nv-L#E8a3h^L z))H9();3%4k&S6LeB*OQK*$;P%^8}-o656~%@O!@uMM&Kb9Q7GSkO3FpFn9y$^Zjq zKXj>##)0n^%?`OW(+2lOG&_0bj(LaJ6?`l%cwKGh1N&CmW;Lh!W-7YPX=Ibiz}o3! zZ(3Wat`}dATqn__EmQfq9T@70WiazSb73+kN@fF@C@2au0A*E-jj0CXm^bbopeC>$ zGPKmUY<==(U$l(;QVXnsU>2 zljw-Ynw=lbwz+OB;<&soY$_gC-QEsPbllhxnsT2akTG{OK(MhtmPe(G+uy9UNyocA zAWhp5j7O6%*&HO$THY-Sx&BR1ROdjZyckNieOHWH=kJiI_#-$BlI??>o~T9AX6uFO zz4_9|4aLT_ojTyrbm~@4wDd@EnZof*9XaZqkLT9!OEL)0=yJ(=JibxXQW-u8c{_o6 zLQva(-!}AeEM_i1?8ZqrTl4;BNK?cEx+RrE)|hwuhuMeg%%{2>>5JKMBcpW%ss7Ko z`H(gH@pr|>K_9C_NTfxl$|3Svb?Y`lpyZ+=x&he{2Qegcby7D;r8|kHn+)1fQRD>2 z3U33^5b+fQSSh!GI&C+8ZI*BL*U7n<|Hb`8Z=3N=m#m~B@DUoC!|H{@$Kq+aUHdN1xA)RrV^Wf`nTFlM z6ATR~Ex%d7!~4^ss@_{~1}2NpQj#mxFLY7ghm#t>_GWVlM};pfO=X&(CT?x6I`Zz1 zl=3ZHd%OkWBtmv7(K9X->ujVywkCopab_L};!}FE+FnwT+a*rh3_b54V+mUyR16`c zSPYS?(j2|2DZil87Z{Hd=-6$+j^@UOiJ&31^S zWAqWNw*NQpD7dcxS{U_ml4JoV?SaRn#x zD8%7&UV?dcjw5S%;Y*a9)D7Rk1X|Z;@t8htU1AW(_Lx5<=uYG4Gb%@F*=zT)69z@$ z(w;CPL?_Pu>dUUMt+noF+uqZHCS(E6y^j^@TQ+u*yH_rL}7!qfWbx*n6~6Pf!q2C-W2t6{fpjr8?4jV z*)FP}ZN=ZTS7e1rbu$jK>>r(T)7#xo^Uf}vIG1o%Qq7Qff>iQ!=-^S5$VvOY*ZDB; zF{mwYtMqV`;nO`-ep%D3sPiW^l&z#>?Vone^Hmz4D!rn=UAfw)waKRzXc1MCRLNaq zs#zzoIN4&wan+WKk-A^?Oh*;PtI?qnqt6E(xY|e;iSon{z>lhho57=1%EY?4jd_x(={nIbvhtw3s@uI;BMaHxqh=*%{{Ka z$Lx6G>X>2xFEIcX>f!%pTwbFm)~-;YiNwA%l7#))pKmA&DnSo}OGLMUe8Vr$zhpgn z_(OKp{rZN)Ltak+CAr%-Z}WMT4<$NS9=*Vdt&C<(8Ww?(~}l zAJ>p>^t$S;lx7-X+?%kq3^c4_k`scXGHX~fJDV)gUY@F0^CqZgNhme=btLW|9^X_e z3e4Bzrz5av+VWhE9kvOYQUA1gHZ``-Ry}2`3uw75f$t5_ayRi2iUBtKQ(ctzlG%w`^QxvhMP#Hk z=ae&U+k`ERuRwQ5Lq%Hacc+D^&u;-iSA2+LKYwRuJ~EPhyl3a*9AUCk)1w@vr>b;c z=Hx5gOw}I>4k%_y(Pg#^t|2t4mv$0~IHtnZ<%WR_eiU-xh-KZ}QM{tpV;m=}5s80JA*HMX9-P$$(CI4k`id*V$?@7iyAV%Ji1(jhpcP zz@|8i>Im6PQ#YvWvVpzEO5iemO$PR`S9`tCw!X%^u2_SHo9Dl`@FI|NfHM`xQvh)9 zMVxE5&i*X7B9+qU65-&A+g zjKtPaoa67kJdbOzx*1?ED}pjliDsTcFR;9tXC>Xd*@e!PtrwFYw|=-FmJ;I1$RXfP zv>>;A>v6{Ts+Q=32(|AxextpaIs3=NL3F1$K@Kql*$RRNF-*r5xw z@L9#k%1<*~*o!Bso^Upa%?EK3Pct1}eSLROZ%S}i;XeL9w0;0m>?9DM{(qOc&aeZo zahO=6v~k*Ok+76j%G}w{kHHDY{1qB876HD3) z2|~KfKbBkhk9=;ZSG2mG zckIZB0-wuXAAz1%`)Ia=#Y6#aYilbexj;hO{T)eQr^D#ke}tGy9d?02sdBwD6)?o3 z`^{v#r#|7Kq3hA|LJnq6{+QPj2eF2l|3Cn4;{T=5^ghP@h4X3`Mx4*dyK4jm-R{5C zge*~YZ~P2oPi?A1qtmYKc6eMKfM#yJ)cm!&N@Jp!z@erSS@iqIb_X4i@e%5cAcF|N zF_FNb%lN&+Ch)051kLl?JHuML`$QkaV!JnD(VO$*J2HtE0G5=Y-Xi(+_b`W=A1@ z#$ojHrhB(;5v(2t&>!bdJ&rdi{U`W;tG8$;SUoJo?UTlLqUCj`#K&24TSym~RAq?1U zZQDCvan9iSUW#|9rn5k2@_q*bdim!bw3Qd)M4k6$e7|))I^U1Tm5#R^ayNSr5$5$Y zq34`4Unj*0+$1FI>mu2HcIJzz-my512mbYz+F*woSmnE`$b z7oIZk;6hXa4WwI*HsG?yk@U#=(eM4{=B%Su*`V)lF`V^pPt z1sDqgXwd~#(jKjaz5#w`HR4JxoVMU`0!cFQs0|8s#N%C!W#ti7@y3X^^uk3PGvjNJ zH7HMZte%6nv@GHOAdzq@0VnY00=o}ZuZ{X@>c3-~gUCIJWq^gHN8oTJqvqocT*mdT zuLN~wcAB4b%uiEbQSvspaL7g|=e``jBsEUqd*)1GI(H;>b29buZn#*S7mu429&N1I zcJZ(dtsp0@A4n~!`Kl@J)Zi14Scj%ue?LCNZK(Mx5`P%zL_O7fJWsnc7>%rk3!Mwb zF>CeJ+xpHhYxIpNS8V9(2I+QlTd7x>%TNWzg|5zWnmwg<{(JsNBDI>}-DHB|3JT8? zi4qI2W4|fqO9DJ!RW&>D|w_p7(c6FDdyx$q$Lc)Kd#2(sG?o@`vVP zLW9FZq@kw8cA%a`vhZ1TNI6*hV%|VWV*^WvmyMi(oyP4SA znjWt{e)$E-eC$P{qlxj;BCkRo;KeuROf%RNhs{_pIi=ppF)R9YZMQ+od%M)XfRuQn zM+k$D6q^<~&-Vx&JvufzL~hgxBIp_wojln7)xp@*c;!%!ya^mWt`STe&Yrw3gAXYZ za{E?oX5F@Z3POq{DMk+IIfjZuyguRq$UyEQn~5@{Up!7+vFB2#LT%)>X5fLv1nF{e zeH5e)7vp6%oHDsW+zh?bV8hiCeCzr2@7J0FjuudgrTC4s1KlC0D#w`DxND|$~dffW?4Bz7`uBz%W!(ng#xA8}+PkTBC zMbCC7c}ZRUs!iYXeRFS9P zKS8wJApRK*M5brA4n{9>9kxc^$cW>F(%^}I#r@j;J!^}N7<1j&B!i9*Xx>E;(P_#c zX2s7LU)8W2884doXl$eV81qCvV|T<}0A*xl1@=Hfx!>WVu)bLuk$IlosffTTTlfbX zk>degF>6CQ@5i-oUuWPMNlfHTH~R|YH1~CqS+1s@q2C+7q6m=qZ_#@#xY^=gADp7a zpg38iCT7RlXzPKBgvI0ABP3Ysn$|q2*ral_vGnTg2XtaDHioDdACe1^ugl-TL*2e} zFTHDy_REhzH_rc2`tY%yX4^SF1zM=tTolaBt?aP}sKX;He;&2;i9)l*%?&}xDJb?` z2o0;XFBa>vUJH@nPOOBUC}G}r+V5!|!46e=rXxz~Bmnt)OO7%v-B)XWvCU&xE#xNY zF*;7SA!`CFAtvGJG2Wwn#?n0jwrc2EQ4 zw4~efyfIuyX1b!A)UZG_xfgc4zt(NdJ!Nnze;hgtDuKUo?Bn<1Ur#l}{$pPs7YdMm zOSOdXS2!6Uvxu08XnTEA6FFDaZCH^}NKb=J7)3Sg zwO-^-?-r_+z6Adj`9o4YR;RjM{>{b3DgT#P;^R6Q7(a09IU5^W?p&QgXTU_Eaxd8* zsDMmh@nLaP^fWX9TJtp`vI>vKdyk^lecB*!1lj zpsyN>_L(j!jA*KDCeS79q}V8vqZRJHq{k7IsYCL@lFO)UJjvJYP9_-swC!IVzv7;j zSh`_qWq-S?j##>l_b2rw_Z3_4N6n2)oBeS<_w=aM6xw}#1XIfZ5AtF=95KltN;ayk zX70Cc`W(^$Qyt&14~y^>`c@!B-b5S_sd56Sk)eoSg`Uhtje&Qcc1`5FQt#2izvRa- z>Z?Vyi@f^?Y8JV*GxZ`Th;(_Su^)wGGSqNkKH^Ao!fvQx5}_yhw@^T5Who%~ytkCd&2_`|)Xz8KOM8DV5eN0Q@uU4YexgKc>M#+Bl7fK2>a0bz*yxgEw5TlkOP|FQAdQu>Q z#llkoXXWia$jzWzuIAOjnD!UwB&x9H=8p@@wHR|u+gXeuS9XomSRZDNp8;9~lcQmA zf>2V)zdkIwDwp^R8)GVpr-sW4zP-E8vmjP0jtw1>DVcgZ$j2-sOEj|>QDO&O?rh-| zqvh^7Q8^1_zYdSm(JssS!vrk3NUWg*@97~+%^F_}vr^F4)4Vsc*%I3}&`9Nvf5=2$wxJ_7uLA?=ck+*pj@IX~NVXQ&&ZRN6 z)6Vfs?WfNpn@6i?Jt-)pB6?Jh6(NoSo7{I8?lF=$YRK0o&B=Ir3K+pY6OHgZm)m=T zR`6g(-gbNQFdt3Wey9ty;bFr) zUJq=JzTr?d4O`_$&p=SG$DMOvy*HE(GPq4alacxP@G1UVTeAf}2afZH1)u8r*|+Zd zMDqZZ7^feq-CJ>8CB#Plr;PFL7GLx4f_G&V)9=Hw$tf(7*$)Mkl%u3M`{v5qjE_1g zgBS0>+|Usu4bHD7>#6*Pw5;@6F(-7S#fqRvt@MgTUSz@i|9!&9H2kbsIUgIzwKIyG z=U6`A_fW1d>@LPd&Nuv%m)+2+QwJ5Pmy;vGP7^W9zXf1h=gCI+-*D9xCLBfg=TLmB z$5c1rqxh0%k%Am^Lym}}baZqSsFi94J=^;?VAQM^Q7cwdRQ#SSM~;o4{B+(`b98dT zz`<$LeDlvWkx>QYqM8RcF*C!%!xKUB3`cmQM~eGT_hzFL5(ts9E#)`Q_~feYYH&j} zy`ImO2Y5tMW}*k;2i4b7G+Q?^+Iy`$!wzr9A>vh1P=<|bWk_V|Or3wv+=FpXbsS4Fu7K7q1eQrU zy^9s}7^?p%DO=tDDJdV&fB#n}n#^{87=eI-@Fpv9YbW%6(%3wF%{=_{3p3Mz89&F5=v-ifP9E(t`GGc6`e=cASGoSUAY!aqB#+lo(fzViMa*Io9`o3OI_ zMTDGQ``!pl>g)cfM#2p~Ol6-LSd0DIa&r83x2%~I(JKRtZ?Uqh8WdCK5_ z3uikueE+&dqB`#b$j}fKCub~j5-|E?{`1K82dCBDUC$*SqH8_sf<@EX`*ZHZ#6$v{ zw(o0H&}IbQ#(}Qb{L`mPOcM5O4d@i!mGQXc+&#tLMXD#5hOX$+OqJE)j!^n7-vD;y z*^wLSxZAXLG98`k%K+ybtLs;8Fp7lTMtF$|lCkxcbpznN{1QoCSDnYMwq6em7r#G{ z{a5(Mb%86@?*8t!+Ik5^Yp49P9Ozk+RjbbUoCZf}s_M^lPK#$#>!sCUMac8-DMdQ% zVopu5hmm=|EM8{Z3xD+(8v}M)&+Z9N;6VT5!i8=hnxf|BRZf~lO<1G-%b7a{HTZs`u**&qsK! zcMYfV{f{TU$Z?dZ@&M8AP$}I#R}H7Sp`9boDg16+(Vu8X9r?QVWsiYxlf$Oyl3Um8K%~%(xOIYjs zqwKZ-aEvdc>lFGyerh>9Ui@UEKrA%kKrCOQ)ckf%-RmW5nuT=Q+DZfQ)-A>^XPPaJ z_S>K_)tvctqEnFZ+i{B7M^~@s1fbvN1&sb1OFd-A@?U?S`O+CJ;(uS)Y+w6|j#CM` z_d(Vmzo)0`74{&K@4n)l#56ZJZW)Mj2z{g)7WRHGA zN@!sbb7Xj&?HoLj{2Niqo**AFa_-GZm*GG1^pW*8see!8w|ZQi3aN=}XnMVphz`{n z#N>jL{568RU(nux#N*G+mf@A9}e{Bxwm!DLn0akiGlAB6&MiDp_l&s0OBi6KOsb8x)k!*i`WIjZ_*n3&PbdFe0U zptpO(OH0o39;vH39#u-e@ic&lv@XVAC(CW5+Wq-tcsE?K5wB+NZNovLZ3E5= z5aZvo@Qp5NzAR{9*!j6yH$kz8$>A}k->o2I*KoyPM0r*ZqUT_?J;s_q96J!1V$eA+ z0$Sqf@j&1cYXy#q`0fE)Zy5qfQ?czRScn7A?d7Q{^{gc~zuiiuj+%@OFIo{R1zq9n zU8{dl`SYrQF3tg)*aF7luiuMWZ;s5~KJcMI8rNtcp>-io3UQJ;wF(yfRni3~m;d=0 zgTpB(|Cl2cYTn_lPkr^>$322W-O;eh;XQS{HP)wrH_XZgpGhc^R6ecD5aGW>t?77Z zp*NU}g8G@gY8F3wsO%+elAL_%YDMvs_mj#Xa*7Xb5cKb%;lamqqUU3j}VTma3?_EHB90iKAwt&W)JamU9 zU73~yVcFjhOs6TEMN-?^*BgNSYTkF+rg5Kd1?j2LTe)ccBoZ_qD|k!xc7G2VKcv1*zx3e&@EJ~?(E!^Nb>Wwf8%NKt zCMI#44l%VLmMSG`k>N}ttTur59^=VaQHvkWdmMUX719Ff^D*BS3CY?G@vt4GE9)F+oIhY%)KQQ)!fac*W} zh_4rY=E9icex<}e)(&vcAgx7xN32@xuTUC=>z#!k*dH=g6PnYTW~@_!kN!N~TI3if zS4WiB=ax6Rr1=-=D}KpsE_LUpzp}r%y;$EVe74HV!5?kaSXY~E8P6gF~rBe!m zXMXk9V1a}(X9*WN7unu5jE-{v;i@E7yEu@cUFnyhvwltCXDnERNLW**zBN|h z<42ExZjp~|Qz{3@4p?&07C6^KR$EN*sX`sVRf%#qIco>sZ2 zq>|%+eJ3CDlu&78#wm82I%UMdUn?B0fA(UYt-ZNEsnokrD?hL{kNhxzc zGMT>0OCIy&V05F&NVG*EXE%PwqF4%&wa=^nCgB zp67Gevg7te#1EFlSH~TXS+|&pd)H>BKNmw|@9E2=RK(v8f(GA897-nF#$pVDO+itp zs;FY9Wb}cqz3YdX>+wKvO4WrhEQ5ywJ; zQG239zF*#+Lq%4kn=^NWvv%`JgC9iU>4F_(iIN!`Mi=yo6eT#4xczZ;D5(-DaZ#3` zv)|~t)FXJYG<6Rp^QyB~*nf_&^gH+XvHtS0b?8g7_4PU4$P|$p6o{Yq)5D0zLb{Km zhBbfks{jc?GcAa9d#6+GQ+BufdgF4a)b=Zs3Voi~+&ULDBw7m^=X<%SUU4!)?&q7P z=^6$eLObtwcEaDh0Y1dQko@%N?dx_@6$R$6+GLUZ-_@~)F(}_s4s4|mX?uu@#V;?D z65_vX&kp^{jEirN!b16w*j@qG_jLvu4Jfg1oIn8;_NQX)m1ZkisIV8cTOu_n++9W^%(A zo}mM$$Jv#KRxZOU`#KHqv|Nq35+!HX%~5LA+EhNSYdP}B?dZ9x>3WYMtnl92&GUuf zUhFAQ9105SR)DQ@D^=%CKc2LjshgHyjb^NA)m8MZddZGd_AH)`6@QgY_qx$lI(OYw z?cqcd$H~R*Gso-dZC?BI^M$iDvy(u6*ait1|Aupu?9jX^O(C)SNkquWawkJ&mgXAo zNynjcQIQV<&?Zj_KTL~fXrkRb^OPBW*BKRVGRO|gkJyOwUu=okAO70r!RSiH^Cpmj zhqJJe{qP{R!BuhkaSuG6^sIEe?{Ydh=pl-J6{m4N{LG?|I#nm^)O+04)z!6;cyi~~ z(=K`UdywKY+rCOk3B+A7L)+!b!i_07wJ~iFrz|;{LI5OTMqYm%DPWJ7OLI`Qy^LsR z$b||rPT6PXSy&G`B&b8(v8+yL<=l*7@~91EdW1NM)io=EpMU$!Rro*7b1_d&TGoG(~QCa z4!@W6g&+tGP66JC*NKCGR>q>EN@Py74{NiK6134J#MOy(D9DeX;-aCTCPw^vkd2-X z2b4ZZgd1s=!wx-kxT2%D@u<&3=?^Nc% z)7*MnXblRD0< z%$i(a5Hh4 zH~F~ZtiFt?Vy5nTaDUi)lA6Ad>|LZOjzy8|kp1}nA_y5Ar;2Cyh8M06z;6P{(ukT4 zY6}Cax-G1%25p;K7@2A`ZQJ&1Wl}iaQBL71LIkG!ZgBuf(a@uTX6vi2Fo7{9=+D}z zy_)M77k@sCx7zI#e88e}v?5e8vN14SN$8WQ9ohj6sE9c7%R_02NFD}*$dp8pI zx7OZqt6pY_5W$BINz5#EMbhX_wmASa2op3I?dg zawLJPr?g0S+kPRhi~Ip|@(l;xzrp=iQX|3o9LP&~$>I2RduGDOplS^$go5%or>KYk z^3HTo9;QC68?6<7r%ycDb8lKgFj=wmF!49kiY|-;{ICP<+05F_xmeiP$XZ!>=Iwhb z3EiYhR32;)%n%lBAYeNYZGz}B6pQd#Op0_3J0AA<8|%>>NS?=AD9=yM(rdlQ-ehlA zm-S2*ig+?j*CCR&t0OhuXtUqANH*(o&*ri(GjP+-lXm@Q+cltJucpZai0Bwfb#fx# zH}8M$B|(om;k6m(b@XF;BkMXJwuO_DT;6I5s}^ME2Grkl+}viW!}3_5k#@sraR#81 zzTu%JM;C0NH8b}!F(=23JtFsh8p3-8cI1})`f`?PdLC~#2oG_(H)F1M6~9~AY=YlH zQd5mg)mdvL%>%Bu8@B2^H#?nt60PnoOHv%ig4}nT zhWpiF3yCZ(t&~uHc&L|?k1OQPd(Fnhcqul2Gh-Iemv-+c-RiwLWF0MgMjmjk@(GFI ze)ZJtg?rsWH_f`((uZe3oE~JLm|D{X-+UOm`eF=k-C{~H;3`<)!he=`f2VisQ&dmo z0tlXR<1h^x;4ZuOv8}&aZO*>!z3d`^rdp+&)3`IY-F4}~uqaw6m7(wruR{sIkShSu z=CoQysZ<=dagIZlgm-tgO?p-i7_h0+P6Z`6S_wHWSX>@tZE8xuvnuuo8rF9sOy=<* zgV%a3i_gp+1Be7q)}94?iT~I?)!U(W{_ugU{}Z$1yKXOJT+e` z4$7CXvg^Wz%l$Fqp3JJT)?q-c6;VyEBCkWl5~$VjBYEq|)eT&pe7H!N#?<(5G24Y- zK!VIcSbWo&_agV%$*sDN5H#&td#Qd}mKTwQUO9*kN-R%@2V0LHCKl6{57M@snx9|a zfO+r9qLt+<5xMfPMvKEib)P%yC9idb7C2ZBp^Vt@HR+eenP;Cb-KZiG+Fu?bzDvBB zW}yHVx$e(7!ODeV+U_>S_8iam8?IWaYInX!{RY;k6O)s%2M6sM2boRT>|m-IQ!_q3 zwX@{WEj!h_qZYW+xw{?&>_lL)aimDpK;LgWSXE@Cs>#nkrbDfI=u}P9kL_uk&j>M+ zX9SNyp-G-q_vf8qaEg0<_&PU-x7d+$nTGX!i%UWX=G$t zJXnj7Z1Bd59kK;z?hP|DyEp9#}5d22H5e+>P!df>IrMce)o?^(e)W83+HwhJOS&7XW~ zMos8+Tp*$4WC;f{yi)Gru6q~kUD=z^TA^~gYRdHNsfucVtdFycjaJIM&*`;5U5^t^ z^6AdrT;uz;mh!}RO^0cV=};H&@P27AYSHWhRR|g8P6hL#_(AkIw9+U}?|M|*ar%V7 zhl>oDOXzcn9V6Hg0vA!*##MdUnk;R^iOVXz<%3 z`W7Y?CVj2h>Tuy*k0#j2Nx!oZa@cBbfR&6p?Je<}&2Lt@uXESI?t;uVqpuI5bsQC$ zTb7~kH}*YEti27$H5)xhRh^t!Rl%n63Y?yuMV5KBw=2BY6RA!U{&vInmV&fZI0-Se z)Xz@#CbHo@E!dFRDq7f92sBAKz?&+coP(1xP3s5xtAnVzp(OzSgt+NP&&nfO^^HIT zxUa&~y3WCj;_=z%c;duc$feS7f|KDeU@v1xaCec{AYIbJbF=Oe!XT6kYOCUu@H($@ zAMBdjSxZ}jWSCg%x-L0ig5*hKT+^56v@wsszW7x-a?gx|Cb+E-NG7 z>{xfNKiqP2=yc+*szedJ7y;mxNU7B8sg@l&rtq|DJv(68pkNVV4%BM~iDS<3Lw~jl zO?CH>rpPaH(0b}!Y-^u@olb^B)To)V+1I|T!3%eVQpT~9eoVDOGV(Q*RaKKzqprGA zE*i>VWuD+H-6rPnQx6Pp^geWz=X+6Y!b332w>I(|WOf%30xUQw{ z&7R+K9SQ^jtuG#wjJN3>Pm+2rI9N~!nwGY;x%!y3!aL{T+X(XQ&-ea9E|>C-W4P$X zQ|rDui8cCn*$p?9gD00P+8#<#v65-Ki)yFW?j}*HrdcQ`gg=T9)w}^|MlJ4m$iyFW z=>MAAj)eJfeP7djL9HxDU{g(dn!dmHU;llkFU}j~9sekO=lMx>G2TjNjdade znD0CP>{sKel#7#kq>Ytwzb;&<0ZJuRTd%yHX<2;!&d1Nzo8JHXoqA`-$IQ%|yTYQS zz0RghRi7U-CH~&W?macv)@<1dYGhtiel>IF>nAbwx8E0k`KNz&%Ez}iU4(<8m$(`K ze7s0?=fmgxsq<%E-u(B(Ldyzp19sK*XkZ(4iiuS3pJ(gh(_c&H8 z`?hiRwbRCl%Q+?Yo!uqweZMfoR=ezu-PJQs)c4n^`0K?@Y)iIH_&RMG(A7rO=jTlG ze0)6R&9>&^UoU5Y%2Meox6E{m)6SfDa&j`T*_V2;*-2Md7udFp&Ua9?UGC>6eS2Eq z;p3@?ZoIvG^UZHLHMT`z-nU+D&9UF4n!J7OZg8t<^}SoO1lRtnkpVW(jq*agkM$PG z-G6pU9XKFG;($)V-gwKsz|U5QNpclVeKu&Z$3*#d3P^7q#~F1@+C z>Ynb_tu`x6PkK+{@!#aT|MtH5?ce|H%gs2>2OOUYELDB!v1wI#^v&ICUzOk9xNhbO zE!(YEJ^UL>Rad5$mW1y84s=?M?yk$ifwG=fo2$ZB<-4u&x>jcuf8Qi@^LNIt_t?Ml zuQ+BU#|<=X>8sfeuYCMHzS?hn|1lh@Y#01`1nSmgU%YN#8+|_~BwpHd za^qQ-wYm#-B~_LHWnN#p?ofMszNzq4`vt$^m9GkchO%;Ee}w@TBh34^-PJg-*8ckE zLk&^4Pt}2ZyK3LJm-4}X^RHVAhdyo1UU+>|RobfmY(OV$U2*Nkte=<7qS868vQ>Z_ gWxCR=6UHx3vIVCg!04V{=+yDRo literal 24794 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 diff --git a/documentation/manual/source/pics/configuresongs.png b/documentation/manual/source/pics/configuresongs.png index 19796f3b5b49a79d9fc74e19ff33799ab049f351..9da70deb27a681b03874b7f746c370409b2e309d 100644 GIT binary patch literal 43736 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 LJM${jEBF5m=gp{O literal 29651 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 E14)Zo2LJ#7 literal 46101 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

brnC)GnD_5R? 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 From 504a47149183907b6f66fba3447be4d0e9aeabd4 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Mon, 25 Apr 2011 11:13:13 +0100 Subject: [PATCH 76/94] o123hallo points --- openlp/core/ui/printserviceform.py | 38 +++++++++++++++++------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/openlp/core/ui/printserviceform.py b/openlp/core/ui/printserviceform.py index 6d6f1ecba..08b229ad3 100644 --- a/openlp/core/ui/printserviceform.py +++ b/openlp/core/ui/printserviceform.py @@ -46,24 +46,22 @@ http://doc.trolltech.com/4.7/richtext-html-subset.html#css-properties color:black; } +.item { + color:black; +} + .itemTitle { font-weight:600; font-size:large; - color:black; } -.itemText { - color:black; -} +.itemText {} .itemFooter { font-size:8px; - color:black; } -.itemNotes { - color:black; -} +.itemNotes {} .itemNotesTitle { font-weight:bold; @@ -74,21 +72,28 @@ http://doc.trolltech.com/4.7/richtext-html-subset.html#css-properties font-size:11px; } +.media {} + .mediaTitle { font-weight:bold; font-size:11px; - color:black; +} + +.mediaText {} + +.imageList {} + +.customNotes { + margin-top: 10px; } .customNotesTitle { font-weight:bold; font-size:11px; - color:black; } .customNotesText { font-size:11px; - color:black; } .newPage { @@ -188,7 +193,7 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): self._addElement(u'span', translate('OpenLP.ServiceManager', u'Custom Service Notes: '), div, classId=u'customNotesTitle') self._addElement(u'span', self.footerTextEdit.toPlainText(), div, - classId=u'customNotesText') + classId=u'customNotesText') self.document.setHtml(html.tostring(html_data)) self.previewWidget.updatePreview() @@ -197,8 +202,9 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): # Add the title of the service item. item_title = self._addElement(u'h2', parent=div, classId=u'itemTitle') self._addElement(u'img', parent=item_title, - attribute=(u'src', item.icon)) - self._addElement(u'span', item.get_display_title(), item_title) + attribute=(u'src', item.icon)) + self._addElement(u'span', u' ' + item.get_display_title(), + item_title) if self.slideTextCheckBox.isChecked(): # Add the text of the service item. if item.is_text(): @@ -244,10 +250,10 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): self._addElement(u'span', translate('OpenLP.ServiceManager', 'Playing time: '), title, classId=u'mediaTitle') self._addElement(u'span', unicode(datetime.timedelta(seconds=tme)), - title, classId=u'mediaText') + title, classId=u'mediaText') def _addElement(self, tag, text=None, parent=None, classId=None, - attribute=None): + attribute=None): """ Creates a html element. If ``text`` is given, the element's text will set and if a ``parent`` is given, the element is appended. From 100fb77456fe162f3a996f4c8d4fee77f5f8bb1d Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 25 Apr 2011 11:26:21 +0100 Subject: [PATCH 77/94] Fix double edit --- openlp/core/ui/themeform.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 621493488..019ab5bfe 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -435,7 +435,8 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): if self.updateThemeAllowed: self.theme.background_type = BackgroundType.to_string(index) if self.theme.background_type != \ - BackgroundType.to_string(BackgroundType.Image): + BackgroundType.to_string(BackgroundType.Image) and \ + self.temp_background_filename == u'': self.temp_background_filename = self.theme.background_filename self.theme.background_filename = u'' if self.theme.background_type == \ From 5bc0c27970d112c749a359f05bcef06e8c388437 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Mon, 25 Apr 2011 23:15:38 +0100 Subject: [PATCH 78/94] OpenSong fixes bug 759586 --- openlp/plugins/songs/lib/opensongimport.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py index 37fc2b5ef..4d32f7f81 100644 --- a/openlp/plugins/songs/lib/opensongimport.py +++ b/openlp/plugins/songs/lib/opensongimport.py @@ -32,6 +32,7 @@ from lxml.etree import Error, LxmlError import re from openlp.core.ui.wizard import WizardStrings +from openlp.plugins.songs.lib import VerseType from openlp.plugins.songs.lib.songimport import SongImport log = logging.getLogger(__name__) @@ -209,7 +210,10 @@ class OpenSongImport(SongImport): verse_num = u'1' # for the case where song has several sections with same marker inst = 1 - lyrics = unicode(root.lyrics) + if u'lyrics' in fields: + lyrics = unicode(root.lyrics) + else: + lyrics = u'' for this_line in lyrics.split(u'\n'): # remove comments semicolon = this_line.find(u';') @@ -230,7 +234,7 @@ class OpenSongImport(SongImport): # have we got any digits? # If so, verse number is everything from the digits # to the end (even if there are some alpha chars on the end) - match = re.match(u'(.*)(\d+.*)', content) + match = re.match(u'([A-Za-z]*)(\d+.*)', content) if match is not None: verse_tag = match.group(1) verse_num = match.group(2) @@ -239,12 +243,13 @@ class OpenSongImport(SongImport): # the verse tag verse_tag = content verse_num = u'1' + verse_index = VerseType.from_loose_input(verse_tag) + verse_tag = VerseType.Tags[verse_index] inst = 1 if [verse_tag, verse_num, inst] in our_verse_order \ and verses.has_key(verse_tag) \ and verses[verse_tag].has_key(verse_num): inst = len(verses[verse_tag][verse_num])+1 - our_verse_order.append([verse_tag, verse_num, inst]) continue # number at start of line.. it's verse number if this_line[0].isdigit(): @@ -257,6 +262,7 @@ class OpenSongImport(SongImport): verses[verse_tag][verse_num] = {} if not verses[verse_tag][verse_num].has_key(inst): verses[verse_tag][verse_num][inst] = [] + our_verse_order.append([verse_tag, verse_num, inst]) # Tidy text and remove the ____s from extended words this_line = self.tidy_text(this_line) this_line = this_line.replace(u'_', u'') @@ -268,6 +274,8 @@ class OpenSongImport(SongImport): verse_def = u'%s%s' % (verse_tag, verse_num) lines = u'\n'.join(verses[verse_tag][verse_num][inst]) self.add_verse(lines, verse_def) + if not self.verses: + self.add_verse('') # figure out the presentation order, if present if u'presentation' in fields and root.presentation != u'': order = unicode(root.presentation) From 68fdc7dee9b1b79d685124df9cea2613e52ad4df Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 26 Apr 2011 19:03:19 +0200 Subject: [PATCH 80/94] fixed virtue breaks, fixed word break --- openlp/core/lib/plugin.py | 16 ++-- openlp/core/lib/renderer.py | 140 +++++++++++++-------------------- openlp/core/lib/serviceitem.py | 14 ++-- 3 files changed, 71 insertions(+), 99 deletions(-) diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index 48a54f8ca..d0d83cd0c 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -159,14 +159,14 @@ class Plugin(QtCore.QObject): self.status = PluginStatus.Inactive # Set up logging self.log = logging.getLogger(self.name) - self.previewController = pluginHelpers[u'preview'] - self.liveController = pluginHelpers[u'live'] - self.renderer = pluginHelpers[u'renderer'] - self.serviceManager = pluginHelpers[u'service'] - self.settingsForm = pluginHelpers[u'settings form'] - self.mediadock = pluginHelpers[u'toolbox'] - self.pluginManager = pluginHelpers[u'pluginmanager'] - self.formparent = pluginHelpers[u'formparent'] + self.previewController = plugin_helpers[u'preview'] + self.liveController = plugin_helpers[u'live'] + self.renderer = plugin_helpers[u'renderer'] + self.serviceManager = plugin_helpers[u'service'] + self.settingsForm = plugin_helpers[u'settings form'] + self.mediadock = plugin_helpers[u'toolbox'] + self.pluginManager = plugin_helpers[u'pluginmanager'] + self.formparent = plugin_helpers[u'formparent'] QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'%s_add_service_item' % self.name), self.processAddServiceEvent) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index ac8e26191..d06779cb7 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -214,26 +214,26 @@ class Renderer(object): ``line_break`` Add line endings after each line of text used for bibles. """ - print [text] + log.debug(u'format slide') # clean up line endings lines = self._lines_split(text) - pages = self._paginate_slide(lines, line_break, self.force_page) - if len(pages) > 1: - # Songs and Custom - if item.is_capable(ItemCapabilities.AllowsVirtualSplit): - # do not forget the line breaks ! - slides = text.split(u'\n[---]\n') - pages = [] - for slide in slides: - lines = self._lines(slide) - new_pages = self._paginate_slide(lines, line_break, - self.force_page) - for page in new_pages: - pages.append(page) -# # Bibles - elif item.is_capable(ItemCapabilities.AllowsWordSplit): - pages = self._paginate_slide_words(text, line_break) + # Songs and Custom + if item.is_capable(ItemCapabilities.AllowsVirtualSplit): + # Do not forget the line breaks ! + slides = text.split(u'\n[---]\n') + pages = [] + for slide in slides: + lines = self._lines(slide) + new_pages = self._paginate_slide(lines, line_break, + self.force_page) + pages.extend([page for page in new_pages]) + # Bibles + elif item.is_capable(ItemCapabilities.AllowsWordSplit): + pages = self._paginate_slide_words(text, line_break) + # Theme preview "service items". + else: + pages = self._paginate_slide(lines, line_break, self.force_page) return pages def _calculate_default(self, screen): @@ -316,13 +316,13 @@ class Renderer(object): The words to be fitted on the slide split into lines. ``line_break`` - Add line endings after each line of text used for bibles. + Add line endings after each line of text (used for bibles). ``force_page`` Flag to tell message lines in page. """ - log.debug(u'format_slide - Start') + log.debug(u'_paginate_slide - Start') line_end = u'' if line_break: line_end = u'
' @@ -342,16 +342,14 @@ class Renderer(object): if force_page and line_count > 0: Receiver.send_message(u'theme_line_count', line_count) line_count = -1 - if html_text.endswith(u'
'): - html_text = html_text[:len(html_text)-4] + html_text = html_text.rstrip(u'
') formatted.append(html_text) html_text = u'' styled_text = styled_line html_text += line + line_end - if html_text.endswith(u'
'): - html_text = html_text[:len(html_text)-4] + html_text = html_text.rstrip(u'
') formatted.append(html_text) - log.debug(u'format_slide - End') + log.debug(u'_paginate_slide - End') return formatted def _paginate_slide_words(self, text, line_break): @@ -367,71 +365,48 @@ class Renderer(object): Add line endings after each line of text used for bibles. """ - print [text] - log.debug(u'format_slide - Start') + # TODO: Make sure spaces are striped so that they will not confuse + # rendering. for instance when the style is set to Verse per Line: + # In the beginning ... + # + # + # Verse 2 + log.debug(u'_paginate_slide_words - Start') line_end = u'' if line_break: line_end = u'
' formatted = [] - html_text = u'' - styled_text = u'' - line_count = 0 - force_current = False + previous_html = u'' + previous_raw = u'' lines = self._lines(text, u'[---]') - previous_line = u'' - # Loop through the lines for line in lines: - line_count += 1 styled_line = expand_tags(line) - styled_line = line_end + styled_line - previous_line = line - previous_styled = styled_line - styled_text += styled_line - html = self.page_shell + styled_text + HTML_END + html = self.page_shell + previous_html + styled_line + HTML_END self.web.setHtml(html) # Text too long so go to next page - print self.web_frame.contentsSize().height() , self.page_height, [line] if self.web_frame.contentsSize().height() > self.page_height: - # we have more than 1 verse on the slide - print "A", line_count - print "AA", [previous_line] - print "AAA", [styled_text] - if line_count > 1: - if html_text.endswith(u'
'): - html_text = html_text[:len(html_text)-4] - formatted.append(html_text + line_end) - line = previous_line - line_count = 1 - html_text = u'' - print "c", [html_text] - if line_count == 1: - line_count = 0 - words = self._words_split(line) - styled_text = u'' - styled_line = u'' - for word in words: - styled_word = expand_tags(word) - styled_text += styled_word - html = self.page_shell + styled_text + HTML_END - self.web.setHtml(html) - # Text too long so go to next page - print self.web_frame.contentsSize().height() , self.page_height, [line] - if self.web_frame.contentsSize().height() > self.page_height: - if html_text.endswith(u'
'): - html_text = html_text[:len(html_text)-4] - formatted.append(html_text + line_break) - html_text = u'' - styled_text = u'' - html_text += word - a=1 + words = self._words_split(line) + for word in words: + styled_word = expand_tags(word) + html = self.page_shell + previous_html + styled_word + \ + HTML_END + self.web.setHtml(html) + # Text too long so go to next page + if self.web_frame.contentsSize().height() > self.page_height: + previous_raw = previous_raw.rstrip(u'
') + formatted.append(previous_raw) + previous_html = u'' + previous_raw = u'' + previous_html += styled_word + previous_raw += word + previous_html += line_end + previous_raw += line_end else: - styled_text = styled_line - html_text += line + line_end - previous_line = line - if html_text.endswith(u'
'): - html_text = html_text[:len(html_text)-4] - formatted.append(html_text) - log.debug(u'format_slide - End') + previous_html += styled_line + line_end + previous_raw += line + line_end + previous_raw = previous_raw.rstrip(u'
') + formatted.append(previous_raw) + log.debug(u'_paginate_slide_words - End') return formatted def _lines(self, words, split=u'n[---]n'): @@ -444,8 +419,7 @@ class Renderer(object): text = [] for verse in verses_text: lines = verse.split(u'\n') - for line in lines: - text.append(line) + text.extend([line for line in lines]) return text def _words_split(self, words): @@ -458,8 +432,7 @@ class Renderer(object): text = [] for verse in verses_text: lines = verse.split(u' ') - for line in lines: - text.append(line + u' ') + text.extend([line + u' ' for line in lines]) return text def _lines_split(self, text): @@ -472,6 +445,5 @@ class Renderer(object): for line in lines: line = line.replace(u' [---]', u'[---]') sub_lines = line.split(u'\n') - for sub_line in sub_lines: - real_lines.append(sub_line) + real_lines.extend([sub_line for sub_line in sub_lines]) return real_lines diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 3810a7bb2..a2cb014a4 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -163,9 +163,7 @@ class ServiceItem(object): log.debug(u'Render called') self._display_frames = [] self.bg_image_bytes = None - line_break = True - if self.is_capable(ItemCapabilities.NoLineBreaks): - line_break = False + line_break = not self.is_capable(ItemCapabilities.NoLineBreaks) theme = self.theme if self.theme else None self.main, self.footer = \ self.renderer.set_override_theme(theme, use_override) @@ -176,11 +174,12 @@ class ServiceItem(object): formatted = self.renderer \ .format_slide(slide[u'raw_slide'], line_break, self) for page in formatted: - self._display_frames.append( - {u'title': clean_tags(page), + self._display_frames.append({ + u'title': clean_tags(page), u'text': clean_tags(page.rstrip()), u'html': expand_tags(page.rstrip()), - u'verseTag': slide[u'verseTag'] }) + u'verseTag': slide[u'verseTag'] + }) elif self.service_item_type == ServiceItemType.Image or \ self.service_item_type == ServiceItemType.Command: pass @@ -455,4 +454,5 @@ class ServiceItem(object): elif not start and end: return end else: - return u'%s : %s' % (start, end) \ No newline at end of file + return u'%s : %s' % (start, end) + From 772c9cb2ca08666c1df907f443c567c4049e33e8 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 26 Apr 2011 19:39:21 +0100 Subject: [PATCH 81/94] Chnages --- openlp/core/lib/renderer.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index d20aab38a..9d854b9b5 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -214,7 +214,6 @@ class Renderer(object): ``line_break`` Add line endings after each line of text used for bibles. """ - print [text] log.debug(u'format slide') # clean up line endings lines = self._lines_split(text) @@ -368,7 +367,7 @@ class Renderer(object): Add line endings after each line of text used for bibles. """ - print [text] + print "st", [text] log.debug(u'format_slide - Start') line_end = u'' if line_break: @@ -393,7 +392,8 @@ class Renderer(object): # Text too long so go to next page print self.web_frame.contentsSize().height() , self.page_height, [line] if self.web_frame.contentsSize().height() > self.page_height: - # we have more than 1 verse on the slide + # we have more than 1 verse on the slide and it does not fit! + # Save the previous line as it fits on the page. print "A", line_count print "AA", [previous_line] print "AAA", [styled_text] From 0476fe8b27f703d6fa48538ce0a59412d7501cca Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 26 Apr 2011 20:09:56 +0100 Subject: [PATCH 82/94] Minor cleanups --- openlp/core/lib/renderer.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index d510c0bda..9fd4e8815 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -365,8 +365,6 @@ class Renderer(object): Add line endings after each line of text used for bibles. """ - # TODO: Make sure spaces are striped so that they will not confuse - # rendering. for instance when the style is set to Verse per Line: # In the beginning ... # # @@ -392,7 +390,8 @@ class Renderer(object): HTML_END self.web.setHtml(html) # Text too long so go to next page - if self.web_frame.contentsSize().height() > self.page_height: + if self.web_frame.contentsSize().height() > \ + self.page_height: previous_raw = previous_raw.rstrip(u'
') formatted.append(previous_raw) previous_html = u'' @@ -409,13 +408,12 @@ class Renderer(object): log.debug(u'_paginate_slide_words - End') return formatted - def _lines(self, words, split=u'n[---]n'): + def _lines(self, text, split=u'\n[---]\n'): """ Split the slide up by physical line """ # this parse we do not want to use this so remove it - #words = words.replace(split, u'') - verses_text = words.split(u'\n') + verses_text = text.split(u'\n') text = [] for verse in verses_text: lines = verse.split(u'\n') @@ -423,13 +421,13 @@ class Renderer(object): return text - def _words_split(self, words): + def _words_split(self, line): """ Split the slide up by word so can wrap better """ # this parse we are to be wordy - words = words.replace(u'\n', u' ') - verses_text = words.split(u' ') + line = line.replace(u'\n', u' ') + verses_text = line.split(u' ') text = [] for verse in verses_text: lines = verse.split(u' ') From 86a05a38b5cb3d54adb3bdf0f94c016747e60acc Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Wed, 27 Apr 2011 11:00:37 +0200 Subject: [PATCH 83/94] Fixed bug #752212. Added a revert button to revert the image to the default OpenLP image. Also moved things slightly to for the dialog to look a little better on other platforms/DEs. --- openlp/core/ui/advancedtab.py | 46 +++++++++++++++++++--------- openlp/core/ui/maindisplay.py | 5 +-- resources/images/general_revert.png | Bin 0 -> 737 bytes resources/images/openlp-2.qrc | 1 + 4 files changed, 36 insertions(+), 16 deletions(-) create mode 100644 resources/images/general_revert.png diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 94bcb0801..7172701c8 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -41,11 +41,11 @@ class AdvancedTab(SettingsTab): """ Initialise the settings tab """ - generalTranslated = translate('AdvancedTab', 'Advanced') - SettingsTab.__init__(self, parent ,u'Advanced', generalTranslated) + advancedTranslated = translate('OpenLP.AdvancedTab', 'Advanced') self.default_image = u':/graphics/openlp-splash-screen.png' - self.default_color = u'#ffffff' + self.default_color = u'#009900' self.icon_path = u':/system/system_settings.png' + SettingsTab.__init__(self, parent, u'Advanced', advancedTranslated) def setupUi(self): """ @@ -82,14 +82,6 @@ class AdvancedTab(SettingsTab): u'enableAutoCloseCheckBox') self.uiLayout.addRow(self.enableAutoCloseCheckBox) self.leftLayout.addWidget(self.uiGroupBox) - self.hideMouseGroupBox = QtGui.QGroupBox(self.leftColumn) - self.hideMouseGroupBox.setObjectName(u'hideMouseGroupBox') - self.hideMouseLayout = QtGui.QVBoxLayout(self.hideMouseGroupBox) - self.hideMouseLayout.setObjectName(u'hideMouseLayout') - self.hideMouseCheckBox = QtGui.QCheckBox(self.hideMouseGroupBox) - self.hideMouseCheckBox.setObjectName(u'hideMouseCheckBox') - self.hideMouseLayout.addWidget(self.hideMouseCheckBox) - self.leftLayout.addWidget(self.hideMouseGroupBox) self.leftLayout.addStretch() self.defaultImageGroupBox = QtGui.QGroupBox(self.rightColumn) self.defaultImageGroupBox.setObjectName(u'defaultImageGroupBox') @@ -109,26 +101,42 @@ class AdvancedTab(SettingsTab): self.defaultBrowseButton.setObjectName(u'defaultBrowseButton') self.defaultBrowseButton.setIcon( build_icon(u':/general/general_open.png')) + self.defaultRevertButton = QtGui.QToolButton(self.defaultImageGroupBox) + self.defaultRevertButton.setObjectName(u'defaultRevertButton') + self.defaultRevertButton.setIcon( + build_icon(u':/general/general_revert.png')) self.defaultFileLayout = QtGui.QHBoxLayout() self.defaultFileLayout.setObjectName(u'defaultFileLayout') self.defaultFileLayout.addWidget(self.defaultFileEdit) self.defaultFileLayout.addWidget(self.defaultBrowseButton) + self.defaultFileLayout.addWidget(self.defaultRevertButton) self.defaultImageLayout.addRow(self.defaultFileLabel, self.defaultFileLayout) self.rightLayout.addWidget(self.defaultImageGroupBox) + self.hideMouseGroupBox = QtGui.QGroupBox(self.leftColumn) + self.hideMouseGroupBox.setObjectName(u'hideMouseGroupBox') + self.hideMouseLayout = QtGui.QVBoxLayout(self.hideMouseGroupBox) + self.hideMouseLayout.setObjectName(u'hideMouseLayout') + self.hideMouseCheckBox = QtGui.QCheckBox(self.hideMouseGroupBox) + self.hideMouseCheckBox.setObjectName(u'hideMouseCheckBox') + self.hideMouseLayout.addWidget(self.hideMouseCheckBox) + self.rightLayout.addWidget(self.hideMouseGroupBox) self.rightLayout.addStretch() QtCore.QObject.connect(self.defaultColorButton, QtCore.SIGNAL(u'pressed()'), self.onDefaultColorButtonPressed) QtCore.QObject.connect(self.defaultBrowseButton, QtCore.SIGNAL(u'pressed()'), self.onDefaultBrowseButtonPressed) + QtCore.QObject.connect(self.defaultRevertButton, + QtCore.SIGNAL(u'pressed()'), self.onDefaultRevertButtonPressed) def retranslateUi(self): """ Setup the interface translation strings. """ self.tabTitleVisible = UiStrings().Advanced - self.uiGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'UI Settings')) + self.uiGroupBox.setTitle( + translate('OpenLP.AdvancedTab', 'UI Settings')) self.recentLabel.setText( translate('OpenLP.AdvancedTab', 'Number of recent files to display:')) @@ -150,8 +158,14 @@ class AdvancedTab(SettingsTab): 'Default Image')) self.defaultColorLabel.setText(translate('OpenLP.AdvancedTab', 'Background color:')) + self.defaultColorButton.setToolTip(translate('OpenLP.AdvancedTab', + 'Click to select a color.')) self.defaultFileLabel.setText(translate('OpenLP.AdvancedTab', 'Image file:')) + self.defaultBrowseButton.setToolTip(translate('OpenLP.AdvancedTab', + 'Browse for an image file to display.')) + self.defaultRevertButton.setToolTip(translate('OpenLP.AdvancedTab', + 'Revert to the default OpenLP logo.')) def load(self): """ @@ -184,7 +198,7 @@ class AdvancedTab(SettingsTab): self.hideMouseCheckBox.setChecked( settings.value(u'hide mouse', QtCore.QVariant(False)).toBool()) self.default_color = settings.value(u'default color', - QtCore.QVariant(u'#ffffff')).toString() + QtCore.QVariant(u'#000099')).toString() self.defaultFileEdit.setText(settings.value(u'default image', QtCore.QVariant(u':/graphics/openlp-splash-screen.png'))\ .toString()) @@ -232,4 +246,8 @@ class AdvancedTab(SettingsTab): file_filters) if filename: self.defaultFileEdit.setText(filename) - self.defaultFileEdit.setFocus() \ No newline at end of file + self.defaultFileEdit.setFocus() + + def onDefaultRevertButtonPressed(self): + self.defaultFileEdit.setText(u':/graphics/openlp-splash-screen.png') + self.defaultFileEdit.setFocus() diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index c413ec8c9..30457f569 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -142,9 +142,10 @@ class MainDisplay(DisplayWidget): image_file = QtCore.QSettings().value(u'advanced/default image', QtCore.QVariant(u':/graphics/openlp-splash-screen.png'))\ .toString() - background_color = QtGui.QColor(QtCore.QSettings().value( + background_color = QtGui.QColor() + background_color.setNamedColor(QtCore.QSettings().value( u'advanced/default color', - QtCore.QVariant(u'#ffffff')).toString()) + QtCore.QVariant(u'#990000')).toString()) if not background_color.isValid(): background_color = QtCore.Qt.white splash_image = QtGui.QImage(image_file) diff --git a/resources/images/general_revert.png b/resources/images/general_revert.png new file mode 100644 index 0000000000000000000000000000000000000000..47d7415e279876d68e1fa4db643045c572be29fc GIT binary patch literal 737 zcmV<70v`Q|P)xv}~cde{Q?GcXw{PyWh_4=F~7c@Zs=-^ZopOaLy3{5FjgoAdQm# ze}r=hD+N-U%?69r3Y*;y$HD>@oK84hF1XxoxG742@^}PjhJheiAxO7a|0#%tJyDp5 zAbpj<%db&h_8Y_mQKNs^|hhcwz5}xr(U`$s8WTy8PI(;Awd>=Q0+! zAqm=5i7*a!3uAH|2iomGd(8=$TMrUR4lF&V(Oi)d7Nm*pp51O~yu6jylqK;^*Y`kM zDM8bXZO|$+;c?j!3WdP)Jo?%jG2EJmfi4Ygeneral_open.png general_save.png general_email.png + general_revert.png slide_close.png From 35cb2b2fa67f883432c03918c3958d868cf8ac3a Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Wed, 27 Apr 2011 12:30:29 +0200 Subject: [PATCH 84/94] Fix up the multicolouredness. --- openlp/core/ui/advancedtab.py | 4 ++-- openlp/core/ui/maindisplay.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 7172701c8..b6dd1cb27 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -43,7 +43,7 @@ class AdvancedTab(SettingsTab): """ advancedTranslated = translate('OpenLP.AdvancedTab', 'Advanced') self.default_image = u':/graphics/openlp-splash-screen.png' - self.default_color = u'#009900' + self.default_color = u'#ffffff' self.icon_path = u':/system/system_settings.png' SettingsTab.__init__(self, parent, u'Advanced', advancedTranslated) @@ -198,7 +198,7 @@ class AdvancedTab(SettingsTab): self.hideMouseCheckBox.setChecked( settings.value(u'hide mouse', QtCore.QVariant(False)).toBool()) self.default_color = settings.value(u'default color', - QtCore.QVariant(u'#000099')).toString() + QtCore.QVariant(u'#ffffff')).toString() self.defaultFileEdit.setText(settings.value(u'default image', QtCore.QVariant(u':/graphics/openlp-splash-screen.png'))\ .toString()) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 30457f569..7843284b3 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -145,7 +145,7 @@ class MainDisplay(DisplayWidget): background_color = QtGui.QColor() background_color.setNamedColor(QtCore.QSettings().value( u'advanced/default color', - QtCore.QVariant(u'#990000')).toString()) + QtCore.QVariant(u'#ffffff')).toString()) if not background_color.isValid(): background_color = QtCore.Qt.white splash_image = QtGui.QImage(image_file) From f732d24f35aadebecec2d0f232f2a7871122fd2d Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Wed, 27 Apr 2011 16:54:27 +0200 Subject: [PATCH 85/94] Fixed bug #744515, OSIS import fails to import certain words in ESV (at least). --- openlp/plugins/bibles/lib/osis.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/bibles/lib/osis.py b/openlp/plugins/bibles/lib/osis.py index e2eb25b4f..130356241 100644 --- a/openlp/plugins/bibles/lib/osis.py +++ b/openlp/plugins/bibles/lib/osis.py @@ -37,6 +37,9 @@ from openlp.plugins.bibles.lib.db import BibleDB log = logging.getLogger(__name__) +def replacement(match): + return match.group(2).upper() + class OSISBible(BibleDB): """ `OSIS `_ Bible format importer class. @@ -106,6 +109,7 @@ class OSISBible(BibleDB): detect_file.close() try: osis = codecs.open(self.filename, u'r', details['encoding']) + repl = replacement for file_record in osis: if self.stop_import_flag: break @@ -148,12 +152,12 @@ class OSISBible(BibleDB): verse_text = self.rf_regex.sub(u'', verse_text) verse_text = self.lb_regex.sub(u' ', verse_text) verse_text = self.lg_regex.sub(u'', verse_text) - verse_text = self.l_regex.sub(u'', verse_text) + verse_text = self.l_regex.sub(u' ', verse_text) verse_text = self.w_regex.sub(u'', verse_text) verse_text = self.q1_regex.sub(u'"', verse_text) verse_text = self.q2_regex.sub(u'\'', verse_text) + verse_text = self.divine_name_regex.sub(repl, verse_text) verse_text = self.trans_regex.sub(u'', verse_text) - verse_text = self.divine_name_regex.sub(u'', verse_text) verse_text = verse_text.replace(u'', u'')\ .replace(u'', u'').replace(u'', u'')\ .replace(u'', u'').replace(u'', u'')\ From d23e564539127c7dbe7c591be40330436d3874e3 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Wed, 27 Apr 2011 18:15:35 +0200 Subject: [PATCH 86/94] Fixed bug #744515, funny quotes in KJV imported from OSIS. --- openlp/plugins/bibles/lib/osis.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openlp/plugins/bibles/lib/osis.py b/openlp/plugins/bibles/lib/osis.py index 130356241..a080524eb 100644 --- a/openlp/plugins/bibles/lib/osis.py +++ b/openlp/plugins/bibles/lib/osis.py @@ -63,6 +63,7 @@ class OSISBible(BibleDB): self.lg_regex = re.compile(r'') self.l_regex = re.compile(r'') self.w_regex = re.compile(r'') + self.q_regex = re.compile(r'') self.q1_regex = re.compile(r'') self.q2_regex = re.compile(r'') self.trans_regex = re.compile(r'(.*?)') @@ -156,6 +157,7 @@ class OSISBible(BibleDB): verse_text = self.w_regex.sub(u'', verse_text) verse_text = self.q1_regex.sub(u'"', verse_text) verse_text = self.q2_regex.sub(u'\'', verse_text) + verse_text = self.q_regex.sub(u'', verse_text) verse_text = self.divine_name_regex.sub(repl, verse_text) verse_text = self.trans_regex.sub(u'', verse_text) verse_text = verse_text.replace(u'', u'')\ From c9d69c55cd69865a3d8018b735255cb535e97274 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 27 Apr 2011 18:41:03 +0100 Subject: [PATCH 87/94] Fix soft break --- openlp/core/lib/renderer.py | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 9fd4e8815..a79006201 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -217,22 +217,21 @@ class Renderer(object): log.debug(u'format slide') # clean up line endings lines = self._lines_split(text) - # Songs and Custom - if item.is_capable(ItemCapabilities.AllowsVirtualSplit): - # Do not forget the line breaks ! - slides = text.split(u'\n[---]\n') - pages = [] - for slide in slides: - lines = self._lines(slide) - new_pages = self._paginate_slide(lines, line_break, - self.force_page) - pages.extend([page for page in new_pages]) - # Bibles - elif item.is_capable(ItemCapabilities.AllowsWordSplit): - pages = self._paginate_slide_words(text, line_break) - # Theme preview "service items". - else: - pages = self._paginate_slide(lines, line_break, self.force_page) + pages = self._paginate_slide(lines, line_break, self.force_page) + if len(pages) > 1: + # Songs and Custom + if item.is_capable(ItemCapabilities.AllowsVirtualSplit): + # Do not forget the line breaks ! + slides = text.split(u'\n[---]\n') + pages = [] + for slide in slides: + lines = self._lines(slide) + new_pages = self._paginate_slide(lines, line_break, + self.force_page) + pages.extend([page for page in new_pages]) + # Bibles + elif item.is_capable(ItemCapabilities.AllowsWordSplit): + pages = self._paginate_slide_words(text, line_break) return pages def _calculate_default(self, screen): @@ -376,7 +375,7 @@ class Renderer(object): formatted = [] previous_html = u'' previous_raw = u'' - lines = self._lines(text, u'[---]') + lines = self._lines(text) for line in lines: styled_line = expand_tags(line) html = self.page_shell + previous_html + styled_line + HTML_END @@ -408,7 +407,7 @@ class Renderer(object): log.debug(u'_paginate_slide_words - End') return formatted - def _lines(self, text, split=u'\n[---]\n'): + def _lines(self, text): """ Split the slide up by physical line """ @@ -442,7 +441,7 @@ class Renderer(object): lines = text.split(u'\n') real_lines = [] for line in lines: - line = line.replace(u' [---]', u'[---]') + line = line.replace(u'[---]', u'') sub_lines = line.split(u'\n') real_lines.extend([sub_line for sub_line in sub_lines]) return real_lines From b081c2012816c83c17dbfb5088c96b3c839b45ad Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 27 Apr 2011 20:44:21 +0100 Subject: [PATCH 88/94] Fix blank line --- openlp/core/lib/renderer.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index a79006201..c2e64dadc 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -438,6 +438,7 @@ class Renderer(object): Split the slide up by physical line """ # this parse we do not want to use this so remove it + text = text.replace(u'\n[---]', u'') lines = text.split(u'\n') real_lines = [] for line in lines: From 9aa1f580d2cb00123066d161487b241989cc40de Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 28 Apr 2011 08:36:04 +0200 Subject: [PATCH 89/94] fixed right/left shortcuts --- openlp/core/ui/slidecontroller.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 5f2c63c23..dfa313cc1 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -380,18 +380,21 @@ class SlideController(QtGui.QWidget): action_list.add_action(self.previousItem) action_list.add_action(self.nextItem) self.previousService = shortcut_action(parent, u'previousService', - [QtCore.Qt.Key_Left], self.servicePrevious, UiStrings().LiveToolbar) - self.previousService.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut) + [QtCore.Qt.Key_Left], self.servicePrevious, + category=UiStrings().LiveToolbar, + context=QtCore.Qt.WidgetWithChildrenShortcut) self.previousService.setText( translate('OpenLP.SlideController', 'Previous Service')) self.nextService = shortcut_action(parent, 'nextService', - [QtCore.Qt.Key_Right], self.serviceNext, UiStrings().LiveToolbar) - self.nextService.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut) + [QtCore.Qt.Key_Right], self.serviceNext, + category=UiStrings().LiveToolbar, + context=QtCore.Qt.WidgetWithChildrenShortcut) self.nextService.setText( translate('OpenLP.SlideController', 'Next Service')) self.escapeItem = shortcut_action(parent, 'escapeItem', - [QtCore.Qt.Key_Escape], self.liveEscape, UiStrings().LiveToolbar) - self.escapeItem.setShortcutContext(QtCore.Qt.WidgetWithChildrenShortcut) + [QtCore.Qt.Key_Escape], self.liveEscape, + category=UiStrings().LiveToolbar, + context=QtCore.Qt.WidgetWithChildrenShortcut) self.escapeItem.setText( translate('OpenLP.SlideController', 'Escape Item')) @@ -1150,4 +1153,5 @@ class SlideController(QtGui.QWidget): elif self.desktopScreen.isChecked(): return HideMode.Screen else: - return None \ No newline at end of file + return None + From 9996320522801abe70c9ddf7771c41d60de413c2 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 28 Apr 2011 08:44:48 +0200 Subject: [PATCH 90/94] fixed verse splitting where not necessary --- openlp/core/lib/renderer.py | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index c2e64dadc..7687ebe9a 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -364,10 +364,6 @@ class Renderer(object): Add line endings after each line of text used for bibles. """ - # In the beginning ... - # - # - # Verse 2 log.debug(u'_paginate_slide_words - Start') line_end = u'' if line_break: @@ -382,6 +378,27 @@ class Renderer(object): self.web.setHtml(html) # Text too long so go to next page if self.web_frame.contentsSize().height() > self.page_height: + # Check if there was a verse before the current one and append + # it, when it fits on the page. + if previous_html: + html = self.page_shell + previous_html + HTML_END + self.web.setHtml(html) + if self.web_frame.contentsSize().height() <= \ + self.page_height: + previous_raw = previous_raw.rstrip(u'
') + formatted.append(previous_raw) + previous_html = u'' + previous_raw = u'' + html = self.page_shell + styled_line + HTML_END + self.web.setHtml(html) + # Now check if the current verse will fit, if it does + # not we have to start to process the verse word by + # word. + if self.web_frame.contentsSize().height() <= \ + self.page_height: + previous_html = styled_line + line_end + previous_raw = line + line_end + continue words = self._words_split(line) for word in words: styled_word = expand_tags(word) From e9ec8aaaaf53e94118dd1ab05b99493b63255207 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 28 Apr 2011 18:32:37 +0200 Subject: [PATCH 91/94] added shorcuts for start/stop/toggle loop (#771966) Fixes: https://launchpad.net/bugs/771966 --- openlp/core/ui/slidecontroller.py | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index dfa313cc1..5a6e5aec3 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -180,16 +180,25 @@ class SlideController(QtGui.QWidget): self.hideMenu.menu().addAction(self.themeScreen) self.hideMenu.menu().addAction(self.desktopScreen) self.toolbar.addToolbarSeparator(u'Loop Separator') - self.toolbar.addToolbarButton( + startLoop = self.toolbar.addToolbarButton( # Does not need translating - control string. u'Start Loop', u':/media/media_time.png', translate('OpenLP.SlideController', 'Start continuous loop'), self.onStartLoop) - self.toolbar.addToolbarButton( + action_list = ActionList.get_instance() + action_list.add_action(startLoop, UiStrings().LiveToolbar) + stopLoop =self.toolbar.addToolbarButton( # Does not need translating - control string. u'Stop Loop', u':/media/media_stop.png', translate('OpenLP.SlideController', 'Stop continuous loop'), self.onStopLoop) + action_list.add_action(stopLoop, UiStrings().LiveToolbar) + self.toogleLoop = shortcut_action(self, u'toogleLoop', + [QtGui.QKeySequence(u'L')], self.onToggleLoop, + category=UiStrings().LiveToolbar) + self.toogleLoop.setText(translate('OpenLP.SlideController', + 'Start/Stop continuous loop')) + self.addAction(self.toogleLoop) self.delaySpinBox = QtGui.QSpinBox() self.delaySpinBox.setMinimum(1) self.delaySpinBox.setMaximum(180) @@ -494,6 +503,9 @@ class SlideController(QtGui.QWidget): self.mediabar.setVisible(False) self.toolbar.makeWidgetsInvisible([u'Song Menu']) self.toolbar.makeWidgetsInvisible(self.loopList) + self.toogleLoop.setEnabled(False) + self.toolbar.actions[u'Start Loop'].setEnabled(False) + self.toolbar.actions[u'Stop Loop'].setEnabled(False) self.toolbar.actions[u'Stop Loop'].setVisible(False) if item.is_text(): if QtCore.QSettings().value( @@ -503,6 +515,9 @@ class SlideController(QtGui.QWidget): if item.is_capable(ItemCapabilities.AllowsLoop) and \ len(item.get_frames()) > 1: self.toolbar.makeWidgetsVisible(self.loopList) + self.toogleLoop.setEnabled(True) + self.toolbar.actions[u'Start Loop'].setEnabled(True) + self.toolbar.actions[u'Stop Loop'].setEnabled(True) if item.is_media(): self.toolbar.setVisible(False) self.mediabar.setVisible(True) @@ -995,6 +1010,15 @@ class SlideController(QtGui.QWidget): self.previewListWidget.rowCount() - 1) self.slideSelected() + def onToggleLoop(self, toggled): + """ + Toggles the loop state. + """ + if self.toolbar.actions[u'Start Loop'].isVisible(): + self.onStartLoop() + else: + self.onStopLoop() + def onStartLoop(self): """ Start the timer loop running and store the timer id From aea4909201b18c990b8a014a2aa749292438d29f Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 28 Apr 2011 18:36:53 +0200 Subject: [PATCH 92/94] added missing space --- openlp/core/ui/slidecontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 5a6e5aec3..3b33f9a22 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -187,7 +187,7 @@ class SlideController(QtGui.QWidget): self.onStartLoop) action_list = ActionList.get_instance() action_list.add_action(startLoop, UiStrings().LiveToolbar) - stopLoop =self.toolbar.addToolbarButton( + stopLoop = self.toolbar.addToolbarButton( # Does not need translating - control string. u'Stop Loop', u':/media/media_stop.png', translate('OpenLP.SlideController', 'Stop continuous loop'), From 7f1db15ab174f213e42db5a44a6f004e47163d3f Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Fri, 29 Apr 2011 01:25:28 +0200 Subject: [PATCH 93/94] Fixed bug #771529, dealing with 1.9.0 databases. --- openlp/plugins/songs/lib/__init__.py | 5 ++++- openlp/plugins/songs/lib/xml.py | 16 ++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/openlp/plugins/songs/lib/__init__.py b/openlp/plugins/songs/lib/__init__.py index 249a76a38..f9a160e55 100644 --- a/openlp/plugins/songs/lib/__init__.py +++ b/openlp/plugins/songs/lib/__init__.py @@ -293,7 +293,10 @@ def clean_song(manager, song): song.lyrics = unicode(sxml.extract_xml(), u'utf-8') # Rebuild the verse order, to convert translated verse tags, which might # have been added prior to 1.9.5. - order = song.verse_order.strip().split() + if song.verse_order: + order = song.verse_order.strip().split() + else: + order = [] new_order = [] for verse_def in order: verse_type = VerseType.Tags[VerseType.from_loose_input(verse_def[0])] diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index 87e28591e..f2fd897d9 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -133,14 +133,26 @@ class SongXML(object): [{'lang': 'en', 'type': 'c', 'label': '1'}, u"English chorus"]] """ self.song_xml = None - if xml[:5] == u'') + self.lyrics = etree.SubElement(self.song_xml, u'lyrics') + verses = xml.split(u'\n\n') + for count, verse in enumerate(verses): + verse_list.append([{u'type': u'v', u'label': unicode(count)}, + unicode(verse)]) + self.add_verse_to_lyrics(u'v', unicode(count), verse) + return verse_list + elif xml[:5] == u' Date: Fri, 29 Apr 2011 08:28:09 +0200 Subject: [PATCH 94/94] Changed [:] notation to .startswith(). --- openlp/plugins/songs/lib/xml.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index f2fd897d9..1c20b23a5 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -146,7 +146,7 @@ class SongXML(object): unicode(verse)]) self.add_verse_to_lyrics(u'v', unicode(count), verse) return verse_list - elif xml[:5] == u'

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 literal 37379 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 N3Tn3s0V9Bh1h#0r1r!25ARGn7m7sw?p3p|Y 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