From 51d68f2066b5c83d89d14ba43a4cbbc07dc4d634 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 30 Oct 2010 10:29:59 +0100 Subject: [PATCH 1/4] Fix up file type / mime type issues --- openlp/core/ui/mainwindow.py | 12 +++++------ openlp/plugins/media/mediaplugin.py | 33 +++++++++++++++++------------ 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index a8f3547d9..cb3843efa 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -564,7 +564,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.QObject.connect(self.FileSaveAsItem, QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.onSaveService) - #i18n set signals for languages + # i18n set signals for languages QtCore.QObject.connect(self.AutoLanguageItem, QtCore.SIGNAL(u'toggled(bool)'), self.setAutoLanguage) self.LanguageGroup.triggered.connect(LanguageManager.set_language) @@ -584,15 +584,15 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.SIGNAL(u'config_screen_changed'), self.screenChanged) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'maindisplay_status_text'), self.showStatusMessage) - #warning cyclic dependency - #RenderManager needs to call ThemeManager and - #ThemeManager needs to call RenderManager + # warning cyclic dependency + # RenderManager needs to call ThemeManager and + # ThemeManager needs to call RenderManager self.RenderManager = RenderManager( self.ThemeManagerContents, self.screens) - #Define the media Dock Manager + # Define the media Dock Manager self.mediaDockManager = MediaDockManager(self.MediaToolBox) log.info(u'Load Plugins') - #make the controllers available to the plugins + # make the controllers available to the plugins self.plugin_helpers[u'preview'] = self.PreviewController self.plugin_helpers[u'live'] = self.LiveController self.plugin_helpers[u'render'] = self.RenderManager diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 5e300fcf4..7660e8514 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -25,6 +25,7 @@ ############################################################################### import logging +import mimetypes from PyQt4.phonon import Phonon @@ -45,6 +46,7 @@ class MediaPlugin(Plugin): self.dnd_id = u'Media' self.audio_list = u'' self.video_list = u'' + mimetypes.init() for mimetype in Phonon.BackendCapabilities.availableMimeTypes(): mimetype = unicode(mimetype) type = mimetype.split(u'audio/x-') @@ -60,13 +62,18 @@ class MediaPlugin(Plugin): self.video_list, mimetype = self._addToList(self.video_list, type, mimetype) - def _addToList(self, list, value, type): + def _addToList(self, list, value, mimetype): + # Is it a media type if len(value) == 2: - if list.find(value[1]) == -1: - list += u'*.%s ' % value[1] - self.serviceManager.supportedSuffixes(value[1]) - type = u'' - return list, type + extensions = mimetypes.guess_all_extensions(unicode(mimetype)) + # we have an extension + if extensions: + for extension in extensions: + if list.find(extension) == -1: + list += u'*%s ' % extension + self.serviceManager.supportedSuffixes(extension[1:]) + mimetype = u'' + return list, mimetype def getSettingsTab(self): return MediaTab(self.name) @@ -97,42 +104,42 @@ class MediaPlugin(Plugin): ## Load Button ## self.textStrings[StringContent.Load] = { u'title': translate('MediaPlugin', 'Load'), - u'tooltip': translate('MediaPlugin', + u'tooltip': translate('MediaPlugin', 'Load a new Media') } ## New Button ## self.textStrings[StringContent.New] = { u'title': translate('MediaPlugin', 'Add'), - u'tooltip': translate('MediaPlugin', + u'tooltip': translate('MediaPlugin', 'Add a new Media') } ## Edit Button ## self.textStrings[StringContent.Edit] = { u'title': translate('MediaPlugin', 'Edit'), - u'tooltip': translate('MediaPlugin', + u'tooltip': translate('MediaPlugin', 'Edit the selected Media') } ## Delete Button ## self.textStrings[StringContent.Delete] = { u'title': translate('MediaPlugin', 'Delete'), - u'tooltip': translate('MediaPlugin', + u'tooltip': translate('MediaPlugin', 'Delete the selected Media') } ## Preview ## self.textStrings[StringContent.Preview] = { u'title': translate('MediaPlugin', 'Preview'), - u'tooltip': translate('MediaPlugin', + u'tooltip': translate('MediaPlugin', 'Preview the selected Media') } ## Live Button ## self.textStrings[StringContent.Live] = { u'title': translate('MediaPlugin', 'Live'), - u'tooltip': translate('MediaPlugin', + u'tooltip': translate('MediaPlugin', 'Send the selected Media live') } ## Add to service Button ## self.textStrings[StringContent.Service] = { u'title': translate('MediaPlugin', 'Service'), - u'tooltip': translate('MediaPlugin', + u'tooltip': translate('MediaPlugin', 'Add the selected Media to the service') } From 206eb1006e3141a2583a727f2ed33ae06f46ab53 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 1 Nov 2010 19:22:00 +0000 Subject: [PATCH 2/4] Fix preview bug --- openlp/core/ui/slidecontroller.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 59ae353cc..f4858f72e 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -794,10 +794,11 @@ class SlideController(QtGui.QWidget): row = self.PreviewListWidget.currentRow() self.selectedRow = 0 if row > -1 and row < self.PreviewListWidget.rowCount(): - if self.serviceItem.is_command() and self.isLive: - Receiver.send_message(u'%s_slide' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive, row]) - self.updatePreview() + if self.serviceItem.is_command(): + if self.isLive: + Receiver.send_message(u'%s_slide' % self.serviceItem.name.lower(), + [self.serviceItem, self.isLive, row]) + self.updatePreview() else: toDisplay = self.serviceItem.get_rendered_frame(row) if self.serviceItem.is_text(): From f7ddb507e842bc66203c06d45826bc4c84552099 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 1 Nov 2010 19:33:33 +0000 Subject: [PATCH 3/4] Fix renderer --- openlp/core/lib/renderer.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 23d0623c5..2a8e46dca 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -116,18 +116,19 @@ class Renderer(object): html_text = u'' styled_text = u'' for line in text: - styled_line = expand_tags(line) - if styled_text: - styled_text += line_end + styled_line + styled_line = expand_tags(line) + line_end + styled_text += styled_line html = self.page_shell + styled_text + u'' self.web.setHtml(html) # Text too long so go to next page if self.web_frame.contentsSize().height() > self.page_height: + if html_text.endswith(u'
'): + html_text = html_text[:len(html_text)-4] formatted.append(html_text) html_text = u'' styled_text = styled_line html_text += line + line_end - if line_break: + if html_text.endswith(u'
'): html_text = html_text[:len(html_text)-4] formatted.append(html_text) log.debug(u'format_slide - End') From 6cf851022e5949098489e344fca36cf3f1ee735c Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 3 Nov 2010 17:33:08 +0000 Subject: [PATCH 4/4] Update preview --- openlp/core/ui/slidecontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index f4858f72e..e4b4733a2 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -798,7 +798,7 @@ class SlideController(QtGui.QWidget): if self.isLive: Receiver.send_message(u'%s_slide' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive, row]) - self.updatePreview() + self.updatePreview() else: toDisplay = self.serviceItem.get_rendered_frame(row) if self.serviceItem.is_text():