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 | ||||||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Jon Tibble (community) | Approve | ||
Review via email:
|
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Tim Bentley (trb143) wrote : | # |
lp:~trb143/openlp/bugfixes
updated
- 558. By Jon Tibble
-
Cleanup code and fixes
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
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
1 | === modified file 'openlp/core/lib/renderer.py' | |||
2 | --- openlp/core/lib/renderer.py 2009-09-15 19:06:40 +0000 | |||
3 | +++ openlp/core/lib/renderer.py 2009-09-20 07:15:15 +0000 | |||
4 | @@ -153,18 +153,15 @@ | |||
5 | 153 | The footer of the slide. | 153 | The footer of the slide. |
6 | 154 | """ | 154 | """ |
7 | 155 | log.debug(u'format_slide - Start') | 155 | log.debug(u'format_slide - Start') |
8 | 156 | # print words | ||
9 | 157 | verses = [] | 156 | verses = [] |
10 | 158 | words = words.replace(u'\r\n', u'\n') | 157 | words = words.replace(u'\r\n', u'\n') |
11 | 159 | verses_text = words.split(u'\n') | 158 | verses_text = words.split(u'\n') |
12 | 160 | #print verses_text | ||
13 | 161 | text = [] | 159 | text = [] |
14 | 162 | for verse in verses_text: | 160 | for verse in verses_text: |
15 | 163 | lines = verse.split(u'\n') | 161 | lines = verse.split(u'\n') |
16 | 164 | for line in lines: | 162 | for line in lines: |
17 | 165 | text.append(line) | 163 | text.append(line) |
18 | 166 | split_text = self.pre_render_text(text) | 164 | split_text = self.pre_render_text(text) |
19 | 167 | # print split_text | ||
20 | 168 | log.debug(u'format_slide - End') | 165 | log.debug(u'format_slide - End') |
21 | 169 | return split_text | 166 | return split_text |
22 | 170 | 167 | ||
23 | @@ -173,33 +170,27 @@ | |||
24 | 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% |
25 | 174 | line_width = self._rect.width() - self._right_margin | 171 | line_width = self._rect.width() - self._right_margin |
26 | 175 | #number of lines on a page - adjust for rounding up. | 172 | #number of lines on a page - adjust for rounding up. |
27 | 176 | # print "Metrics ", line_width | ||
28 | 177 | page_length = int(self._rect.height() / metrics.height() - 2 ) - 1 | 173 | page_length = int(self._rect.height() / metrics.height() - 2 ) - 1 |
29 | 178 | ave_line_width = line_width / metrics.averageCharWidth() | 174 | ave_line_width = line_width / metrics.averageCharWidth() |
30 | 179 | ave_line_width = int(ave_line_width + (ave_line_width * 1)) | 175 | ave_line_width = int(ave_line_width + (ave_line_width * 1)) |
31 | 180 | # print "B", ave_line_width | ||
32 | 181 | split_pages = [] | 176 | split_pages = [] |
33 | 182 | page = [] | 177 | page = [] |
34 | 183 | split_lines = [] | 178 | split_lines = [] |
35 | 184 | count = 0 | 179 | count = 0 |
36 | 185 | for line in text: | 180 | for line in text: |
37 | 186 | #print "C", line, len(line) | ||
38 | 187 | #Must be a blank line so keep it. | 181 | #Must be a blank line so keep it. |
39 | 188 | if len(line) == 0: | 182 | if len(line) == 0: |
40 | 189 | line = u' ' | 183 | line = u' ' |
41 | 190 | while len(line) > 0: | 184 | while len(line) > 0: |
42 | 191 | # print "C1", line, len(line) | ||
43 | 192 | if len(line) > ave_line_width: | 185 | if len(line) > ave_line_width: |
44 | 193 | pos = line.find(u' ', ave_line_width) | 186 | pos = line.find(u' ', ave_line_width) |
45 | 194 | split_text = line[:pos] | 187 | split_text = line[:pos] |
46 | 195 | else: | 188 | else: |
47 | 196 | pos = len(line) | 189 | pos = len(line) |
48 | 197 | split_text = line | 190 | split_text = line |
49 | 198 | # print "E", metrics.width(split_text, -1), line_width | ||
50 | 199 | while metrics.width(split_text, -1) > line_width: | 191 | while metrics.width(split_text, -1) > line_width: |
51 | 200 | #Find the next space to the left | 192 | #Find the next space to the left |
52 | 201 | pos = line[:pos].rfind(u' ') | 193 | pos = line[:pos].rfind(u' ') |
53 | 202 | # print "F", pos, line[:pos] | ||
54 | 203 | #no more spaces found | 194 | #no more spaces found |
55 | 204 | if pos == 0: | 195 | if pos == 0: |
56 | 205 | split_text = line | 196 | split_text = line |
57 | @@ -208,16 +199,9 @@ | |||
58 | 208 | pos = len(split_text) | 199 | pos = len(split_text) |
59 | 209 | else: | 200 | else: |
60 | 210 | split_text = line[:pos] | 201 | split_text = line[:pos] |
61 | 211 | # print "F1", split_text, line, pos | ||
62 | 212 | split_lines.append(split_text) | 202 | split_lines.append(split_text) |
63 | 213 | line = line[pos:] | 203 | line = line[pos:] |
64 | 214 | #Text fits in a line now | 204 | #Text fits in a line now |
65 | 215 | # if len(line) <= line_width: | ||
66 | 216 | # split_lines.append(line) | ||
67 | 217 | # line = u'' | ||
68 | 218 | # print "G", split_lines | ||
69 | 219 | # print "H", line | ||
70 | 220 | #print "I", split_lines, page_length | ||
71 | 221 | for line in split_lines: | 205 | for line in split_lines: |
72 | 222 | page.append(line) | 206 | page.append(line) |
73 | 223 | if len(page) == page_length: | 207 | if len(page) == page_length: |
74 | @@ -252,7 +236,6 @@ | |||
75 | 252 | Defaults to *None*. The footer to render. | 236 | Defaults to *None*. The footer to render. |
76 | 253 | """ | 237 | """ |
77 | 254 | log.debug(u'generate_frame_from_lines - Start') | 238 | log.debug(u'generate_frame_from_lines - Start') |
78 | 255 | #print "Render Lines ", lines | ||
79 | 256 | bbox = self._render_lines_unaligned(lines, False) | 239 | bbox = self._render_lines_unaligned(lines, False) |
80 | 257 | if footer_lines is not None: | 240 | if footer_lines is not None: |
81 | 258 | bbox1 = self._render_lines_unaligned(footer_lines, True) | 241 | bbox1 = self._render_lines_unaligned(footer_lines, True) |
82 | @@ -321,8 +304,6 @@ | |||
83 | 321 | if self.bg_image is not None: | 304 | if self.bg_image is not None: |
84 | 322 | painter.drawImage(0, 0, self.bg_image) | 305 | painter.drawImage(0, 0, self.bg_image) |
85 | 323 | painter.end() | 306 | painter.end() |
86 | 324 | # self.bg_frame_small = self.bg_frame.scaled(QtCore.QSize(280, 210), | ||
87 | 325 | # QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation) | ||
88 | 326 | log.debug(u'render background End') | 307 | log.debug(u'render background End') |
89 | 327 | 308 | ||
90 | 328 | def _correctAlignment(self, rect, bbox): | 309 | def _correctAlignment(self, rect, bbox): |
91 | 329 | 310 | ||
92 | === modified file 'openlp/core/lib/rendermanager.py' | |||
93 | --- openlp/core/lib/rendermanager.py 2009-09-18 16:06:25 +0000 | |||
94 | +++ openlp/core/lib/rendermanager.py 2009-09-20 07:12:47 +0000 | |||
95 | @@ -194,9 +194,7 @@ | |||
96 | 194 | The words to go on the slides. | 194 | The words to go on the slides. |
97 | 195 | """ | 195 | """ |
98 | 196 | log.debug(u'format slide') | 196 | log.debug(u'format slide') |
99 | 197 | #self.calculate_default(self.screen_list[self.current_display][u'size']) | ||
100 | 198 | self.build_text_rectangle(self.themedata) | 197 | self.build_text_rectangle(self.themedata) |
101 | 199 | #self.renderer.set_frame_dest(self.width, self.height) | ||
102 | 200 | return self.renderer.format_slide(words, False) | 198 | return self.renderer.format_slide(words, False) |
103 | 201 | 199 | ||
104 | 202 | def generate_slide(self, main_text, footer_text): | 200 | def generate_slide(self, main_text, footer_text): |
105 | @@ -254,6 +252,7 @@ | |||
106 | 254 | else: | 252 | else: |
107 | 255 | self.width = screen.width() | 253 | self.width = screen.width() |
108 | 256 | self.height = screen.height() | 254 | self.height = screen.height() |
110 | 257 | log.debug(u'calculate default %d, %d', self.width, self.height) | 255 | self.screen_ratio = float(self.height) / float(self.width) |
111 | 256 | log.debug(u'calculate default %d, %d, %f', self.width, self.height, self.screen_ratio ) | ||
112 | 258 | # 90% is start of footer | 257 | # 90% is start of footer |
113 | 259 | self.footer_start = int(self.height * 0.90) | 258 | self.footer_start = int(self.height * 0.90) |
114 | 260 | 259 | ||
115 | === modified file 'openlp/core/lib/serviceitem.py' | |||
116 | --- openlp/core/lib/serviceitem.py 2009-09-19 21:45:50 +0000 | |||
117 | +++ openlp/core/lib/serviceitem.py 2009-09-20 07:17:20 +0000 | |||
118 | @@ -93,15 +93,10 @@ | |||
119 | 93 | self.RenderManager.set_override_theme(None) | 93 | self.RenderManager.set_override_theme(None) |
120 | 94 | else: | 94 | else: |
121 | 95 | self.RenderManager.set_override_theme(self.theme) | 95 | self.RenderManager.set_override_theme(self.theme) |
122 | 96 | firstTime = True | ||
123 | 97 | for slide in self.service_frames: | 96 | for slide in self.service_frames: |
124 | 98 | formated = self.RenderManager.format_slide(slide[u'raw_slide']) | 97 | formated = self.RenderManager.format_slide(slide[u'raw_slide']) |
125 | 99 | for format in formated: | 98 | for format in formated: |
126 | 100 | frame = None | 99 | frame = None |
127 | 101 | if firstTime: | ||
128 | 102 | frame = self.RenderManager.generate_slide(format, | ||
129 | 103 | self.raw_footer) | ||
130 | 104 | firstTime = False | ||
131 | 105 | lines = u'' | 100 | lines = u'' |
132 | 106 | for line in format: | 101 | for line in format: |
133 | 107 | lines += line + u'\n' | 102 | lines += line + u'\n' |
134 | 108 | 103 | ||
135 | === modified file 'openlp/core/ui/slidecontroller.py' | |||
136 | --- openlp/core/ui/slidecontroller.py 2009-09-18 10:36:32 +0000 | |||
137 | +++ openlp/core/ui/slidecontroller.py 2009-09-20 07:38:23 +0000 | |||
138 | @@ -157,13 +157,6 @@ | |||
139 | 157 | self.DelaySpinBox.setSuffix(translate(u'SlideController', u's')) | 157 | self.DelaySpinBox.setSuffix(translate(u'SlideController', u's')) |
140 | 158 | 158 | ||
141 | 159 | self.ControllerLayout.addWidget(self.Toolbar) | 159 | self.ControllerLayout.addWidget(self.Toolbar) |
142 | 160 | #sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, | ||
143 | 161 | # QtGui.QSizePolicy.Fixed) | ||
144 | 162 | #sizeToolbarPolicy.setHorizontalStretch(0) | ||
145 | 163 | #sizeToolbarPolicy.setVerticalStretch(0) | ||
146 | 164 | #sizeToolbarPolicy.setHeightForWidth( | ||
147 | 165 | # self.Toolbar.sizePolicy().hasHeightForWidth()) | ||
148 | 166 | #self.Toolbar.setSizePolicy(sizeToolbarPolicy) | ||
149 | 167 | # Screen preview area | 160 | # Screen preview area |
150 | 168 | self.PreviewFrame = QtGui.QFrame(self.Splitter) | 161 | self.PreviewFrame = QtGui.QFrame(self.Splitter) |
151 | 169 | self.PreviewFrame.setGeometry(QtCore.QRect(0, 0, 300, 225)) | 162 | self.PreviewFrame.setGeometry(QtCore.QRect(0, 0, 300, 225)) |
152 | @@ -284,29 +277,26 @@ | |||
153 | 284 | log.debug(u'displayServiceManagerItems Start') | 277 | log.debug(u'displayServiceManagerItems Start') |
154 | 285 | before = time.time() | 278 | before = time.time() |
155 | 286 | self.serviceitem = serviceitem | 279 | self.serviceitem = serviceitem |
156 | 287 | slide_image = self.serviceitem.frames[0][u'image'] | ||
157 | 288 | size = slide_image.size() | ||
158 | 289 | slide_width = self.settingsmanager.slidecontroller_image | ||
159 | 290 | slide_height = slide_width * size.height() / size.width() | ||
160 | 291 | self.PreviewListWidget.clear() | 280 | self.PreviewListWidget.clear() |
161 | 292 | self.PreviewListWidget.setRowCount(0) | 281 | self.PreviewListWidget.setRowCount(0) |
163 | 293 | self.PreviewListWidget.setColumnWidth(0, slide_width) | 282 | self.PreviewListWidget.setColumnWidth(0, self.settingsmanager.slidecontroller_image) |
164 | 294 | for framenumber, frame in enumerate(self.serviceitem.frames): | 283 | for framenumber, frame in enumerate(self.serviceitem.frames): |
165 | 295 | self.PreviewListWidget.setRowCount(self.PreviewListWidget.rowCount() + 1) | 284 | self.PreviewListWidget.setRowCount(self.PreviewListWidget.rowCount() + 1) |
166 | 296 | item = QtGui.QTableWidgetItem() | 285 | item = QtGui.QTableWidgetItem() |
167 | 297 | label = QtGui.QLabel() | 286 | label = QtGui.QLabel() |
168 | 298 | label.setMargin(8) | 287 | label.setMargin(8) |
169 | 288 | #It is a Image | ||
170 | 299 | if frame[u'text'] == None: | 289 | if frame[u'text'] == None: |
172 | 300 | pixmap = self.parent.RenderManager.resize_image(frame[u'image'], slide_width, slide_height) | 290 | pixmap = self.parent.RenderManager.resize_image(frame[u'image']) |
173 | 301 | label.setScaledContents(True) | 291 | label.setScaledContents(True) |
174 | 302 | label.setPixmap(QtGui.QPixmap.fromImage(pixmap)) | 292 | label.setPixmap(QtGui.QPixmap.fromImage(pixmap)) |
175 | 303 | else: | 293 | else: |
176 | 304 | label.setText(frame[u'text']) | 294 | label.setText(frame[u'text']) |
177 | 305 | self.PreviewListWidget.setCellWidget(framenumber, 0, label) | 295 | self.PreviewListWidget.setCellWidget(framenumber, 0, label) |
178 | 306 | self.PreviewListWidget.setItem(framenumber, 0, item) | 296 | self.PreviewListWidget.setItem(framenumber, 0, item) |
179 | 297 | slide_height = self.settingsmanager.slidecontroller_image * self.parent.RenderManager.screen_ratio | ||
180 | 307 | self.PreviewListWidget.setRowHeight(framenumber, slide_height) | 298 | self.PreviewListWidget.setRowHeight(framenumber, slide_height) |
183 | 308 | slide_width = self.PreviewListWidget.viewport().size().width() | 299 | self.PreviewListWidget.setColumnWidth(0, self.PreviewListWidget.viewport().size().width()) |
182 | 309 | self.PreviewListWidget.setColumnWidth(0, slide_width) | ||
184 | 310 | if slideno > self.PreviewListWidget.rowCount(): | 300 | if slideno > self.PreviewListWidget.rowCount(): |
185 | 311 | self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount()) | 301 | self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount()) |
186 | 312 | else: | 302 | else: |
187 | @@ -314,7 +304,8 @@ | |||
188 | 314 | self.onSlideSelected() | 304 | self.onSlideSelected() |
189 | 315 | self.PreviewListWidget.setFocus() | 305 | self.PreviewListWidget.setFocus() |
190 | 316 | log.info(u'Display Rendering took %4s' % (time.time() - before)) | 306 | log.info(u'Display Rendering took %4s' % (time.time() - before)) |
192 | 317 | Receiver().send_message(u'audit_live', self.serviceitem.audit) | 307 | if self.serviceitem.audit != u'': |
193 | 308 | Receiver().send_message(u'audit_live', self.serviceitem.audit) | ||
194 | 318 | log.debug(u'displayServiceManagerItems End') | 309 | log.debug(u'displayServiceManagerItems End') |
195 | 319 | 310 | ||
196 | 320 | #Screen event methods | 311 | #Screen event methods |
Clean up Slide hight setting in Settings Manager
Clean up Renderer
Stop Audit being fired in Error
Images can now render first!!!!!