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

Proposed by Tim Bentley
Status: Superseded
Proposed branch: lp:~trb143/openlp/fixes
Merge into: lp:openlp
Diff against target: 289 lines
9 files modified
openlp/core/lib/mediamanageritem.py (+0/-1)
openlp/core/lib/renderer.py (+1/-1)
openlp/core/lib/rendermanager.py (+2/-1)
openlp/core/ui/amendthemeform.py (+1/-1)
openlp/core/ui/slidecontroller.py (+30/-15)
openlp/core/ui/thememanager.py (+1/-1)
openlp/plugins/bibles/lib/bibleDBimpl.py (+5/-0)
openlp/plugins/songs/forms/editsongform.py (+1/-0)
openlp/plugins/songs/lib/mediaitem.py (+20/-5)
To merge this branch: bzr merge lp:~trb143/openlp/fixes
Reviewer Review Type Date Requested Status
Jon Tibble (community) Needs Fixing
Review via email: mp+13888@code.launchpad.net

This proposal supersedes a proposal from 2009-10-24.

This proposal has been superseded by a proposal from 2009-10-24.

To post a comment you must log in.
Revision history for this message
Tim Bentley (trb143) wrote : Posted in a previous version of this proposal

Fix Theme errors and sort other bits.

lp:~trb143/openlp/fixes updated
628. By Tim Bentley

Fix Song editing

629. By Tim Bentley

Headr622

Revision history for this message
Jon Tibble (meths) wrote :

In slidecontroller.py self.image_list (edited in patch) and self.song_list (added in patch) are lists of widget names never seen by users - they do not need translation.

review: Needs Fixing
lp:~trb143/openlp/fixes updated
630. By Tim Bentley

Fix extra utf8 strings

631. By Tim Bentley

Preserve selected slide on editing

632. By Tim Bentley

Headr624

633. By Tim Bentley

More Song editing fixes

634. By Tim Bentley

Finally fix redisplaying of correct slide

635. By Tim Bentley

Audit report work

636. By Tim Bentley

Headr626

637. By Tim Bentley

Service Items can now have their theme changes at run time.

638. By Tim Bentley

"Save and Preview" added to Song editor

639. By Tim Bentley

Yet more audit work

640. By Tim Bentley

Headr629

641. By Tim Bentley

Add Song verses to menu bar

642. By Tim Bentley

Add Song Tab option to remove them

643. By Tim Bentley

Split if line contains 3 --- can allow for spaces at end of line

644. By Tim Bentley

Fix Line split code. Stop SlideController being editied

645. By Tim Bentley

Biblegateway addition

646. By Tim Bentley

Move Audit to SongUsage

647. By Tim Bentley

More BibleGateway work

648. By Tim Bentley

More BibleGateway work - no prints

649. By Tim Bentley

Fix typos

650. By Tim Bentley

Add BibleGateway List and access it

651. By Tim Bentley

BibleGateway - Download files and add to selections

652. By Tim Bentley

Style fixes

653. By Tim Bentley

Strange spacing appeared from nowhere

654. By Tim Bentley

Songs now have remote edit working

655. By Tim Bentley

More remote edit changes

656. By Tim Bentley

headr632

657. By Tim Bentley

Works for now

658. By Tim Bentley

Headr633 and merge resolution

659. By Tim Bentley

Headr635

660. By Tim Bentley

Minor fixes

661. By Tim Bentley

Song Edit Preview button only active from Preview, Reset Theme Editor image text Edit

662. By Tim Bentley

Add Save service on New code, and configuration to turn it off.

663. By Tim Bentley

Fix theme editing where previous image is cached on change of image

664. By Tim Bentley

Move version check

665. By Tim Bentley

Headr639

666. By Tim Bentley

Fix names before Raoul sees them

667. By Tim Bentley

Finish remote editing of ServiceManager by updating live

668. By Tim Bentley

Sort out number of buttons on SlideController to match song and make more KITT like

669. By Tim Bentley

Fix error handling for double exception call. Added debugging for Song XML class

670. By Tim Bentley

Fix up handling of service items in the slide controllers and stop editing issues

671. By Tim Bentley

Custom plugin fixes

672. By Tim Bentley

Headr642

673. By Tim Bentley

Clean up version notifications and checking

674. By Tim Bentley

Remove unused file

675. By Tim Bentley

Headr644

676. By Tim Bentley

Headr646

677. By Tim Bentley

Fixes from last few merges

678. By Tim Bentley

Headr468 and fix

679. By Tim Bentley

Headr650

680. By Tim Bentley

Cleanup Remote Editing again

681. By Tim Bentley

Headr651

682. By Tim Bentley

Fix phantom expansion in Service Manager

683. By Tim Bentley

Fix song editing

684. By Tim Bentley

Song editing utf8 fixes part 1

685. By Tim Bentley

Headr655

686. By Tim Bentley

Song editing utf8 fixes part 2

687. By Tim Bentley

Headr656

688. By Tim Bentley

More remote editing cleanups

689. By Tim Bentley

Headr657

690. By Tim Bentley

Remote Edit for Custom

691. By Tim Bentley

Headr658

692. By Tim Bentley

Fix error in previous merge for ThemeManager
Get Custom Working with remote editing

693. By Tim Bentley

Headr660

694. By Tim Bentley

Remove "Can_be_disabled" as no longer require
Sort out status handling in plugin form.

695. By Tim Bentley

Fix blocking for Active/Inactive

696. By Tim Bentley

Head552

697. By Tim Bentley

Add icon to slidecontroller/nAdd inital icons /nFix ToolBar for Media"

698. By Tim Bentley

Fix strange commit

699. By Tim Bentley

Add Icon files

700. By Tim Bentley

Add test to stop icons going over the limit

701. By Tim Bentley

Fix bugs in previous merges with icons and themes

702. By Tim Bentley

remove print for log

703. By Tim Bentley

Clean up slide sizes part 1

704. By Tim Bentley

Clean up slide sizes part 2

705. By Tim Bentley

Fix up toolbar handing to stop toolbar going off screen
Added Media Toolbar for the media items
Added it to Preview
Added and wired in a volume control

706. By Tim Bentley

Try to hide display screens for previews

707. By Tim Bentley

Fix media previews ti work and not display the extra screens

708. By Tim Bentley

Add Media Preview to slideController

709. By Tim Bentley

Reset Preview when exiting media

710. By Tim Bentley

Headr666

711. By Tim Bentley

Headr667

712. By Tim Bentley

spacing cleanups

713. By Tim Bentley

SlideController cleanups

714. By Tim Bentley

Slide Controller and Transition changes

715. By Tim Bentley

Headr668

716. By Tim Bentley

Transitions between slides

717. By Tim Bentley

Fix saving and reloading of media items

718. By Tim Bentley

Remove extra Video

719. By Tim Bentley

Remove transition code

720. By Tim Bentley

ServiceItem cleanup - rename arrays

721. By Tim Bentley

ServiceItem cleanup - hide lists

722. By Tim Bentley

ServiceItem cleanup - hide lists 2

723. By Tim Bentley

ServiceItem cleanup - remove CommandItem

724. By Tim Bentley

ServiceItem cleanup - sort out name format errors

725. By Tim Bentley

ServiceItem cleanup - fix media playing

726. By Tim Bentley

ServiceItem cleanup - remove code duplication

727. By Tim Bentley

ServiceItem cleanup - fix presentation issues

728. By Tim Bentley

Remove unneed varables
Move code into serviceItem
Fix up splitter code

729. By Tim Bentley

headr670

730. By Tim Bentley

Renderer cleanups and fixes

731. By Tim Bentley

Head671 and fixes

732. By Tim Bentley

Head672

733. By Tim Bentley

Fix up line splitter in the renderer

734. By Tim Bentley

Headr673

735. By Tim Bentley

Fix renderer again

736. By Tim Bentley

start testing screen width v Font size

737. By Tim Bentley

Start making renderer gushie proof

738. By Tim Bentley

Fix up renderer and enforce minimum width

Unmerged revisions

738. By Tim Bentley

Fix up renderer and enforce minimum width

737. By Tim Bentley

Start making renderer gushie proof

736. By Tim Bentley

start testing screen width v Font size

735. By Tim Bentley

Fix renderer again

734. By Tim Bentley

Headr673

733. By Tim Bentley

Fix up line splitter in the renderer

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'openlp/core/lib/mediamanageritem.py'
2--- openlp/core/lib/mediamanageritem.py 2009-10-23 18:48:49 +0000
3+++ openlp/core/lib/mediamanageritem.py 2009-10-24 16:03:10 +0000
4@@ -118,7 +118,6 @@
5 self.requiredIcons()
6 self.setupUi()
7 self.retranslateUi()
8- #self.initialise()
9
10 def requiredIcons(self):
11 """
12
13=== modified file 'openlp/core/lib/renderer.py'
14--- openlp/core/lib/renderer.py 2009-10-23 16:10:09 +0000
15+++ openlp/core/lib/renderer.py 2009-10-24 16:03:10 +0000
16@@ -201,7 +201,7 @@
17 #if we have more text add up to 10 spaces on the front.
18 if len(line) > 0 and self._theme.font_main_indentation > 0:
19 line = u'%s%s' % \
20- (u' '[:self._theme.font_main_indentation], line)
21+ (u' '[:int(self._theme.font_main_indentation)], line)
22 #Text fits in a line now
23 for count, line in enumerate(split_lines):
24 page.append(line)
25
26=== modified file 'openlp/core/lib/rendermanager.py'
27--- openlp/core/lib/rendermanager.py 2009-09-26 06:46:26 +0000
28+++ openlp/core/lib/rendermanager.py 2009-10-24 16:03:10 +0000
29@@ -65,6 +65,7 @@
30 self.service_theme = u''
31 self.global_style = u''
32 self.override_background = None
33+ self.themedata = None
34 self.save_bg_frame = None
35 self.override_background_changed = False
36
37@@ -130,7 +131,7 @@
38 self.theme = self.service_theme
39 else:
40 self.theme = self.global_theme
41- if self.theme != self.renderer.theme_name:
42+ if self.theme != self.renderer.theme_name or self.themedata is None:
43 log.debug(u'theme is now %s', self.theme)
44 self.themedata = self.theme_manager.getThemeData(self.theme)
45 self.calculate_default(
46
47=== modified file 'openlp/core/ui/amendthemeform.py'
48--- openlp/core/ui/amendthemeform.py 2009-10-24 09:33:20 +0000
49+++ openlp/core/ui/amendthemeform.py 2009-10-24 16:03:10 +0000
50@@ -678,6 +678,6 @@
51 log.debug(u'Page Length area height %s , metrics %s , lines %s' %
52 (int(self.FontMainHeightSpinBox.value()), metrics.height(), page_length ))
53 self.FontMainLinesPageLabel.setText(
54- self.trUtf8(u'Slide Height is %s rows') % page_length)
55+ self.trUtf8((u'Slide Height is %s rows') % page_length))
56 frame = self.thememanager.generateImage(theme)
57 self.ThemePreview.setPixmap(QtGui.QPixmap.fromImage(frame))
58
59=== modified file 'openlp/core/ui/slidecontroller.py'
60--- openlp/core/ui/slidecontroller.py 2009-10-24 09:33:20 +0000
61+++ openlp/core/ui/slidecontroller.py 2009-10-24 16:03:10 +0000
62@@ -87,10 +87,13 @@
63 self.isLive = isLive
64 self.parent = parent
65 self.image_list = [
66- self.trUtf8(u'Start Loop'),
67- self.trUtf8(u'Stop Loop'),
68- #self.trUtf8(u'Loop Separator'),
69- self.trUtf8(u'Image SpinBox')
70+ u'Start Loop',
71+ u'Stop Loop',
72+ u'Loop Separator',
73+ u'Image SpinBox'
74+ ]
75+ self.song_list = [
76+ u'Edit Song',
77 ]
78 self.timer_id = 0
79 self.commandItem = None
80@@ -140,17 +143,17 @@
81 self.Toolbar.setSizePolicy(sizeToolbarPolicy)
82 if self.isLive:
83 self.Toolbar.addToolbarButton(
84- self.trUtf8(u'First Slide'), u':/slides/slide_first.png',
85+ u'First Slide', u':/slides/slide_first.png',
86 self.trUtf8(u'Move to first'), self.onSlideSelectedFirst)
87 self.Toolbar.addToolbarButton(
88- self.trUtf8(u'Previous Slide'), u':/slides/slide_previous.png',
89+ u'Previous Slide', u':/slides/slide_previous.png',
90 self.trUtf8(u'Move to previous'), self.onSlideSelectedPrevious)
91 self.Toolbar.addToolbarButton(
92- self.trUtf8(u'Next Slide'), u':/slides/slide_next.png',
93+ u'Next Slide', u':/slides/slide_next.png',
94 self.trUtf8(u'Move to next'), self.onSlideSelectedNext)
95 if self.isLive:
96 self.Toolbar.addToolbarButton(
97- self.trUtf8(u'Last Slide'), u':/slides/slide_last.png',
98+ u'Last Slide', u':/slides/slide_last.png',
99 self.trUtf8(u'Move to last'), self.onSlideSelectedLast)
100 if self.isLive:
101 self.Toolbar.addToolbarSeparator(u'Close Separator')
102@@ -159,19 +162,23 @@
103 if not self.isLive:
104 self.Toolbar.addToolbarSeparator(u'Close Separator')
105 self.Toolbar.addToolbarButton(
106- self.trUtf8(u'Go Live'), u':/system/system_live.png',
107+ u'Go Live', u':/system/system_live.png',
108 self.trUtf8(u'Move to live'), self.onGoLive)
109+ self.Toolbar.addToolbarSeparator(u'Close Separator')
110+ self.Toolbar.addToolbarButton(
111+ u'Edit Song', u':songs/song_edit.png',
112+ self.trUtf8(u'Edit and re-preview Song'), self.onEditSong)
113 if isLive:
114 self.Toolbar.addToolbarSeparator(u'Loop Separator')
115 self.Toolbar.addToolbarButton(
116- self.trUtf8(u'Start Loop'), u':/media/media_time.png',
117+ u'Start Loop', u':/media/media_time.png',
118 self.trUtf8(u'Start continuous loop'), self.onStartLoop)
119 self.Toolbar.addToolbarButton(
120- self.trUtf8(u'Stop Loop'), u':/media/media_stop.png',
121+ u'Stop Loop', u':/media/media_stop.png',
122 self.trUtf8(u'Stop continuous loop'), self.onStopLoop)
123 self.DelaySpinBox = QtGui.QSpinBox()
124 self.Toolbar.addToolbarWidget(
125- self.trUtf8(u'Image SpinBox'), self.DelaySpinBox)
126+ u'Image SpinBox', self.DelaySpinBox)
127 self.DelaySpinBox.setSuffix(self.trUtf8(u's'))
128
129 self.ControllerLayout.addWidget(self.Toolbar)
130@@ -216,6 +223,8 @@
131 Receiver().send_message(u'request_spin_delay')
132 if isLive:
133 self.Toolbar.makeWidgetsInvisible(self.image_list)
134+ else:
135+ self.Toolbar.makeWidgetsInvisible(self.song_list)
136 QtCore.QObject.connect(Receiver.get_receiver(),
137 QtCore.SIGNAL(u'slidecontroller_first'), self.onSlideSelectedFirst)
138 QtCore.QObject.connect(Receiver.get_receiver(),
139@@ -255,7 +264,10 @@
140 """
141 Allows the Preview toolbar to be customised
142 """
143- pass
144+ if item.name == u'Songs':
145+ self.Toolbar.makeWidgetsVisible(self.song_list)
146+ else:
147+ self.Toolbar.makeWidgetsInvisible(self.song_list)
148
149 def addServiceItem(self, item):
150 """
151@@ -389,13 +401,13 @@
152 log.info(u'Slide Rendering took %4s' % (time.time() - before))
153 if self.isLive:
154 self.parent.mainDisplay.frameView(frame)
155-
156+
157 def grabMainDisplay(self):
158 winid = QtGui.QApplication.desktop().winId()
159 rm = self.parent.RenderManager
160 rect = rm.screen_list[rm.current_display][u'size']
161 winimg = QtGui.QPixmap.grabWindow(winid, rect.x(), rect.y(), rect.width(), rect.height())
162- self.SlidePreview.setPixmap(winimg)
163+ self.SlidePreview.setPixmap(winimg)
164
165 def onSlideSelectedNext(self):
166 """
167@@ -461,6 +473,9 @@
168 if event.timerId() == self.timer_id:
169 self.onSlideSelectedNext()
170
171+ def onEditSong(self):
172+ Receiver().send_message(u'edit_song')
173+
174 def onGoLive(self):
175 """
176 If preview copy slide item to live
177
178=== modified file 'openlp/core/ui/thememanager.py'
179--- openlp/core/ui/thememanager.py 2009-10-23 18:48:49 +0000
180+++ openlp/core/ui/thememanager.py 2009-10-24 16:03:10 +0000
181@@ -371,7 +371,7 @@
182
183 newtheme.add_font(unicode(theme.FontName),
184 unicode(theme.FontColor.name()),
185- unicode(theme.FontProportion * 2), u'False')
186+ unicode(theme.FontProportion * 3), u'False')
187 newtheme.add_font(unicode(theme.FontName),
188 unicode(theme.FontColor.name()),
189 unicode(12), u'False', u'footer')
190
191=== modified file 'openlp/plugins/bibles/lib/bibleDBimpl.py'
192--- openlp/plugins/bibles/lib/bibleDBimpl.py 2009-10-12 10:18:54 +0000
193+++ openlp/plugins/bibles/lib/bibleDBimpl.py 2009-10-24 16:03:10 +0000
194@@ -158,6 +158,11 @@
195 def get_bible_text(self, bookname, chapter, sverse, everse):
196 log.debug(u'get_bible_text %s, %s, %s, %s', bookname, chapter, sverse,
197 everse)
198+ #Look up book name or abbreviation
199+ book = self.get_bible_book(bookname)
200+ if book is not None:
201+ bookname = book.name
202+ log.debug(u'bookname corrected to %s' % bookname)
203 verses = self.session.query(Verse).join(Book).filter(
204 Book.name == bookname).filter(Verse.chapter == chapter).filter(
205 Verse.verse>=sverse).filter(Verse.verse<=everse).order_by(
206
207=== modified file 'openlp/plugins/songs/forms/editsongform.py'
208--- openlp/plugins/songs/forms/editsongform.py 2009-10-23 18:48:49 +0000
209+++ openlp/plugins/songs/forms/editsongform.py 2009-10-24 16:03:10 +0000
210@@ -410,6 +410,7 @@
211 self.songmanager.save_song(self.song)
212 if self.title_change:
213 Receiver().send_message(u'load_song_list')
214+ Receiver().send_message(u'preview_song')
215 self.close()
216
217 def processLyrics(self):
218
219=== modified file 'openlp/plugins/songs/lib/mediaitem.py'
220--- openlp/plugins/songs/lib/mediaitem.py 2009-10-23 18:48:49 +0000
221+++ openlp/plugins/songs/lib/mediaitem.py 2009-10-24 16:03:10 +0000
222@@ -55,6 +55,7 @@
223 self.edit_song_form = EditSongForm(self.parent.songmanager, self)
224 self.song_maintenance_form = SongMaintenanceForm(
225 self.parent.songmanager, self)
226+ self.fromPreview = None
227
228 def requiredIcons(self):
229 MediaManagerItem.requiredIcons(self)
230@@ -121,6 +122,10 @@
231 QtCore.SIGNAL(u'load_song_list'), self.onSearchTextButtonClick)
232 QtCore.QObject.connect(Receiver.get_receiver(),
233 QtCore.SIGNAL(u'config_updated'), self.configUpdated)
234+ QtCore.QObject.connect(Receiver.get_receiver(),
235+ QtCore.SIGNAL(u'edit_song'), self.onEventEditSong)
236+ QtCore.QObject.connect(Receiver.get_receiver(),
237+ QtCore.SIGNAL(u'proview_song'), self.onPreviewClick)
238
239 def configUpdated(self):
240 self.searchAsYouType = str_to_bool(
241@@ -168,19 +173,23 @@
242 if author_list != u'':
243 author_list = author_list + u', '
244 author_list = author_list + author.display_name
245- song_detail = unicode(u'%s (%s)' % \
246- (unicode(song.title), unicode(author_list)))
247+ song_detail = unicode(self.trUtf8(u'%s (%s)' % \
248+ (unicode(song.title), unicode(author_list))))
249 song_name = QtGui.QListWidgetItem(song_detail)
250 song_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(song.id))
251 self.ListView.addItem(song_name)
252+ if song.id == self.fromPreview:
253+ self.fromPreview = 0
254+ self.ListView.setCurrentItem(song_name)
255+ self.onPreviewClick()
256
257 def displayResultsAuthor(self, searchresults):
258 log.debug(u'display results Author')
259 self.ListView.clear()
260 for author in searchresults:
261 for song in author.songs:
262- song_detail = unicode(u'%s (%s)' % \
263- (unicode(author.display_name), unicode(song.title)))
264+ song_detail = unicode(self.trUtf8(u'%s (%s)' % \
265+ (unicode(author.display_name), unicode(song.title))))
266 song_name = QtGui.QListWidgetItem(song_detail)
267 song_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(song.id))
268 self.ListView.addItem(song_name)
269@@ -218,13 +227,19 @@
270 def onSongMaintenanceClick(self):
271 self.song_maintenance_form.exec_()
272
273- def onEditClick(self):
274+ def onEditClick(self, preview=False):
275 item = self.ListView.currentItem()
276 if item is not None:
277 item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
278+ self.fromPreview = 0
279+ if preview:
280+ self.fromPreview = item_id
281 self.edit_song_form.loadSong(item_id)
282 self.edit_song_form.exec_()
283
284+ def onEventEditSong (self):
285+ self.onEditClick(True)
286+
287 def onDeleteClick(self):
288 item = self.ListView.currentItem()
289 if item is not None: