← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~trb143/openlp/fixes into lp:openlp

 

Tim Bentley has proposed merging lp:~trb143/openlp/fixes into lp:openlp.

    Requested reviews:
    OpenLP Core (openlp-core)


Revamp the renderer code which splits the lines.
Add enforcement that lines can only be of a minimum size (2 characters).
-- 
https://code.launchpad.net/~trb143/openlp/fixes/+merge/15118
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file '.bzrignore' (properties changed: -x to +x)
=== modified file 'LICENSE' (properties changed: -x to +x)
=== modified file 'copyright.txt' (properties changed: -x to +x)
=== modified file 'demo.py' (properties changed: -x to +x)
=== modified file 'demo_theme.xml' (properties changed: -x to +x)
=== modified file 'documentation/Makefile' (properties changed: -x to +x)
=== modified file 'documentation/PluginDevelopersGuide.txt' (properties changed: -x to +x)
=== modified file 'documentation/SongFormat.txt' (properties changed: -x to +x)
=== modified file 'documentation/make.bat' (properties changed: -x to +x)
=== modified file 'documentation/pyqt-sql-py2exe.txt' (properties changed: -x to +x)
=== modified file 'documentation/source/conf.py' (properties changed: -x to +x)
=== modified file 'documentation/source/core/index.rst' (properties changed: -x to +x)
=== modified file 'documentation/source/core/lib.rst' (properties changed: -x to +x)
=== modified file 'documentation/source/core/theme.rst' (properties changed: -x to +x)
=== modified file 'documentation/source/index.rst' (properties changed: -x to +x)
=== modified file 'documentation/source/migration/index.rst' (properties changed: -x to +x)
=== modified file 'documentation/source/openlp.rst' (properties changed: -x to +x)
=== modified file 'documentation/source/plugins/index.rst' (properties changed: -x to +x)
=== modified file 'documentation/source/plugins/songs.rst' (properties changed: -x to +x)
=== modified file 'i18n/openlp_en.ts' (properties changed: -x to +x)
=== modified file 'openlp-get-strings.py' (properties changed: -x to +x)
=== modified file 'openlp/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/core/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/baselistwithdnd.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/dockwidget.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/eventreceiver.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/mediamanageritem.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/plugin.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/pluginconfig.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/pluginmanager.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/renderer.py' (properties changed: -x to +x)
--- openlp/core/lib/renderer.py	2009-11-04 01:16:15 +0000
+++ openlp/core/lib/renderer.py	2009-11-21 09:25:22 +0000
@@ -168,35 +168,45 @@
         line_width = self._rect.width() - self._right_margin
         #number of lines on a page - adjust for rounding up.
         page_length = int(self._rect.height() / metrics.height() - 2 ) - 1
+        #Average number of characters in line
         ave_line_width = line_width / metrics.averageCharWidth()
-        ave_line_width = int(ave_line_width + (ave_line_width * 1))
+        #Maximum size of a character
+        max_char_width = metrics.maxWidth()
+        #Min size of a character
+        min_char_width = metrics.width(u'i')
+        char_per_line = line_width / min_char_width
         log.debug(u'Page Length  area height %s , metrics %s , lines %s' %
                   (int(self._rect.height()), metrics.height(), page_length ))
         split_pages = []
         page = []
         split_lines = []
+        count = 0
         for line in text:
             #Must be a blank line so keep it.
             if len(line) == 0:
                 line = u' '
             while len(line) > 0:
-                if len(line) > ave_line_width:
-                    pos = line.find(u' ', ave_line_width)
-                    split_text = line[:pos]
-                else:
-                    pos = len(line)
-                    split_text = line
-                while metrics.width(split_text, -1) > line_width:
-                    #Find the next space to the left
-                    pos = line[:pos].rfind(u' ')
-                    #no more spaces found
-                    if pos == 0:
-                        split_text = line
+                pos = char_per_line
+                split_text = line[:pos]
+                #line needs splitting
+                if metrics.width(split_text, -1) > line_width:
+                    #We have no spaces
+                    if split_text.find(u' ') == -1:
+                        #Move back 1 char at a time till it fits
                         while metrics.width(split_text, -1) > line_width:
                             split_text = split_text[:-1]
-                        pos = len(split_text)
+                            pos = len(split_text)
                     else:
-                        split_text = line[:pos]
+                        #We have spaces so split at previous one
+                        while metrics.width(split_text, -1) > line_width:
+                            pos = split_text.rfind(u' ')
+                            #no more spaces and we are still too long
+                            if pos == -1:
+                                while metrics.width(split_text, -1) > line_width:
+                                    split_text = split_text[:-1]
+                                    pos = len(split_text)
+                            else:
+                                split_text = line[:pos]
                 split_lines.append(split_text)
                 line = line[pos:].lstrip()
                 #if we have more text add up to 10 spaces on the front.
@@ -450,32 +460,32 @@
                         draw=True, color = self._theme.display_shadow_color)
                 if self._theme.display_outline:
                     self._get_extent_and_render(line, footer,
-                        (x+self._outline_offset, y), draw=True,
-                        color = self._theme.display_outline_color)
-                    self._get_extent_and_render(line, footer,
-                        (x, y+self._outline_offset), draw=True,
-                        color = self._theme.display_outline_color)
-                    self._get_extent_and_render(line, footer,
-                        (x, y-self._outline_offset), draw=True,
-                        color = self._theme.display_outline_color)
-                    self._get_extent_and_render(line, footer,
-                        (x-self._outline_offset, y), draw=True,
+                        (x + self._outline_offset, y), draw=True,
+                        color = self._theme.display_outline_color)
+                    self._get_extent_and_render(line, footer,
+                        (x, y + self._outline_offset), draw=True,
+                        color = self._theme.display_outline_color)
+                    self._get_extent_and_render(line, footer,
+                        (x, y - self._outline_offset), draw=True,
+                        color = self._theme.display_outline_color)
+                    self._get_extent_and_render(line, footer,
+                        (x - self._outline_offset, y), draw=True,
                         color = self._theme.display_outline_color)
                     if self._outline_offset > 1:
                         self._get_extent_and_render(line, footer,
-                            (x+self._outline_offset, y+self._outline_offset),
-                            draw=True,
-                            color = self._theme.display_outline_color)
-                        self._get_extent_and_render(line, footer,
-                            (x-self._outline_offset, y+self._outline_offset),
-                            draw=True,
-                            color = self._theme.display_outline_color)
-                        self._get_extent_and_render(line, footer,
-                            (x+self._outline_offset, y-self._outline_offset),
-                            draw=True,
-                            color = self._theme.display_outline_color)
-                        self._get_extent_and_render(line, footer,
-                            (x-self._outline_offset, y-self._outline_offset),
+                            (x + self._outline_offset, y + self._outline_offset),
+                            draw=True,
+                            color = self._theme.display_outline_color)
+                        self._get_extent_and_render(line, footer,
+                            (x - self._outline_offset, y + self._outline_offset),
+                            draw=True,
+                            color = self._theme.display_outline_color)
+                        self._get_extent_and_render(line, footer,
+                            (x + self._outline_offset, y - self._outline_offset),
+                            draw=True,
+                            color = self._theme.display_outline_color)
+                        self._get_extent_and_render(line, footer,
+                            (x - self._outline_offset, y - self._outline_offset),
                             draw=True,
                             color = self._theme.display_outline_color)
                 self._get_extent_and_render(line, footer,tlcorner=(x, y),

=== modified file 'openlp/core/lib/rendermanager.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/serviceitem.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/settingsmanager.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/settingstab.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/songxmlhandler.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/themexmlhandler.py' (properties changed: -x to +x)
--- openlp/core/lib/themexmlhandler.py	2009-11-12 00:49:55 +0000
+++ openlp/core/lib/themexmlhandler.py	2009-11-21 09:25:22 +0000
@@ -69,7 +69,7 @@
        <horizontalAlign>0</horizontalAlign>
        <verticalAlign>0</verticalAlign>
        <wrapStyle>0</wrapStyle>
-   </display>
+    </display>
  </theme>
 '''
 

=== modified file 'openlp/core/lib/toolbar.py' (properties changed: -x to +x)
=== modified file 'openlp/core/lib/xmlrootclass.py' (properties changed: -x to +x)
=== modified file 'openlp/core/resources.py' (properties changed: -x to +x)
=== modified file 'openlp/core/test/data_for_tests/render_theme.xml' (properties changed: -x to +x)
=== modified file 'openlp/core/test/data_for_tests/snowbig.jpg' (properties changed: -x to +x)
=== modified file 'openlp/core/test/data_for_tests/snowsmall.jpg' (properties changed: -x to +x)
=== modified file 'openlp/core/test/data_for_tests/sunset1.jpg' (properties changed: -x to +x)
=== modified file 'openlp/core/test/data_for_tests/treesbig.jpg' (properties changed: -x to +x)
=== modified file 'openlp/core/test/data_for_tests/treessmall.jpg' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_bg_shrink_x.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_bg_shrink_y.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_bg_stretch_x.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_bg_stretch_y.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_gradient_h.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_gradient_v.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_theme_basic.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_theme_font.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_theme_horizontal_align_centre.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_theme_horizontal_align_left.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_theme_horizontal_align_left_lyric.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_theme_horizontal_align_right.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_theme_shadow_outline.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_theme_vertical_align_bot.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_theme_vertical_align_cen.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/golden_bitmaps/test_theme_vertical_align_top.bmp' (properties changed: -x to +x)
=== modified file 'openlp/core/test/test_mediamanageritem.py' (properties changed: -x to +x)
=== modified file 'openlp/core/test/test_plugin_manager.py' (properties changed: -x to +x)
=== modified file 'openlp/core/test/test_render.py' (properties changed: -x to +x)
=== modified file 'openlp/core/test/test_render_theme.py' (properties changed: -x to +x)
=== modified file 'openlp/core/test/testplugins/deeper/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/core/test/testplugins/deeper/toodeep/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/core/test/testplugins/deeper/toodeep/plugin3toodeep.py' (properties changed: -x to +x)
=== modified file 'openlp/core/test/testplugins/testplugin1.py' (properties changed: -x to +x)
=== modified file 'openlp/core/test/testplugins/testplugin2/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/core/test/testplugins/testplugin2/testplugin2.py' (properties changed: -x to +x)
=== modified file 'openlp/core/theme/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/core/theme/test/test_theme.py' (properties changed: -x to +x)
=== modified file 'openlp/core/theme/test/test_theme.xml' (properties changed: -x to +x)
=== modified file 'openlp/core/theme/theme.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/about.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/alertform.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/alertstab.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/amendthemedialog.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/amendthemeform.py' (properties changed: -x to +x)
--- openlp/core/ui/amendthemeform.py	2009-11-12 23:49:35 +0000
+++ openlp/core/ui/amendthemeform.py	2009-11-21 09:25:22 +0000
@@ -189,7 +189,7 @@
         self.allowPreview = False
         self.paintUi(self.theme)
         self.allowPreview = True
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onImageToolButtonClicked(self):
         filename = QtGui.QFileDialog.getOpenFileName(
@@ -197,13 +197,13 @@
         if filename:
             self.ImageLineEdit.setText(filename)
             self.theme.background_filename = filename
-            self.previewTheme(self.theme)
+            self.previewTheme()
     #
     #Main Font Tab
     #
     def onFontMainComboBoxSelected(self):
         self.theme.font_main_name = self.FontMainComboBox.currentFont().family()
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onFontMainWeightComboBoxSelected(self, value):
         if value == 0:
@@ -218,7 +218,7 @@
         else:
             self.theme.font_main_weight = u'Bold'
             self.theme.font_main_italics = True
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onFontMainColorPushButtonClicked(self):
         self.theme.font_main_color = QtGui.QColorDialog.getColor(
@@ -226,12 +226,12 @@
 
         self.FontMainColorPushButton.setStyleSheet(
             u'background-color: %s' % unicode(self.theme.font_main_color))
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onFontMainSizeSpinBoxChanged(self):
         if self.theme.font_main_proportion != self.FontMainSizeSpinBox.value():
             self.theme.font_main_proportion = self.FontMainSizeSpinBox.value()
-            self.previewTheme(self.theme)
+            self.previewTheme()
 
     def onFontMainDefaultCheckBoxChanged(self, value):
         if value == 2:  # checked
@@ -252,41 +252,41 @@
             self.FontMainLineSpacingSpinBox.setValue(
                 self.theme.font_main_indentation)
         self.stateChanging(self.theme)
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onFontMainXSpinBoxChanged(self):
         if self.theme.font_main_x != self.FontMainXSpinBox.value():
             self.theme.font_main_x = self.FontMainXSpinBox.value()
-            self.previewTheme(self.theme)
+            self.previewTheme()
 
     def onFontMainYSpinBoxChanged(self):
         if self.theme.font_main_y != self.FontMainYSpinBox.value():
             self.theme.font_main_y = self.FontMainYSpinBox.value()
-            self.previewTheme(self.theme)
+            self.previewTheme()
 
     def onFontMainWidthSpinBoxChanged(self):
         if self.theme.font_main_width != self.FontMainWidthSpinBox.value():
             self.theme.font_main_width = self.FontMainWidthSpinBox.value()
-            self.previewTheme(self.theme)
+            self.previewTheme()
 
     def onFontMainLineSpacingSpinBoxChanged(self):
         if self.theme.font_main_indentation != \
             self.FontMainLineSpacingSpinBox.value():
             self.theme.font_main_indentation = \
                 self.FontMainLineSpacingSpinBox.value()
-            self.previewTheme(self.theme)
+            self.previewTheme()
 
     def onFontMainHeightSpinBoxChanged(self):
         if self.theme.font_main_height != self.FontMainHeightSpinBox.value():
             self.theme.font_main_height = self.FontMainHeightSpinBox.value()
-            self.previewTheme(self.theme)
+            self.previewTheme()
     #
     #Footer Font Tab
     #
     def onFontFooterComboBoxSelected(self):
         self.theme.font_footer_name = \
             self.FontFooterComboBox.currentFont().family()
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onFontFooterWeightComboBoxSelected(self, value):
         if value == 0:
@@ -301,22 +301,21 @@
         else:
             self.theme.font_footer_weight = u'Bold'
             self.theme.font_footer_italics = True
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onFontFooterColorPushButtonClicked(self):
         self.theme.font_footer_color = QtGui.QColorDialog.getColor(
             QtGui.QColor(self.theme.font_footer_color), self).name()
-
         self.FontFooterColorPushButton.setStyleSheet(
             'background-color: %s' % unicode(self.theme.font_footer_color))
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onFontFooterSizeSpinBoxChanged(self):
         if self.theme.font_footer_proportion != \
             self.FontFooterSizeSpinBox.value():
             self.theme.font_footer_proportion = \
                 self.FontFooterSizeSpinBox.value()
-            self.previewTheme(self.theme)
+            self.previewTheme()
 
     def onFontFooterDefaultCheckBoxChanged(self, value):
         if value == 2:  # checked
@@ -336,29 +335,29 @@
             self.FontFooterHeightSpinBox.setValue(
                 self.theme.font_footer_height)
         self.stateChanging(self.theme)
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onFontFooterXSpinBoxChanged(self):
         if self.theme.font_footer_x != self.FontFooterXSpinBox.value():
             self.theme.font_footer_x = self.FontFooterXSpinBox.value()
-            self.previewTheme(self.theme)
+            self.previewTheme()
 
     def onFontFooterYSpinBoxChanged(self):
         if self.theme.font_footer_y != self.FontFooterYSpinBox.value():
             self.theme.font_footer_y = self.FontFooterYSpinBox.value()
-            self.previewTheme(self.theme)
+            self.previewTheme()
 
     def onFontFooterWidthSpinBoxChanged(self):
         if self.theme.font_footer_width != self.FontFooterWidthSpinBox.value():
             self.theme.font_footer_width = self.FontFooterWidthSpinBox.value()
-            self.previewTheme(self.theme)
+            self.previewTheme()
 
     def onFontFooterHeightSpinBoxChanged(self):
         if self.theme.font_footer_height != \
             self.FontFooterHeightSpinBox.value():
             self.theme.font_footer_height = \
                 self.FontFooterHeightSpinBox.value()
-            self.previewTheme(self.theme)
+            self.previewTheme()
     #
     #Background Tab
     #
@@ -372,7 +371,7 @@
         else:
             self.theme.background_mode = u'transparent'
         self.stateChanging(self.theme)
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onBackgroundTypeComboBoxSelected(self, currentIndex):
         self.setBackground(currentIndex, self.GradientComboBox.currentIndex())
@@ -397,7 +396,7 @@
         else:
             self.theme.background_type = u'image'
         self.stateChanging(self.theme)
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onColor1PushButtonClicked(self):
         if self.theme.background_type == u'solid':
@@ -412,14 +411,14 @@
                 u'background-color: %s' % \
                     unicode(self.theme.background_startColor))
 
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onColor2PushButtonClicked(self):
         self.theme.background_endColor = QtGui.QColorDialog.getColor(
             QtGui.QColor(self.theme.background_endColor), self).name()
         self.Color2PushButton.setStyleSheet(
             u'background-color: %s' % unicode(self.theme.background_endColor))
-        self.previewTheme(self.theme)
+        self.previewTheme()
     #
     #Other Tab
     #
@@ -429,14 +428,14 @@
         else:
             self.theme.display_outline = False
         self.stateChanging(self.theme)
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onOutlineColorPushButtonClicked(self):
         self.theme.display_outline_color = QtGui.QColorDialog.getColor(
             QtGui.QColor(self.theme.display_outline_color), self).name()
         self.OutlineColorPushButton.setStyleSheet(
             u'background-color: %s' % unicode(self.theme.display_outline_color))
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onShadowCheckBoxChanged(self, value):
         if value == 2:  # checked
@@ -444,24 +443,24 @@
         else:
             self.theme.display_shadow = False
         self.stateChanging(self.theme)
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onShadowColorPushButtonClicked(self):
         self.theme.display_shadow_color = QtGui.QColorDialog.getColor(
             QtGui.QColor(self.theme.display_shadow_color), self).name()
         self.ShadowColorPushButton.setStyleSheet(
             u'background-color: %s' % unicode(self.theme.display_shadow_color))
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onHorizontalComboBoxSelected(self, currentIndex):
         self.theme.display_horizontalAlign = currentIndex
         self.stateChanging(self.theme)
-        self.previewTheme(self.theme)
+        self.previewTheme()
 
     def onVerticalComboBoxSelected(self, currentIndex):
         self.theme.display_verticalAlign = currentIndex
         self.stateChanging(self.theme)
-        self.previewTheme(self.theme)
+        self.previewTheme()
     #
     #Local Methods
     #
@@ -654,18 +653,10 @@
         else:
             self.ShadowColorPushButton.setEnabled(False)
 
-    def previewTheme(self, theme):
+    def previewTheme(self):
         if self.allowPreview:
             #calculate main number of rows
-            main_weight = 50
-            if self.theme.font_main_weight == u'Bold':
-                main_weight = 75
-            mainFont = QtGui.QFont(self.theme.font_main_name,
-                         self.theme.font_main_proportion, # size
-                         main_weight, # weight
-                         self.theme.font_main_italics)# italic
-            mainFont.setPixelSize(self.theme.font_main_proportion)
-            metrics = QtGui.QFontMetrics(mainFont)
+            metrics = self._getThemeMetrics()
             page_length = \
                 (self.FontMainHeightSpinBox.value() / metrics.height() - 2) - 1
             log.debug(u'Page Length area height %s, metrics %s, lines %s' %
@@ -673,6 +664,22 @@
                 page_length))
             page_length_text = unicode(self.trUtf8(u'Slide Height is %s rows'))
             self.FontMainLinesPageLabel.setText(page_length_text % page_length)
-            frame = self.thememanager.generateImage(theme)
+            #a=c
+            frame = self.thememanager.generateImage(self.theme)
             self.ThemePreview.setPixmap(QtGui.QPixmap.fromImage(frame))
 
+    def _getThemeMetrics(self):
+        main_weight = 50
+        if self.theme.font_main_weight == u'Bold':
+            main_weight = 75
+        mainFont = QtGui.QFont(self.theme.font_main_name,
+                     self.theme.font_main_proportion, # size
+                     main_weight, # weight
+                     self.theme.font_main_italics)# italic
+        mainFont.setPixelSize(self.theme.font_main_proportion)
+        metrics = QtGui.QFontMetrics(mainFont)
+        #Validate that the screen width is big enough to display the text
+        if self.theme.font_main_width < metrics.maxWidth() * 2 + 64:
+            self.theme.font_main_width = metrics.maxWidth() * 2 + 64
+            self.FontMainWidthSpinBox.setValue(self.theme.font_main_width)
+        return metrics

=== modified file 'openlp/core/ui/generaltab.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/maindisplay.py' (properties changed: -x to +x)
--- openlp/core/ui/maindisplay.py	2009-11-15 07:02:27 +0000
+++ openlp/core/ui/maindisplay.py	2009-11-21 09:25:22 +0000
@@ -194,16 +194,10 @@
         if self.timer_id != 0 :
             self.displayAlert()
         elif not self.displayBlank:
-#            self.setWindowOpacity(0.5)
-#            self.show()
             self.display.setPixmap(QtGui.QPixmap.fromImage(frame))
-#            QtCore.QTimer.singleShot(500, self.aa )
             if not self.isVisible():
                 self.setVisible(True)
                 self.showFullScreen()
-#
-#    def aa(self):
-#        self.setWindowOpacity(1)
 
     def blankDisplay(self, blanked=True):
         if blanked:

=== modified file 'openlp/core/ui/mainwindow.py' (properties changed: -x to +x)
--- openlp/core/ui/mainwindow.py	2009-11-12 17:18:30 +0000
+++ openlp/core/ui/mainwindow.py	2009-11-21 09:25:22 +0000
@@ -584,7 +584,7 @@
                 self.trUtf8(u'The Main Display has been blanked out'),
                 QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok),
                 QtGui.QMessageBox.Ok)
-            self.LiveController.blackPushButton.setChecked(True)
+            #self.LiveController.blackPushButton.setChecked(True)
 
     def onHelpAboutItemClicked(self):
         """

=== modified file 'openlp/core/ui/mediadockmanager.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/plugindialog.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/pluginform.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/servicemanager.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/settingsdialog.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/settingsform.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/slidecontroller.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/splashscreen.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/test/test_service_manager.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/thememanager.py' (properties changed: -x to +x)
=== modified file 'openlp/core/ui/themestab.py' (properties changed: -x to +x)
=== modified file 'openlp/core/utils/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/core/utils/confighelper.py' (properties changed: -x to +x)
=== modified file 'openlp/core/utils/registry.py' (properties changed: -x to +x)
=== modified file 'openlp/migration/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/migration/display.py' (properties changed: -x to +x)
=== modified file 'openlp/migration/migratebibles.py' (properties changed: -x to +x)
=== modified file 'openlp/migration/migratefiles.py' (properties changed: -x to +x)
=== modified file 'openlp/migration/migratesongs.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/bibleplugin.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/forms/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/forms/bibleimportdialog.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/forms/bibleimportform.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/lib/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/lib/bibleCSVimpl.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/lib/bibleDBimpl.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/lib/bibleHTTPimpl.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/lib/bibleOSISimpl.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/lib/biblestab.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/lib/common.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/lib/manager.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/lib/mediaitem.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/lib/models.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/resources/biblegateway.csv' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/resources/crosswalkbooks.csv' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/resources/httpbooks.csv' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/resources/osisbooks.csv' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/test/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/test/biblebooks_msg_short.csv' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/test/biblebooks_niv_short.csv' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/test/bibleverses_msg_short.csv' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/test/bibleverses_niv_short.csv' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/test/test_bibleManager.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/test/test_bibleManagerAPI.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/test/test_bibleManagerCSV.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/bibles/test/test_bibleManagerOSIS.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/custom/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/custom/customplugin.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/custom/forms/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/custom/forms/editcustomdialog.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/custom/forms/editcustomform.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/custom/lib/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/custom/lib/classes.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/custom/lib/manager.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/custom/lib/mediaitem.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/custom/lib/meta.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/custom/lib/models.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/custom/lib/tables.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/images/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/images/imageplugin.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/images/lib/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/images/lib/imagetab.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/images/lib/mediaitem.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/media/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/media/lib/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/media/lib/mediaitem.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/media/lib/mediatab.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/media/mediaplugin.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/plugin.txt' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/impresscontroller.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/mediaitem.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/messagelistener.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/powerpointcontroller.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/pptviewcontroller.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/pptviewlib/README.TXT' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/pptviewlib/ppttest.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/pptviewlib/pptviewlib.cpp' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/pptviewlib/pptviewlib.dll' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/pptviewlib/pptviewlib.h' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/pptviewlib/pptviewlib.vcproj' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/pptviewlib/test.ppt' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/presentationcontroller.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/lib/presentationtab.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/presentations/presentationplugin.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/red-x.png' (properties changed: -x to +x)
=== modified file 'openlp/plugins/remotes/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/remotes/lib/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/remotes/lib/remotetab.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/remotes/remoteplugin.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/authorsdialog.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/authorsform.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/editsongdialog.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/editsongform.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/editversedialog.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/editverseform.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/openlpexportdialog.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/openlpexportform.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/openlpimportdialog.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/openlpimportform.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/opensongexportdialog.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/opensongexportform.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/opensongimportdialog.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/opensongimportform.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/songbookdialog.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/songbookform.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/songmaintenancedialog.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/songmaintenanceform.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/topicsdialog.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/forms/topicsform.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/lib/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/lib/classes.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/lib/manager.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/lib/mediaitem.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/lib/meta.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/lib/models.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/lib/songstab.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/lib/songxml.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/lib/tables.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/songsplugin.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/data_openlp1/amazing.olp' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/data_openlp1/sample3.olp' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/data_opensong/Amazing Grace' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/data_opensong/På en fjern ensom høj' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/data_opensong/The Solid Rock' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/data_text/CCLI example.txt' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/data_text/PÃ¥EnFjern.txt' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/data_xml/amazing1.xml' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/data_xml/amazing2.xml' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/data_xml/danish1.xml' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/data_xml/danish2.xml' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/data_xml/format1.xml' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/data_xml/sample1.xml' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/test_song_basic.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/test_song_opensong.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/test_song_text.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songs/test/test_song_verse.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songusage/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songusage/forms/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songusage/forms/songusagedeletedialog.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songusage/forms/songusagedeleteform.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songusage/forms/songusagedetaildialog.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songusage/forms/songusagedetailform.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songusage/lib/__init__.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songusage/lib/classes.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songusage/lib/manager.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songusage/lib/meta.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songusage/lib/models.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songusage/lib/tables.py' (properties changed: -x to +x)
=== modified file 'openlp/plugins/songusage/songusageplugin.py' (properties changed: -x to +x)
=== modified file 'resources/.config/openlp/openlp.conf' (properties changed: -x to +x)
=== modified file 'resources/.local/share/openlp/bibles/asv.sqlite' (properties changed: -x to +x)
=== modified file 'resources/.local/share/openlp/themes/Bible Readings.png' (properties changed: -x to +x)
=== modified file 'resources/.local/share/openlp/themes/Bible Readings/Bible Readings.xml' (properties changed: -x to +x)
=== modified file 'resources/.local/share/openlp/themes/Bible Readings/open6_2.jpg' (properties changed: -x to +x)
=== modified file 'resources/.local/share/openlp/themes/Blue.png' (properties changed: -x to +x)
=== modified file 'resources/.local/share/openlp/themes/Blue/Blue.xml' (properties changed: -x to +x)
=== modified file 'resources/.local/share/openlp/themes/theme1.png' (properties changed: -x to +x)
=== modified file 'resources/.local/share/openlp/themes/theme1/theme1.xml' (properties changed: -x to +x)
=== modified file 'resources/.local/share/openlp/themes/theme2.png' (properties changed: -x to +x)
=== modified file 'resources/.local/share/openlp/themes/theme2/theme2.xml' (properties changed: -x to +x)
=== modified file 'resources/.local/share/openlp/themes/theme3.png' (properties changed: -x to +x)
=== modified file 'resources/.local/share/openlp/themes/theme3/sunset2.jpg' (properties changed: -x to +x)
=== modified file 'resources/.local/share/openlp/themes/theme3/theme3.xml' (properties changed: -x to +x)
=== modified file 'resources/.openlp/data/bible/asv.sqlite' (properties changed: -x to +x)
=== modified file 'resources/.openlp/openlp.conf' (properties changed: -x to +x)
=== modified file 'resources/.openlp/openlp.conf_posix' (properties changed: -x to +x)
=== modified file 'resources/.openlp/openlp.conf_win' (properties changed: -x to +x)
=== modified file 'resources/bibles/afr1953.osis' (properties changed: -x to +x)
=== modified file 'resources/bibles/kjc.osis' (properties changed: -x to +x)
=== modified file 'resources/bibles/osisbooks_en.txt' (properties changed: -x to +x)
=== modified file 'resources/forms/about.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/alertform.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/amendthemedialog.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/auditdeletedialog.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/auditdetaildialog.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/authorsdialog.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/bibleimportdialog.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/editcustomdialog.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/editsongdialog.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/editversedialog.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/mainwindow.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/openlpexportform.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/openlpimportform.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/opensongexportform.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/opensongimportform.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/plugindialoglistform.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/settings.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/songbookdialog.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/songexport.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/songmaintenance.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/splashscreen.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/themewizard.ui' (properties changed: -x to +x)
=== modified file 'resources/forms/topicsdialog.ui' (properties changed: -x to +x)
=== modified file 'resources/images/author_add.png' (properties changed: -x to +x)
=== modified file 'resources/images/author_delete.png' (properties changed: -x to +x)
=== modified file 'resources/images/author_edit.png' (properties changed: -x to +x)
=== modified file 'resources/images/author_maintenance.png' (properties changed: -x to +x)
=== modified file 'resources/images/book_add.png' (properties changed: -x to +x)
=== modified file 'resources/images/book_delete.png' (properties changed: -x to +x)
=== modified file 'resources/images/book_edit.png' (properties changed: -x to +x)
=== modified file 'resources/images/book_maintenance.png' (properties changed: -x to +x)
=== modified file 'resources/images/custom_delete.png' (properties changed: -x to +x)
=== modified file 'resources/images/custom_edit.png' (properties changed: -x to +x)
=== modified file 'resources/images/custom_new.png' (properties changed: -x to +x)
=== modified file 'resources/images/export_load.png' (properties changed: -x to +x)
=== modified file 'resources/images/export_move_to_list.png' (properties changed: -x to +x)
=== modified file 'resources/images/export_remove.png' (properties changed: -x to +x)
=== modified file 'resources/images/export_selectall.png' (properties changed: -x to +x)
=== modified file 'resources/images/image_delete.png' (properties changed: -x to +x)
=== modified file 'resources/images/image_load.png' (properties changed: -x to +x)
=== modified file 'resources/images/import_load.png' (properties changed: -x to +x)
=== modified file 'resources/images/import_move_to_list.png' (properties changed: -x to +x)
=== modified file 'resources/images/import_remove.png' (properties changed: -x to +x)
=== modified file 'resources/images/import_selectall.png' (properties changed: -x to +x)
=== modified file 'resources/images/media_bible.png' (properties changed: -x to +x)
=== modified file 'resources/images/media_custom.png' (properties changed: -x to +x)
=== modified file 'resources/images/media_image.png' (properties changed: -x to +x)
=== modified file 'resources/images/media_playback_pause.png' (properties changed: -x to +x)
=== modified file 'resources/images/media_playback_start.png' (properties changed: -x to +x)
=== modified file 'resources/images/media_playback_stop.png' (properties changed: -x to +x)
=== modified file 'resources/images/media_presentation.png' (properties changed: -x to +x)
=== modified file 'resources/images/media_song.png' (properties changed: -x to +x)
=== modified file 'resources/images/media_stop.png' (properties changed: -x to +x)
=== modified file 'resources/images/media_time.png' (properties changed: -x to +x)
=== modified file 'resources/images/media_video.png' (properties changed: -x to +x)
=== modified file 'resources/images/messagebox_critical.png' (properties changed: -x to +x)
=== modified file 'resources/images/messagebox_info.png' (properties changed: -x to +x)
=== modified file 'resources/images/messagebox_warning.png' (properties changed: -x to +x)
=== modified file 'resources/images/openlp-2.qrc' (properties changed: -x to +x)
=== modified file 'resources/images/openlp-about-logo.png' (properties changed: -x to +x)
=== modified file 'resources/images/openlp-about-logo.svg' (properties changed: -x to +x)
=== modified file 'resources/images/openlp-default-dualdisplay.svg' (properties changed: -x to +x)
=== modified file 'resources/images/openlp-logo-128x128.png' (properties changed: -x to +x)
=== modified file 'resources/images/openlp-logo-16x16.png' (properties changed: -x to +x)
=== modified file 'resources/images/openlp-logo-256x256.png' (properties changed: -x to +x)
=== modified file 'resources/images/openlp-logo-32x32.png' (properties changed: -x to +x)
=== modified file 'resources/images/openlp-logo-420x420.png' (properties changed: -x to +x)
=== modified file 'resources/images/openlp-logo-48x48.png' (properties changed: -x to +x)
=== modified file 'resources/images/openlp-logo-64x64.png' (properties changed: -x to +x)
=== modified file 'resources/images/openlp-logo.svg' (properties changed: -x to +x)
=== modified file 'resources/images/openlp-splash-screen.png' (properties changed: -x to +x)
=== modified file 'resources/images/openlp-splash-screen.svg' (properties changed: -x to +x)
=== modified file 'resources/images/openlp.org-icon-32.bmp' (properties changed: -x to +x)
=== modified file 'resources/images/openlp.org.ico' (properties changed: -x to +x)
=== modified file 'resources/images/page_1.png' (properties changed: -x to +x)
=== modified file 'resources/images/page_10.png' (properties changed: -x to +x)
=== modified file 'resources/images/page_11.png' (properties changed: -x to +x)
=== modified file 'resources/images/page_12.png' (properties changed: -x to +x)
=== modified file 'resources/images/page_2.png' (properties changed: -x to +x)
=== modified file 'resources/images/page_3.png' (properties changed: -x to +x)
=== modified file 'resources/images/page_4.png' (properties changed: -x to +x)
=== modified file 'resources/images/page_5.png' (properties changed: -x to +x)
=== modified file 'resources/images/page_6.png' (properties changed: -x to +x)
=== modified file 'resources/images/page_7.png' (properties changed: -x to +x)
=== modified file 'resources/images/page_8.png' (properties changed: -x to +x)
=== modified file 'resources/images/page_9.png' (properties changed: -x to +x)
=== modified file 'resources/images/page_bridge.png' (properties changed: -x to +x)
=== modified file 'resources/images/page_chorus.png' (properties changed: -x to +x)
=== modified file 'resources/images/presentation_delete.png' (properties changed: -x to +x)
=== modified file 'resources/images/presentation_load.png' (properties changed: -x to +x)
=== modified file 'resources/images/service_bottom.png' (properties changed: -x to +x)
=== modified file 'resources/images/service_delete.png' (properties changed: -x to +x)
=== modified file 'resources/images/service_down.png' (properties changed: -x to +x)
=== modified file 'resources/images/service_new.png' (properties changed: -x to +x)
=== modified file 'resources/images/service_open.png' (properties changed: -x to +x)
=== modified file 'resources/images/service_save.png' (properties changed: -x to +x)
=== modified file 'resources/images/service_top.png' (properties changed: -x to +x)
=== modified file 'resources/images/service_up.png' (properties changed: -x to +x)
=== modified file 'resources/images/slide_close.png' (properties changed: -x to +x)
=== modified file 'resources/images/slide_first.png' (properties changed: -x to +x)
=== modified file 'resources/images/slide_last.png' (properties changed: -x to +x)
=== modified file 'resources/images/slide_next.png' (properties changed: -x to +x)
=== modified file 'resources/images/slide_previous.png' (properties changed: -x to +x)
=== modified file 'resources/images/song_author_edit.png' (properties changed: -x to +x)
=== modified file 'resources/images/song_book_edit.png' (properties changed: -x to +x)
=== modified file 'resources/images/song_delete.png' (properties changed: -x to +x)
=== modified file 'resources/images/song_edit.png' (properties changed: -x to +x)
=== modified file 'resources/images/song_export.png' (properties changed: -x to +x)
=== modified file 'resources/images/song_maintenance.png' (properties changed: -x to +x)
=== modified file 'resources/images/song_new.png' (properties changed: -x to +x)
=== modified file 'resources/images/song_topic_edit.png' (properties changed: -x to +x)
=== modified file 'resources/images/splash-screen-new.bmp' (properties changed: -x to +x)
=== modified file 'resources/images/system_about.png' (properties changed: -x to +x)
=== modified file 'resources/images/system_add.png' (properties changed: -x to +x)
=== modified file 'resources/images/system_exit.png' (properties changed: -x to +x)
=== modified file 'resources/images/system_help_contents.png' (properties changed: -x to +x)
=== modified file 'resources/images/system_live.png' (properties changed: -x to +x)
=== modified file 'resources/images/system_mediamanager.png' (properties changed: -x to +x)
=== modified file 'resources/images/system_preview.png' (properties changed: -x to +x)
=== modified file 'resources/images/system_servicemanager.png' (properties changed: -x to +x)
=== modified file 'resources/images/system_settings.png' (properties changed: -x to +x)
=== modified file 'resources/images/system_thememanager.png' (properties changed: -x to +x)
=== modified file 'resources/images/theme_delete.png' (properties changed: -x to +x)
=== modified file 'resources/images/theme_edit.png' (properties changed: -x to +x)
=== modified file 'resources/images/theme_export.png' (properties changed: -x to +x)
=== modified file 'resources/images/theme_import.png' (properties changed: -x to +x)
=== modified file 'resources/images/theme_new.png' (properties changed: -x to +x)
=== modified file 'resources/images/tools_add.png' (properties changed: -x to +x)
=== modified file 'resources/images/tools_alert.png' (properties changed: -x to +x)
=== modified file 'resources/images/topic_add.png' (properties changed: -x to +x)
=== modified file 'resources/images/topic_delete.png' (properties changed: -x to +x)
=== modified file 'resources/images/topic_edit.png' (properties changed: -x to +x)
=== modified file 'resources/images/topic_maintenance.png' (properties changed: -x to +x)
=== modified file 'resources/images/video_delete.png' (properties changed: -x to +x)
=== modified file 'resources/images/video_load.png' (properties changed: -x to +x)
=== modified file 'resources/images/wizard_importbible.bmp' (properties changed: -x to +x)
=== modified file 'resources/songs/songs.sqlite' (properties changed: -x to +x)
=== modified file 'resources/videos/AspectRatioTest-16-9-ana.h264.mp4' (properties changed: -x to +x)
=== modified file 'resources/videos/AspectRatioTest-16-9-squ.h264.mp4' (properties changed: -x to +x)
=== modified file 'resources/videos/AspectRatioTest-16-9-squ.xvid.avi' (properties changed: -x to +x)
=== modified file 'resources/videos/AspectRatioTest-4-3-ana.h264.mp4' (properties changed: -x to +x)
=== modified file 'resources/videos/AspectRatioTest-4-3-squ.h264.mp4' (properties changed: -x to +x)
=== modified file 'resources/videos/AspectRatioTest-4-3-squ.xvid.avi' (properties changed: -x to +x)
=== modified file 'resources/videos/AspectRatioTest-rand-squ.h264.mp4' (properties changed: -x to +x)
=== modified file 'resources/videos/left-720.png' (properties changed: -x to +x)
=== modified file 'resources/videos/normal-720.png' (properties changed: -x to +x)
=== modified file 'resources/videos/right-720.png' (properties changed: -x to +x)
=== modified file 'resources/videos/synctest.24.avs' (properties changed: -x to +x)
=== modified file 'resources/videos/synctest.24.muxed.avi' (properties changed: -x to +x)
=== modified file 'resources/videos/synctest.24.muxed.mp4' (properties changed: -x to +x)
=== modified file 'resources/videos/synctest.25.avs' (properties changed: -x to +x)
=== modified file 'resources/videos/synctest.25.muxed.avi' (properties changed: -x to +x)
=== modified file 'resources/videos/synctest.30.avs' (properties changed: -x to +x)
=== modified file 'resources/videos/synctest.30.muxed.avi' (properties changed: -x to +x)
=== modified file 'resources/videos/synctest.30.small.avs' (properties changed: -x to +x)
=== modified file 'resources/videos/synctest.30.small.muxed.avi' (properties changed: -x to +x)
=== modified file 'resources/videos/synctest.avsi' (properties changed: -x to +x)
=== modified file 'setup.py' (properties changed: -x to +x)
=== modified file 'version.txt' (properties changed: -x to +x)

Follow ups