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

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

Fix up serviceitem interface

Revision history for this message
Raoul Snyman (raoul-snyman) wrote :

Looks good.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'openlp/core/lib/serviceitem.py'
2--- openlp/core/lib/serviceitem.py 2009-06-04 16:14:10 +0000
3+++ openlp/core/lib/serviceitem.py 2009-06-05 19:00:57 +0000
4@@ -48,6 +48,7 @@
5 self.raw_footer = None
6 self.theme = None
7 log.debug(u'Service item created for %s ', self.shortname)
8+ self.service_frames = []
9
10 def addIcon(self, icon):
11 self.iconic_representation = buildIcon(icon)
12@@ -62,23 +63,35 @@
13 else:
14 self.plugin.render_manager.set_override_theme(self.theme)
15 log.debug(u'Formatting slides')
16- if len(self.frames) == 0 and len(self.raw_slides) > 0 :
17- for slide in self.raw_slides:
18- formated = self.plugin.render_manager.format_slide(slide)
19+ if self.service_item_type == u'text':
20+ for slide in self.service_frames:
21+ formated = self.plugin.render_manager.format_slide(slide[u'raw_slide'])
22 for format in formated:
23 frame = self.plugin.render_manager.generate_slide(format, self.raw_footer)
24- self.frames.append({u'title': format, u'image': frame})
25+ self.frames.append({u'title': slide[u'title'], u'image': frame})
26+ elif self.service_item_type == u'command':
27+ self.frames = self.service_frames
28+ self.service_frames = []
29+ elif self.service_item_type == u'image':
30+ self.frames = self.service_frames
31+ self.service_frames = []
32 else:
33- if len(self.command_files) > 0:
34- pass
35-
36-
37- def get_parent_node(self):
38- """
39- This method returns a parent node to be inserted into the Service
40- Manager. At the moment this has to be a QAbstractListModel based class
41- """
42- pass
43+ assert(0 , u'Invalid value rendere :%s' % self.service_item_type)
44+
45+ def add_from_image(self, frame_title, image):
46+ self.service_item_type = u'image'
47+ self.service_frames.append({u'title': frame_title, u'image': image})
48+
49+ def add_from_text(self, frame_title, raw_slide):
50+ self.service_item_type = u'text'
51+ frame_title = frame_title.split(u'\n')[0]
52+ self.service_frames.append({u'title': frame_title, u'raw_slide': raw_slide})
53+
54+ def add_from_command(self, frame_title, command):
55+ self.service_item_type = u'command'
56+ self.service_frames.append({u'title': frame_title, u'command': command})
57+
58+
59
60 def get_oos_repr(self):
61 """
62
63=== modified file 'openlp/core/ui/servicemanager.py'
64--- openlp/core/ui/servicemanager.py 2009-06-04 16:14:10 +0000
65+++ openlp/core/ui/servicemanager.py 2009-06-05 19:00:57 +0000
66@@ -140,8 +140,8 @@
67 count = 0
68 for frame in item.frames:
69 treewidgetitem1 = QtGui.QTreeWidgetItem(treewidgetitem)
70- text = frame[u'title'][0]
71- treewidgetitem1.setText(0,text[:30])
72+ text = frame[u'title']
73+ treewidgetitem1.setText(0,text[:40])
74 treewidgetitem1.setData(0, QtCore.Qt.UserRole,QtCore.QVariant(count))
75 count = count + 1
76
77
78=== modified file 'openlp/core/ui/slidecontroller.py'
79--- openlp/core/ui/slidecontroller.py 2009-06-04 19:00:41 +0000
80+++ openlp/core/ui/slidecontroller.py 2009-06-05 19:00:57 +0000
81@@ -291,7 +291,7 @@
82 """
83 Loads a ServiceItem.
84 """
85- log.debug(u'addServiceItem')
86+ log.debug(u'add Service Item')
87 self.serviceitem = serviceitem
88 self.serviceitem.render()
89 self.PreviewListData.clear()
90@@ -309,7 +309,13 @@
91 """
92 Loads a ServiceManagerItem.
93 """
94- self.addServiceItem(serviceitem)
95+ log.debug(u'add Service Manager Item')
96+ self.PreviewListData.clear()
97+ self.serviceitem = serviceitem
98+ framenumber = 0
99+ for frame in self.serviceitem.frames:
100+ self.PreviewListData.addRow(frame[u'image'], framenumber)
101+ framenumber += 1
102 row = self.PreviewListData.createIndex(slideno, 0)
103 if row.isValid():
104 self.PreviewListView.selectionModel().setCurrentIndex(row,
105
106=== modified file 'openlp/plugins/bibles/lib/mediaitem.py'
107--- openlp/plugins/bibles/lib/mediaitem.py 2009-06-05 05:00:26 +0000
108+++ openlp/plugins/bibles/lib/mediaitem.py 2009-06-05 19:00:57 +0000
109@@ -397,7 +397,8 @@
110 else:
111 service_item.theme = self.parent.bibles_tab.bible_theme
112 raw_slides.append(bible_text)
113- service_item.raw_slides = raw_slides
114+ for slide in raw_slides:
115+ service_item.add_from_text(slide[:30], slide)
116 service_item.raw_footer = raw_footer
117
118 def formatVerse(self, old_chapter, chapter, verse, opening, closing):
119
120=== modified file 'openlp/plugins/custom/lib/mediaitem.py'
121--- openlp/plugins/custom/lib/mediaitem.py 2009-06-03 15:38:14 +0000
122+++ openlp/plugins/custom/lib/mediaitem.py 2009-06-05 19:00:57 +0000
123@@ -248,5 +248,6 @@
124 raw_footer.append(title + u' '+ credit)
125 if theme is not None:
126 service_item.title = title
127- service_item.raw_slides = raw_slides
128+ for slide in raw_slides:
129+ service_item.add_from_text(slide[:30], slide)
130 service_item.raw_footer = raw_footer
131
132=== modified file 'openlp/plugins/images/lib/mediaitem.py'
133--- openlp/plugins/images/lib/mediaitem.py 2009-06-01 17:50:37 +0000
134+++ openlp/plugins/images/lib/mediaitem.py 2009-06-05 19:00:57 +0000
135@@ -150,10 +150,12 @@
136
137 def generateSlideData(self, service_item):
138 indexes = self.ImageListView.selectedIndexes()
139+ service_item.title = u'Images'
140 for index in indexes:
141 filename = self.ImageListData.getFilename(index)
142 frame = QtGui.QPixmap(str(filename))
143- service_item.frames.append({u'title': filename , u'image': frame})
144+ (path, name) =os.path.split(filename)
145+ service_item.add_from_image(name, frame)
146
147 def onImagePreviewClick(self):
148 log.debug(u'Image Preview Requested')
149
150=== modified file 'openlp/plugins/songs/lib/mediaitem.py'
151--- openlp/plugins/songs/lib/mediaitem.py 2009-06-03 16:14:56 +0000
152+++ openlp/plugins/songs/lib/mediaitem.py 2009-06-05 19:00:57 +0000
153@@ -168,7 +168,7 @@
154 self.onSongLiveClick))
155 self.SongListView.addAction(self.contextMenuAction(self.SongListView,
156 ':/system/system_add.png', translate('SongMediaItem', u'&Add to Service'),
157- self.onSongEditClick))
158+ self.onSongAddClick))
159
160 def retranslateUi(self):
161 self.SearchTypeLabel.setText(translate('SongMediaItem', u'Search Type:'))
162@@ -258,9 +258,8 @@
163 else:
164 service_item.theme = song.theme_name
165 verses = song.lyrics.split(u'\n\n')
166- for verse in verses:
167- raw_slides.append(verse)
168- service_item.raw_slides = raw_slides
169+ for slide in verses:
170+ service_item.add_from_text(slide[:30], slide)
171 service_item.title = song.title
172 raw_footer.append(str(u'%s \n%s \n' % (song.title, song.copyright )))
173 raw_footer.append(song.copyright)