From 4c35fc81a59c4adc6abdfec7770075e7218f5e2c Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 23 Oct 2009 18:09:09 +0100 Subject: [PATCH 1/7] Fix rendering bug --- openlp/core/lib/renderer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 4f6aa9235..79c58f6af 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -201,7 +201,7 @@ class Renderer(object): #if we have more text add up to 10 spaces on the front. if len(line) > 0 and self._theme.font_main_indentation > 0: line = u'%s%s' % \ - (u' '[:self._theme.font_main_indentation], line) + (u' '[:int(self._theme.font_main_indentation)], line) #Text fits in a line now for count, line in enumerate(split_lines): page.append(line) From cdf4e46b07f719af49190c5c3a6e3f297590a3da Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 24 Oct 2009 06:58:49 +0100 Subject: [PATCH 2/7] Fix abbriviations for searchs --- openlp/plugins/bibles/lib/bibleDBimpl.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openlp/plugins/bibles/lib/bibleDBimpl.py b/openlp/plugins/bibles/lib/bibleDBimpl.py index eac7ccd79..756828197 100644 --- a/openlp/plugins/bibles/lib/bibleDBimpl.py +++ b/openlp/plugins/bibles/lib/bibleDBimpl.py @@ -158,6 +158,11 @@ class BibleDBImpl(BibleCommon): def get_bible_text(self, bookname, chapter, sverse, everse): log.debug(u'get_bible_text %s, %s, %s, %s', bookname, chapter, sverse, everse) + #Look up book name or abbreviation + book = self.get_bible_book(bookname) + if book is not None: + bookname = book.name + log.debug(u'bookname corrected to %s' % bookname) verses = self.session.query(Verse).join(Book).filter( Book.name == bookname).filter(Verse.chapter == chapter).filter( Verse.verse>=sverse).filter(Verse.verse<=everse).order_by( From 2c1c202e5bfc94fa068510a10e494381f341bf38 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 24 Oct 2009 08:22:44 +0100 Subject: [PATCH 3/7] Fixed edit theme to preview render bug --- openlp/core/lib/rendermanager.py | 3 ++- openlp/core/ui/thememanager.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index ce43ad9c9..50abcfd07 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -65,6 +65,7 @@ class RenderManager(object): self.service_theme = u'' self.global_style = u'' self.override_background = None + self.themedata = None self.save_bg_frame = None self.override_background_changed = False @@ -130,7 +131,7 @@ class RenderManager(object): self.theme = self.service_theme else: self.theme = self.global_theme - if self.theme != self.renderer.theme_name: + if self.theme != self.renderer.theme_name or self.themedata is None: log.debug(u'theme is now %s', self.theme) self.themedata = self.theme_manager.getThemeData(self.theme) self.calculate_default( diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 84f88c726..14da059e0 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -386,7 +386,7 @@ class ThemeManager(QtGui.QWidget): newtheme.add_font(unicode(theme.FontName), unicode(theme.FontColor.name()), - unicode(theme.FontProportion * 2), u'False') + unicode(theme.FontProportion * 3), u'False') newtheme.add_font(unicode(theme.FontName), unicode(theme.FontColor.name()), unicode(12), u'False', u'footer') From 4f211d24e0d1507d2413de7fb046accd5b14393b Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 24 Oct 2009 11:04:35 +0100 Subject: [PATCH 4/7] Fix theme editor --- openlp/core/ui/amendthemeform.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/ui/amendthemeform.py b/openlp/core/ui/amendthemeform.py index 5b5e67225..c3ec0f850 100644 --- a/openlp/core/ui/amendthemeform.py +++ b/openlp/core/ui/amendthemeform.py @@ -678,6 +678,6 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): log.debug(u'Page Length area height %s , metrics %s , lines %s' % (int(self.FontMainHeightSpinBox.value()), metrics.height(), page_length )) self.FontMainLinesPageLabel.setText( - self.trUtf8(u'Slide Height is %s rows') % page_length) + self.trUtf8((u'Slide Height is %s rows') % page_length)) frame = self.thememanager.generateImage(theme) self.ThemePreview.setPixmap(QtGui.QPixmap.fromImage(frame)) From 23fd584f6351b42605723a323a7136fbd2047024 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 24 Oct 2009 14:07:41 +0100 Subject: [PATCH 5/7] Add Preview Song Editing --- openlp/core/lib/mediamanageritem.py | 1 - openlp/core/ui/slidecontroller.py | 23 ++++++++++++++++++---- openlp/plugins/songs/forms/editsongform.py | 1 + openlp/plugins/songs/lib/mediaitem.py | 16 ++++++++++++++- 4 files changed, 35 insertions(+), 6 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 81d526d33..755f3581c 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -118,7 +118,6 @@ class MediaManagerItem(QtGui.QWidget): self.requiredIcons() self.setupUi() self.retranslateUi() - #self.initialise() def requiredIcons(self): """ diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 0c3d737ad..d3e55d36d 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -89,9 +89,12 @@ class SlideController(QtGui.QWidget): self.image_list = [ self.trUtf8(u'Start Loop'), self.trUtf8(u'Stop Loop'), - #self.trUtf8(u'Loop Separator'), + u'Loop Separator', self.trUtf8(u'Image SpinBox') ] + self.song_list = [ + self.trUtf8(u'Edit Song'), + ] self.timer_id = 0 self.commandItem = None self.Panel = QtGui.QWidget(parent.ControlSplitter) @@ -161,6 +164,10 @@ class SlideController(QtGui.QWidget): self.Toolbar.addToolbarButton( self.trUtf8(u'Go Live'), u':/system/system_live.png', self.trUtf8(u'Move to live'), self.onGoLive) + self.Toolbar.addToolbarSeparator(u'Close Separator') + self.Toolbar.addToolbarButton( + self.trUtf8(u'Edit Song'), u':songs/song_edit.png', + self.trUtf8(u'Edit and re-preview Song'), self.onEditSong) if isLive: self.Toolbar.addToolbarSeparator(u'Loop Separator') self.Toolbar.addToolbarButton( @@ -216,6 +223,8 @@ class SlideController(QtGui.QWidget): Receiver().send_message(u'request_spin_delay') if isLive: self.Toolbar.makeWidgetsInvisible(self.image_list) + else: + self.Toolbar.makeWidgetsInvisible(self.song_list) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'slidecontroller_first'), self.onSlideSelectedFirst) QtCore.QObject.connect(Receiver.get_receiver(), @@ -255,7 +264,10 @@ class SlideController(QtGui.QWidget): """ Allows the Preview toolbar to be customised """ - pass + if item.name == u'Songs': + self.Toolbar.makeWidgetsVisible(self.song_list) + else: + self.Toolbar.makeWidgetsInvisible(self.song_list) def addServiceItem(self, item): """ @@ -389,13 +401,13 @@ class SlideController(QtGui.QWidget): log.info(u'Slide Rendering took %4s' % (time.time() - before)) if self.isLive: self.parent.mainDisplay.frameView(frame) - + def grabMainDisplay(self): winid = QtGui.QApplication.desktop().winId() rm = self.parent.RenderManager rect = rm.screen_list[rm.current_display][u'size'] winimg = QtGui.QPixmap.grabWindow(winid, rect.x(), rect.y(), rect.width(), rect.height()) - self.SlidePreview.setPixmap(winimg) + self.SlidePreview.setPixmap(winimg) def onSlideSelectedNext(self): """ @@ -461,6 +473,9 @@ class SlideController(QtGui.QWidget): if event.timerId() == self.timer_id: self.onSlideSelectedNext() + def onEditSong(self): + Receiver().send_message(u'edit_song') + def onGoLive(self): """ If preview copy slide item to live diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index c1f675f56..e46d2dfa2 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -410,6 +410,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.songmanager.save_song(self.song) if self.title_change: Receiver().send_message(u'load_song_list') + Receiver().send_message(u'preview_song') self.close() def processLyrics(self): diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 6718ef581..23f0ca752 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -55,6 +55,7 @@ class SongMediaItem(MediaManagerItem): self.edit_song_form = EditSongForm(self.parent.songmanager, self) self.song_maintenance_form = SongMaintenanceForm( self.parent.songmanager, self) + self.fromPreview = None def requiredIcons(self): MediaManagerItem.requiredIcons(self) @@ -121,6 +122,10 @@ class SongMediaItem(MediaManagerItem): QtCore.SIGNAL(u'load_song_list'), self.onSearchTextButtonClick) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_updated'), self.configUpdated) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'edit_song'), self.onEventEditSong) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'proview_song'), self.onPreviewClick) def configUpdated(self): self.searchAsYouType = str_to_bool( @@ -173,6 +178,10 @@ class SongMediaItem(MediaManagerItem): song_name = QtGui.QListWidgetItem(song_detail) song_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(song.id)) self.ListView.addItem(song_name) + if song.id == self.fromPreview: + self.fromPreview = 0 + self.ListView.setCurrentItem(song_name) + self.onPreviewClick() def displayResultsAuthor(self, searchresults): log.debug(u'display results Author') @@ -218,13 +227,18 @@ class SongMediaItem(MediaManagerItem): def onSongMaintenanceClick(self): self.song_maintenance_form.exec_() - def onEditClick(self): + def onEditClick(self, preview=False): item = self.ListView.currentItem() if item is not None: item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] + if preview: + self.fromPreview = item_id self.edit_song_form.loadSong(item_id) self.edit_song_form.exec_() + def onEventEditSong (self): + self.onEditClick(True) + def onDeleteClick(self): item = self.ListView.currentItem() if item is not None: From 6d5505dbc6c88e13f327e54aa67976c0e7539c07 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 24 Oct 2009 16:54:07 +0100 Subject: [PATCH 6/7] Fix Song editing --- openlp/plugins/songs/lib/mediaitem.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 23f0ca752..7a72be2a1 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -173,8 +173,8 @@ class SongMediaItem(MediaManagerItem): if author_list != u'': author_list = author_list + u', ' author_list = author_list + author.display_name - song_detail = unicode(u'%s (%s)' % \ - (unicode(song.title), unicode(author_list))) + song_detail = unicode(self.trUtf8(u'%s (%s)' % \ + (unicode(song.title), unicode(author_list)))) song_name = QtGui.QListWidgetItem(song_detail) song_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(song.id)) self.ListView.addItem(song_name) @@ -188,8 +188,8 @@ class SongMediaItem(MediaManagerItem): self.ListView.clear() for author in searchresults: for song in author.songs: - song_detail = unicode(u'%s (%s)' % \ - (unicode(author.display_name), unicode(song.title))) + song_detail = unicode(self.trUtf8(u'%s (%s)' % \ + (unicode(author.display_name), unicode(song.title)))) song_name = QtGui.QListWidgetItem(song_detail) song_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(song.id)) self.ListView.addItem(song_name) @@ -231,6 +231,7 @@ class SongMediaItem(MediaManagerItem): item = self.ListView.currentItem() if item is not None: item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] + self.fromPreview = 0 if preview: self.fromPreview = item_id self.edit_song_form.loadSong(item_id) From abd66af1c4bc0c3e930267dbf8d073c95096d6bd Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 24 Oct 2009 17:00:43 +0100 Subject: [PATCH 7/7] Fix extra utf8 strings --- openlp/core/ui/slidecontroller.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index d3e55d36d..913d60bfe 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -87,13 +87,13 @@ class SlideController(QtGui.QWidget): self.isLive = isLive self.parent = parent self.image_list = [ - self.trUtf8(u'Start Loop'), - self.trUtf8(u'Stop Loop'), + u'Start Loop', + u'Stop Loop', u'Loop Separator', - self.trUtf8(u'Image SpinBox') + u'Image SpinBox' ] self.song_list = [ - self.trUtf8(u'Edit Song'), + u'Edit Song', ] self.timer_id = 0 self.commandItem = None @@ -143,17 +143,17 @@ class SlideController(QtGui.QWidget): self.Toolbar.setSizePolicy(sizeToolbarPolicy) if self.isLive: self.Toolbar.addToolbarButton( - self.trUtf8(u'First Slide'), u':/slides/slide_first.png', + u'First Slide', u':/slides/slide_first.png', self.trUtf8(u'Move to first'), self.onSlideSelectedFirst) self.Toolbar.addToolbarButton( - self.trUtf8(u'Previous Slide'), u':/slides/slide_previous.png', + u'Previous Slide', u':/slides/slide_previous.png', self.trUtf8(u'Move to previous'), self.onSlideSelectedPrevious) self.Toolbar.addToolbarButton( - self.trUtf8(u'Next Slide'), u':/slides/slide_next.png', + u'Next Slide', u':/slides/slide_next.png', self.trUtf8(u'Move to next'), self.onSlideSelectedNext) if self.isLive: self.Toolbar.addToolbarButton( - self.trUtf8(u'Last Slide'), u':/slides/slide_last.png', + u'Last Slide', u':/slides/slide_last.png', self.trUtf8(u'Move to last'), self.onSlideSelectedLast) if self.isLive: self.Toolbar.addToolbarSeparator(u'Close Separator') @@ -162,23 +162,23 @@ class SlideController(QtGui.QWidget): if not self.isLive: self.Toolbar.addToolbarSeparator(u'Close Separator') self.Toolbar.addToolbarButton( - self.trUtf8(u'Go Live'), u':/system/system_live.png', + u'Go Live', u':/system/system_live.png', self.trUtf8(u'Move to live'), self.onGoLive) self.Toolbar.addToolbarSeparator(u'Close Separator') self.Toolbar.addToolbarButton( - self.trUtf8(u'Edit Song'), u':songs/song_edit.png', + u'Edit Song', u':songs/song_edit.png', self.trUtf8(u'Edit and re-preview Song'), self.onEditSong) if isLive: self.Toolbar.addToolbarSeparator(u'Loop Separator') self.Toolbar.addToolbarButton( - self.trUtf8(u'Start Loop'), u':/media/media_time.png', + u'Start Loop', u':/media/media_time.png', self.trUtf8(u'Start continuous loop'), self.onStartLoop) self.Toolbar.addToolbarButton( - self.trUtf8(u'Stop Loop'), u':/media/media_stop.png', + u'Stop Loop', u':/media/media_stop.png', self.trUtf8(u'Stop continuous loop'), self.onStopLoop) self.DelaySpinBox = QtGui.QSpinBox() self.Toolbar.addToolbarWidget( - self.trUtf8(u'Image SpinBox'), self.DelaySpinBox) + u'Image SpinBox', self.DelaySpinBox) self.DelaySpinBox.setSuffix(self.trUtf8(u's')) self.ControllerLayout.addWidget(self.Toolbar)