← Back to team overview

openlp-core team mailing list archive

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

 

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

Requested reviews:
    openlp.org Core (openlp-core)

Clean up Slide hight setting in Settings Manager
Clean up Renderer
Stop Audit being fired in Error
Images can now render first!!!!!
-- 
https://code.launchpad.net/~trb143/openlp/bugfixes/+merge/12133
Your team openlp.org Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/lib/renderer.py'
--- openlp/core/lib/renderer.py	2009-09-15 19:06:40 +0000
+++ openlp/core/lib/renderer.py	2009-09-20 07:15:15 +0000
@@ -153,18 +153,15 @@
             The footer of the slide.
         """
         log.debug(u'format_slide - Start')
-#        print words
         verses = []
         words = words.replace(u'\r\n', u'\n')
         verses_text = words.split(u'\n')
-        #print verses_text
         text = []
         for verse in verses_text:
             lines = verse.split(u'\n')
             for line in lines:
                 text.append(line)
         split_text = self.pre_render_text(text)
-#        print split_text
         log.debug(u'format_slide - End')
         return split_text
 
@@ -173,33 +170,27 @@
         #take the width work out approx how many characters and add 50%
         line_width = self._rect.width() - self._right_margin
         #number of lines on a page - adjust for rounding up.
-#        print "Metrics ", line_width
         page_length = int(self._rect.height() / metrics.height() - 2 ) - 1
         ave_line_width = line_width / metrics.averageCharWidth()
         ave_line_width = int(ave_line_width + (ave_line_width * 1))
-#        print "B", ave_line_width
         split_pages = []
         page = []
         split_lines = []
         count = 0
         for line in text:
-            #print "C", line, len(line)
             #Must be a blank line so keep it.
             if len(line) == 0:
                 line = u' '
             while len(line) > 0:
-#                print "C1", line, len(line)
                 if len(line) > ave_line_width:
                     pos = line.find(u' ', ave_line_width)
                     split_text = line[:pos]
                 else:
                     pos = len(line)
                     split_text = line
-#                print "E", metrics.width(split_text,  -1), line_width
                 while metrics.width(split_text,  -1) > line_width:
                     #Find the next space to the left
                     pos = line[:pos].rfind(u' ')
-#                    print "F",  pos,  line[:pos]
                     #no more spaces found
                     if pos  == 0:
                         split_text = line
@@ -208,16 +199,9 @@
                         pos = len(split_text)
                     else:
                         split_text = line[:pos]
-#                    print "F1", split_text, line, pos
                 split_lines.append(split_text)
                 line = line[pos:]
                 #Text fits in a line now
-#                if len(line) <= line_width:
-#                    split_lines.append(line)
-#                    line = u''
-#                print "G", split_lines
-#                print "H", line
-        #print "I", split_lines, page_length
         for line in split_lines:
             page.append(line)
             if len(page) == page_length:
@@ -252,7 +236,6 @@
             Defaults to *None*. The footer to render.
         """
         log.debug(u'generate_frame_from_lines - Start')
-        #print "Render Lines ", lines
         bbox = self._render_lines_unaligned(lines, False)
         if footer_lines is not None:
             bbox1 = self._render_lines_unaligned(footer_lines, True)
@@ -321,8 +304,6 @@
                 if self.bg_image is not None:
                     painter.drawImage(0, 0, self.bg_image)
         painter.end()
-#        self.bg_frame_small = self.bg_frame.scaled(QtCore.QSize(280, 210),
-#            QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
         log.debug(u'render background End')
 
     def _correctAlignment(self, rect, bbox):

=== modified file 'openlp/core/lib/rendermanager.py'
--- openlp/core/lib/rendermanager.py	2009-09-18 16:06:25 +0000
+++ openlp/core/lib/rendermanager.py	2009-09-20 07:12:47 +0000
@@ -194,9 +194,7 @@
             The words to go on the slides.
         """
         log.debug(u'format slide')
-        #self.calculate_default(self.screen_list[self.current_display][u'size'])
         self.build_text_rectangle(self.themedata)
-        #self.renderer.set_frame_dest(self.width, self.height)
         return self.renderer.format_slide(words, False)
 
     def generate_slide(self, main_text, footer_text):
@@ -254,6 +252,7 @@
         else:
             self.width = screen.width()
             self.height = screen.height()
-        log.debug(u'calculate default %d, %d', self.width, self.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)

=== modified file 'openlp/core/lib/serviceitem.py'
--- openlp/core/lib/serviceitem.py	2009-09-19 21:45:50 +0000
+++ openlp/core/lib/serviceitem.py	2009-09-20 07:17:20 +0000
@@ -93,15 +93,10 @@
                 self.RenderManager.set_override_theme(None)
             else:
                 self.RenderManager.set_override_theme(self.theme)
-            firstTime = True
             for slide in self.service_frames:
                 formated = self.RenderManager.format_slide(slide[u'raw_slide'])
                 for format in formated:
                     frame = None
-                    if firstTime:
-                        frame = self.RenderManager.generate_slide(format,
-                            self.raw_footer)
-                        firstTime = False
                     lines = u''
                     for line in format:
                         lines += line + u'\n'

=== modified file 'openlp/core/ui/slidecontroller.py'
--- openlp/core/ui/slidecontroller.py	2009-09-18 10:36:32 +0000
+++ openlp/core/ui/slidecontroller.py	2009-09-20 07:38:23 +0000
@@ -157,13 +157,6 @@
             self.DelaySpinBox.setSuffix(translate(u'SlideController', u's'))
 
         self.ControllerLayout.addWidget(self.Toolbar)
-        #sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
-        #    QtGui.QSizePolicy.Fixed)
-        #sizeToolbarPolicy.setHorizontalStretch(0)
-        #sizeToolbarPolicy.setVerticalStretch(0)
-        #sizeToolbarPolicy.setHeightForWidth(
-        #    self.Toolbar.sizePolicy().hasHeightForWidth())
-        #self.Toolbar.setSizePolicy(sizeToolbarPolicy)
         # Screen preview area
         self.PreviewFrame = QtGui.QFrame(self.Splitter)
         self.PreviewFrame.setGeometry(QtCore.QRect(0, 0, 300, 225))
@@ -284,29 +277,26 @@
         log.debug(u'displayServiceManagerItems Start')
         before = time.time()
         self.serviceitem = serviceitem
-        slide_image = self.serviceitem.frames[0][u'image']
-        size = slide_image.size()
-        slide_width = self.settingsmanager.slidecontroller_image
-        slide_height = slide_width * size.height() / size.width()
         self.PreviewListWidget.clear()
         self.PreviewListWidget.setRowCount(0)
-        self.PreviewListWidget.setColumnWidth(0, slide_width)
+        self.PreviewListWidget.setColumnWidth(0, self.settingsmanager.slidecontroller_image)
         for framenumber, frame in enumerate(self.serviceitem.frames):
             self.PreviewListWidget.setRowCount(self.PreviewListWidget.rowCount() + 1)
             item = QtGui.QTableWidgetItem()
             label = QtGui.QLabel()
             label.setMargin(8)
+            #It is a Image
             if frame[u'text'] == None:
-                pixmap = self.parent.RenderManager.resize_image(frame[u'image'], slide_width, slide_height)
+                pixmap = self.parent.RenderManager.resize_image(frame[u'image'])
                 label.setScaledContents(True)
                 label.setPixmap(QtGui.QPixmap.fromImage(pixmap))
             else:
                 label.setText(frame[u'text'])
             self.PreviewListWidget.setCellWidget(framenumber, 0, label)
             self.PreviewListWidget.setItem(framenumber, 0, item)
+            slide_height = self.settingsmanager.slidecontroller_image * self.parent.RenderManager.screen_ratio
             self.PreviewListWidget.setRowHeight(framenumber, slide_height)
-        slide_width = self.PreviewListWidget.viewport().size().width()
-        self.PreviewListWidget.setColumnWidth(0, slide_width)
+        self.PreviewListWidget.setColumnWidth(0, self.PreviewListWidget.viewport().size().width())
         if slideno > self.PreviewListWidget.rowCount():
             self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount())
         else:
@@ -314,7 +304,8 @@
         self.onSlideSelected()
         self.PreviewListWidget.setFocus()
         log.info(u'Display Rendering took %4s' % (time.time() - before))
-        Receiver().send_message(u'audit_live', self.serviceitem.audit)
+        if self.serviceitem.audit != u'':
+            Receiver().send_message(u'audit_live', self.serviceitem.audit)
         log.debug(u'displayServiceManagerItems End')
 
     #Screen event methods


Follow ups