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
Raoul Snyman Approve
Review via email: mp+11144@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Tim Bentley (trb143) wrote :

Speed up rendering in slidecontroller
Fix slide if last slide has one space only.
Problems with last merge

Revision history for this message
Raoul Snyman (raoul-snyman) :
review: Approve
lp:~trb143/openlp/bugfixes updated
519. By Tim Bentley

Performance Improvements and code 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-02 01:44:09 +0000
3+++ openlp/core/lib/renderer.py 2009-09-03 17:46:46 +0000
4@@ -218,7 +218,7 @@
5 if len(page) == page_length:
6 split_pages.append(page)
7 page = []
8- if len(page) > 0:
9+ if len(page) > 0 and page != u' ':
10 split_pages.append(page)
11 return split_pages
12
13@@ -440,7 +440,7 @@
14 rightextent = x + w
15 # shift right from last line's rh edge
16 if self._theme.display_wrapStyle == 1 and linenum != 0:
17- rightextent = self._first_line_right_extent +
18+ rightextent = self._first_line_right_extent + \
19 self._right_margin
20 if rightextent > maxx:
21 rightextent = maxx
22
23=== modified file 'openlp/core/lib/rendermanager.py'
24--- openlp/core/lib/rendermanager.py 2009-09-02 01:44:09 +0000
25+++ openlp/core/lib/rendermanager.py 2009-09-03 17:46:46 +0000
26@@ -209,7 +209,7 @@
27 self.renderer.set_frame_dest(self.width, self.height)
28 return self.renderer.generate_frame_from_lines(main_text, footer_text)
29
30- def resize_image(self, image):
31+ def resize_image(self, image, width = 0, height = 0):
32 """
33 Resize an image to fit on the current screen.
34
35@@ -217,8 +217,12 @@
36 The image to resize.
37 """
38 preview = QtGui.QImage(image)
39- w = self.width
40- h = self.height
41+ if width == 0:
42+ w = self.width
43+ h = self.height
44+ else:
45+ w = width
46+ h = height
47 preview = preview.scaled(w, h, QtCore.Qt.KeepAspectRatio,
48 QtCore.Qt.SmoothTransformation)
49 realw = preview.width();
50
51=== modified file 'openlp/core/lib/serviceitem.py'
52--- openlp/core/lib/serviceitem.py 2009-09-02 01:44:09 +0000
53+++ openlp/core/lib/serviceitem.py 2009-09-03 17:46:46 +0000
54@@ -100,7 +100,7 @@
55 self.frames = self.service_frames
56 elif self.service_item_type == ServiceType.Image:
57 for slide in self.service_frames:
58- slide[u'image'] =
59+ slide[u'image'] = \
60 self.RenderManager.resize_image(slide[u'image'])
61 self.frames = self.service_frames
62 else:
63
64=== modified file 'openlp/core/ui/slidecontroller.py'
65--- openlp/core/ui/slidecontroller.py 2009-08-31 14:04:00 +0000
66+++ openlp/core/ui/slidecontroller.py 2009-09-03 04:41:30 +0000
67@@ -21,7 +21,7 @@
68 import os
69
70 from PyQt4 import QtCore, QtGui
71-from openlp.core.lib import OpenLPToolbar, translate, buildIcon, Receiver, ServiceType
72+from openlp.core.lib import OpenLPToolbar, translate, buildIcon, Receiver, ServiceType, RenderManager
73
74 class SlideList(QtGui.QTableWidget):
75 """
76@@ -250,20 +250,21 @@
77 """
78 log.debug(u'displayServiceManagerItems Start')
79 self.serviceitem = serviceitem
80- slide_pixmap = QtGui.QPixmap.fromImage(self.serviceitem.frames[0][u'image'])
81+ slide_image = self.serviceitem.frames[0][u'image']
82+ size = slide_image.size()
83 slide_width = 300
84- slide_height = slide_width * slide_pixmap.height() / slide_pixmap.width()
85+ slide_height = slide_width * size.height() / size.width()
86 self.PreviewListWidget.clear()
87 self.PreviewListWidget.setRowCount(0)
88 self.PreviewListWidget.setColumnWidth(0, slide_width)
89 for framenumber, frame in enumerate(self.serviceitem.frames):
90 self.PreviewListWidget.setRowCount(self.PreviewListWidget.rowCount() + 1)
91- pixmap = QtGui.QPixmap.fromImage(frame[u'image'])
92+ pixmap = self.parent.RenderManager.resize_image(frame[u'image'], slide_width, slide_height)
93 item = QtGui.QTableWidgetItem()
94 label = QtGui.QLabel()
95 label.setMargin(8)
96 label.setScaledContents(True)
97- label.setPixmap(pixmap)
98+ label.setPixmap(QtGui.QPixmap.fromImage(pixmap))
99 self.PreviewListWidget.setCellWidget(framenumber, 0, label)
100 self.PreviewListWidget.setItem(framenumber, 0, item)
101 self.PreviewListWidget.setRowHeight(framenumber, slide_height)