diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 66dd8b6d7..9548d0057 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -153,18 +153,15 @@ class Renderer(object): 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 @@ class Renderer(object): #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 @@ class Renderer(object): 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 @@ class Renderer(object): 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 @@ class Renderer(object): 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): diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index 324ffcb08..23043b85a 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -194,9 +194,7 @@ class RenderManager(object): 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 @@ class RenderManager(object): 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) diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 1a0b0c91a..c51af09fd 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -93,15 +93,10 @@ class ServiceItem(object): 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' diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 45068a42d..a6c08164c 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -157,13 +157,6 @@ class SlideController(QtGui.QWidget): 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 @@ class SlideController(QtGui.QWidget): 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 @@ class SlideController(QtGui.QWidget): 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