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

Proposed by Tim Bentley
Status: Merged
Merged at revision: not available
Proposed branch: lp:~trb143/openlp/bugfixes
Merge into: lp:openlp
Diff against target: None lines
To merge this branch: bzr merge lp:~trb143/openlp/bugfixes
Reviewer Review Type Date Requested Status
Jon Tibble (community) Approve
Review via email: mp+12133@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Tim Bentley (trb143) wrote :

Clean up Slide hight setting in Settings Manager
Clean up Renderer
Stop Audit being fired in Error
Images can now render first!!!!!

lp:~trb143/openlp/bugfixes updated
558. By Jon Tibble

Cleanup code and fixes

Revision history for this message
Jon Tibble (meths) :
review: Approve
lp:~trb143/openlp/bugfixes updated
559. By Tim Bentley

Renderer Fixes

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== 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 @@
153 The footer of the slide.153 The footer of the slide.
154 """154 """
155 log.debug(u'format_slide - Start')155 log.debug(u'format_slide - Start')
156# print words
157 verses = []156 verses = []
158 words = words.replace(u'\r\n', u'\n')157 words = words.replace(u'\r\n', u'\n')
159 verses_text = words.split(u'\n')158 verses_text = words.split(u'\n')
160 #print verses_text
161 text = []159 text = []
162 for verse in verses_text:160 for verse in verses_text:
163 lines = verse.split(u'\n')161 lines = verse.split(u'\n')
164 for line in lines:162 for line in lines:
165 text.append(line)163 text.append(line)
166 split_text = self.pre_render_text(text)164 split_text = self.pre_render_text(text)
167# print split_text
168 log.debug(u'format_slide - End')165 log.debug(u'format_slide - End')
169 return split_text166 return split_text
170167
@@ -173,33 +170,27 @@
173 #take the width work out approx how many characters and add 50%170 #take the width work out approx how many characters and add 50%
174 line_width = self._rect.width() - self._right_margin171 line_width = self._rect.width() - self._right_margin
175 #number of lines on a page - adjust for rounding up.172 #number of lines on a page - adjust for rounding up.
176# print "Metrics ", line_width
177 page_length = int(self._rect.height() / metrics.height() - 2 ) - 1173 page_length = int(self._rect.height() / metrics.height() - 2 ) - 1
178 ave_line_width = line_width / metrics.averageCharWidth()174 ave_line_width = line_width / metrics.averageCharWidth()
179 ave_line_width = int(ave_line_width + (ave_line_width * 1))175 ave_line_width = int(ave_line_width + (ave_line_width * 1))
180# print "B", ave_line_width
181 split_pages = []176 split_pages = []
182 page = []177 page = []
183 split_lines = []178 split_lines = []
184 count = 0179 count = 0
185 for line in text:180 for line in text:
186 #print "C", line, len(line)
187 #Must be a blank line so keep it.181 #Must be a blank line so keep it.
188 if len(line) == 0:182 if len(line) == 0:
189 line = u' '183 line = u' '
190 while len(line) > 0:184 while len(line) > 0:
191# print "C1", line, len(line)
192 if len(line) > ave_line_width:185 if len(line) > ave_line_width:
193 pos = line.find(u' ', ave_line_width)186 pos = line.find(u' ', ave_line_width)
194 split_text = line[:pos]187 split_text = line[:pos]
195 else:188 else:
196 pos = len(line)189 pos = len(line)
197 split_text = line190 split_text = line
198# print "E", metrics.width(split_text, -1), line_width
199 while metrics.width(split_text, -1) > line_width:191 while metrics.width(split_text, -1) > line_width:
200 #Find the next space to the left192 #Find the next space to the left
201 pos = line[:pos].rfind(u' ')193 pos = line[:pos].rfind(u' ')
202# print "F", pos, line[:pos]
203 #no more spaces found194 #no more spaces found
204 if pos == 0:195 if pos == 0:
205 split_text = line196 split_text = line
@@ -208,16 +199,9 @@
208 pos = len(split_text)199 pos = len(split_text)
209 else:200 else:
210 split_text = line[:pos]201 split_text = line[:pos]
211# print "F1", split_text, line, pos
212 split_lines.append(split_text)202 split_lines.append(split_text)
213 line = line[pos:]203 line = line[pos:]
214 #Text fits in a line now204 #Text fits in a line now
215# if len(line) <= line_width:
216# split_lines.append(line)
217# line = u''
218# print "G", split_lines
219# print "H", line
220 #print "I", split_lines, page_length
221 for line in split_lines:205 for line in split_lines:
222 page.append(line)206 page.append(line)
223 if len(page) == page_length:207 if len(page) == page_length:
@@ -252,7 +236,6 @@
252 Defaults to *None*. The footer to render.236 Defaults to *None*. The footer to render.
253 """237 """
254 log.debug(u'generate_frame_from_lines - Start')238 log.debug(u'generate_frame_from_lines - Start')
255 #print "Render Lines ", lines
256 bbox = self._render_lines_unaligned(lines, False)239 bbox = self._render_lines_unaligned(lines, False)
257 if footer_lines is not None:240 if footer_lines is not None:
258 bbox1 = self._render_lines_unaligned(footer_lines, True)241 bbox1 = self._render_lines_unaligned(footer_lines, True)
@@ -321,8 +304,6 @@
321 if self.bg_image is not None:304 if self.bg_image is not None:
322 painter.drawImage(0, 0, self.bg_image)305 painter.drawImage(0, 0, self.bg_image)
323 painter.end()306 painter.end()
324# self.bg_frame_small = self.bg_frame.scaled(QtCore.QSize(280, 210),
325# QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
326 log.debug(u'render background End')307 log.debug(u'render background End')
327308
328 def _correctAlignment(self, rect, bbox):309 def _correctAlignment(self, rect, bbox):
329310
=== 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 @@
194 The words to go on the slides.194 The words to go on the slides.
195 """195 """
196 log.debug(u'format slide')196 log.debug(u'format slide')
197 #self.calculate_default(self.screen_list[self.current_display][u'size'])
198 self.build_text_rectangle(self.themedata)197 self.build_text_rectangle(self.themedata)
199 #self.renderer.set_frame_dest(self.width, self.height)
200 return self.renderer.format_slide(words, False)198 return self.renderer.format_slide(words, False)
201199
202 def generate_slide(self, main_text, footer_text):200 def generate_slide(self, main_text, footer_text):
@@ -254,6 +252,7 @@
254 else:252 else:
255 self.width = screen.width()253 self.width = screen.width()
256 self.height = screen.height()254 self.height = screen.height()
257 log.debug(u'calculate default %d, %d', self.width, self.height)255 self.screen_ratio = float(self.height) / float(self.width)
256 log.debug(u'calculate default %d, %d, %f', self.width, self.height, self.screen_ratio )
258 # 90% is start of footer257 # 90% is start of footer
259 self.footer_start = int(self.height * 0.90)258 self.footer_start = int(self.height * 0.90)
260259
=== 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 @@
93 self.RenderManager.set_override_theme(None)93 self.RenderManager.set_override_theme(None)
94 else:94 else:
95 self.RenderManager.set_override_theme(self.theme)95 self.RenderManager.set_override_theme(self.theme)
96 firstTime = True
97 for slide in self.service_frames:96 for slide in self.service_frames:
98 formated = self.RenderManager.format_slide(slide[u'raw_slide'])97 formated = self.RenderManager.format_slide(slide[u'raw_slide'])
99 for format in formated:98 for format in formated:
100 frame = None99 frame = None
101 if firstTime:
102 frame = self.RenderManager.generate_slide(format,
103 self.raw_footer)
104 firstTime = False
105 lines = u''100 lines = u''
106 for line in format:101 for line in format:
107 lines += line + u'\n'102 lines += line + u'\n'
108103
=== 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 @@
157 self.DelaySpinBox.setSuffix(translate(u'SlideController', u's'))157 self.DelaySpinBox.setSuffix(translate(u'SlideController', u's'))
158158
159 self.ControllerLayout.addWidget(self.Toolbar)159 self.ControllerLayout.addWidget(self.Toolbar)
160 #sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
161 # QtGui.QSizePolicy.Fixed)
162 #sizeToolbarPolicy.setHorizontalStretch(0)
163 #sizeToolbarPolicy.setVerticalStretch(0)
164 #sizeToolbarPolicy.setHeightForWidth(
165 # self.Toolbar.sizePolicy().hasHeightForWidth())
166 #self.Toolbar.setSizePolicy(sizeToolbarPolicy)
167 # Screen preview area160 # Screen preview area
168 self.PreviewFrame = QtGui.QFrame(self.Splitter)161 self.PreviewFrame = QtGui.QFrame(self.Splitter)
169 self.PreviewFrame.setGeometry(QtCore.QRect(0, 0, 300, 225))162 self.PreviewFrame.setGeometry(QtCore.QRect(0, 0, 300, 225))
@@ -284,29 +277,26 @@
284 log.debug(u'displayServiceManagerItems Start')277 log.debug(u'displayServiceManagerItems Start')
285 before = time.time()278 before = time.time()
286 self.serviceitem = serviceitem279 self.serviceitem = serviceitem
287 slide_image = self.serviceitem.frames[0][u'image']
288 size = slide_image.size()
289 slide_width = self.settingsmanager.slidecontroller_image
290 slide_height = slide_width * size.height() / size.width()
291 self.PreviewListWidget.clear()280 self.PreviewListWidget.clear()
292 self.PreviewListWidget.setRowCount(0)281 self.PreviewListWidget.setRowCount(0)
293 self.PreviewListWidget.setColumnWidth(0, slide_width)282 self.PreviewListWidget.setColumnWidth(0, self.settingsmanager.slidecontroller_image)
294 for framenumber, frame in enumerate(self.serviceitem.frames):283 for framenumber, frame in enumerate(self.serviceitem.frames):
295 self.PreviewListWidget.setRowCount(self.PreviewListWidget.rowCount() + 1)284 self.PreviewListWidget.setRowCount(self.PreviewListWidget.rowCount() + 1)
296 item = QtGui.QTableWidgetItem()285 item = QtGui.QTableWidgetItem()
297 label = QtGui.QLabel()286 label = QtGui.QLabel()
298 label.setMargin(8)287 label.setMargin(8)
288 #It is a Image
299 if frame[u'text'] == None:289 if frame[u'text'] == None:
300 pixmap = self.parent.RenderManager.resize_image(frame[u'image'], slide_width, slide_height)290 pixmap = self.parent.RenderManager.resize_image(frame[u'image'])
301 label.setScaledContents(True)291 label.setScaledContents(True)
302 label.setPixmap(QtGui.QPixmap.fromImage(pixmap))292 label.setPixmap(QtGui.QPixmap.fromImage(pixmap))
303 else:293 else:
304 label.setText(frame[u'text'])294 label.setText(frame[u'text'])
305 self.PreviewListWidget.setCellWidget(framenumber, 0, label)295 self.PreviewListWidget.setCellWidget(framenumber, 0, label)
306 self.PreviewListWidget.setItem(framenumber, 0, item)296 self.PreviewListWidget.setItem(framenumber, 0, item)
297 slide_height = self.settingsmanager.slidecontroller_image * self.parent.RenderManager.screen_ratio
307 self.PreviewListWidget.setRowHeight(framenumber, slide_height)298 self.PreviewListWidget.setRowHeight(framenumber, slide_height)
308 slide_width = self.PreviewListWidget.viewport().size().width()299 self.PreviewListWidget.setColumnWidth(0, self.PreviewListWidget.viewport().size().width())
309 self.PreviewListWidget.setColumnWidth(0, slide_width)
310 if slideno > self.PreviewListWidget.rowCount():300 if slideno > self.PreviewListWidget.rowCount():
311 self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount())301 self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount())
312 else:302 else:
@@ -314,7 +304,8 @@
314 self.onSlideSelected()304 self.onSlideSelected()
315 self.PreviewListWidget.setFocus()305 self.PreviewListWidget.setFocus()
316 log.info(u'Display Rendering took %4s' % (time.time() - before))306 log.info(u'Display Rendering took %4s' % (time.time() - before))
317 Receiver().send_message(u'audit_live', self.serviceitem.audit)307 if self.serviceitem.audit != u'':
308 Receiver().send_message(u'audit_live', self.serviceitem.audit)
318 log.debug(u'displayServiceManagerItems End')309 log.debug(u'displayServiceManagerItems End')
319310
320 #Screen event methods311 #Screen event methods