diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index e3618c7a1..1f3fcd4b8 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -27,6 +27,7 @@ The :mod:`lib` module contains most of the components and libraries that make OpenLP work. """ import logging +import os.path import types from PyQt4 import QtCore, QtGui @@ -49,26 +50,28 @@ def translate(context, text): return QtGui.QApplication.translate( context, text, None, QtGui.QApplication.UnicodeUTF8) -def file_to_xml(xmlfile): +def get_text_file_string(text_file): """ - Open a file and return the contents of the file. + Open a file and return the contents of the file. If the supplied file name + is not a file then the function returns False. If there is an error + loading the file then the function will return None. - ``xmlfile`` + ``textfile`` The name of the file. """ - file = None - xml = None + if not os.path.isfile(text_file): + return False + file_handle = None + content_string = None try: - file = open(xmlfile, u'r') - xml = file.read() + file_handle = open(text_file, u'r') + content_string = file_handle.read() except IOError: - #This may not be an error as this is also used to check - #that a file exist - log.error(u'Failed to open XML file %s' % xmlfile) + log.error(u'Failed to open text file %s' % text_file) finally: - if file: - file.close() - return xml + if file_handle: + file_handle.close() + return content_string def str_to_bool(stringvalue): """ @@ -152,5 +155,5 @@ from rendermanager import RenderManager from mediamanageritem import MediaManagerItem from baselistwithdnd import BaseListWithDnD -__all__ = [ 'translate', 'file_to_xml', 'str_to_bool', - 'contextMenuAction', 'contextMenuSeparator','ServiceItem'] +__all__ = [ 'translate', 'get_text_file_string', 'str_to_bool', + 'contextMenuAction', 'contextMenuSeparator', 'ServiceItem'] diff --git a/openlp/core/ui/amendthemeform.py b/openlp/core/ui/amendthemeform.py index 4e5b9cd9d..652b26284 100644 --- a/openlp/core/ui/amendthemeform.py +++ b/openlp/core/ui/amendthemeform.py @@ -184,7 +184,7 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): def loadTheme(self, theme): log.debug(u'LoadTheme %s', theme) - self.theme = self.thememanager.getThemeData(theme) + self.theme = theme # Stop the initial screen setup generating 1 preview per field! self.allowPreview = False self.paintUi(self.theme) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 5fea3268e..75e993195 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -24,7 +24,6 @@ import logging import os -import time from PyQt4 import QtCore, QtGui from PyQt4.phonon import Phonon @@ -279,6 +278,7 @@ class MainDisplay(DisplayWidget): self.mediaLoaded = True self.display.hide() self.video.setFullScreen(True) + self.video.setVisible(True) self.mediaObject.play() if self.primary: self.setVisible(True) @@ -290,7 +290,6 @@ class MainDisplay(DisplayWidget): def onMediaStop(self): log.debug(u'Media stopped by user') self.mediaObject.stop() - self.display.show() def onMediaFinish(self): log.debug(u'Reached end of media playlist') diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 3e438d918..89616130e 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -23,7 +23,6 @@ ############################################################################### import os -import string import logging import cPickle import zipfile @@ -460,7 +459,7 @@ class ServiceManager(QtGui.QWidget): def onQuickSaveService(self): self.onSaveService(True) - def onLoadService(self, lastService = False): + def onLoadService(self, lastService=False): """ Load an existing service from disk and rebuild the serviceitems. All files retrieved from the zip file are placed in a temporary directory @@ -481,11 +480,8 @@ class ServiceManager(QtGui.QWidget): try: zip = zipfile.ZipFile(unicode(filename)) for file in zip.namelist(): - if os.name == u'nt': - winfile = string.replace(file, '/', os.path.sep) - names = winfile.split(os.path.sep) - else: - names = file.split(os.path.sep) + osfile = unicode(QtCore.QDir.toNativeSeparators(file)) + names = osfile.split(os.path.sep) file_to = os.path.join(self.servicePath, names[len(names) - 1]) f = open(file_to, u'wb') @@ -501,7 +497,7 @@ class ServiceManager(QtGui.QWidget): for item in items: serviceitem = ServiceItem() serviceitem.RenderManager = self.parent.RenderManager - serviceitem.set_from_service(item, self.servicePath ) + serviceitem.set_from_service(item, self.servicePath) self.addServiceItem(serviceitem) try: if os.path.isfile(p_file): diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 54fdf23ea..8208056f7 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -28,8 +28,7 @@ import os from PyQt4 import QtCore, QtGui from PyQt4.phonon import Phonon -from openlp.core.lib import OpenLPToolbar, Receiver, ServiceItemType, \ - str_to_bool, PluginConfig +from openlp.core.lib import OpenLPToolbar, Receiver, str_to_bool, PluginConfig class SlideList(QtGui.QTableWidget): """ @@ -407,7 +406,7 @@ class SlideController(QtGui.QWidget): def addServiceManagerItem(self, item, slideno): """ Method to install the service item into the controller and - request the correct the toolbar of the plugin + request the correct toolbar for the plugin. Called by ServiceManager """ log.debug(u'addServiceManagerItem') diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 51f1f2425..0f333bf04 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -33,7 +33,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.ui import AmendThemeForm from openlp.core.theme import Theme from openlp.core.lib import PluginConfig, OpenLPToolbar, ThemeXML, \ - str_to_bool, file_to_xml, buildIcon, Receiver, contextMenuAction, \ + str_to_bool, get_text_file_string, buildIcon, Receiver, contextMenuAction, \ contextMenuSeparator from openlp.core.utils import ConfigHelper @@ -150,15 +150,17 @@ class ThemeManager(QtGui.QWidget): self.pushThemes() def onAddTheme(self): - self.amendThemeForm.loadTheme(None) + theme = self.createThemeFromXml(self.baseTheme(), self.path) + self.amendThemeForm.loadTheme(theme) self.saveThemeName = u'' self.amendThemeForm.exec_() def onEditTheme(self): item = self.ThemeListWidget.currentItem() if item: - self.amendThemeForm.loadTheme( + theme = self.getThemeData( unicode(item.data(QtCore.Qt.UserRole).toString())) + self.amendThemeForm.loadTheme(theme) self.saveThemeName = unicode( item.data(QtCore.Qt.UserRole).toString()) self.amendThemeForm.exec_() @@ -265,7 +267,7 @@ class ThemeManager(QtGui.QWidget): self.pushThemes() def pushThemes(self): - Receiver().send_message(u'update_themes', self.getThemes() ) + Receiver().send_message(u'update_themes', self.getThemes()) def getThemes(self): return self.themelist @@ -274,7 +276,7 @@ class ThemeManager(QtGui.QWidget): log.debug(u'getthemedata for theme %s', themename) xml_file = os.path.join(self.path, unicode(themename), unicode(themename) + u'.xml') - xml = file_to_xml(xml_file) + xml = get_text_file_string(xml_file) if not xml: xml = self.baseTheme() return self.createThemeFromXml(xml, self.path) @@ -501,6 +503,8 @@ class ThemeManager(QtGui.QWidget): theme.display_wrapStyle = theme.display_wrapStyle.strip() theme.font_footer_color = theme.font_footer_color.strip() theme.font_footer_height = int(theme.font_footer_height.strip()) + theme.font_footer_indentation = \ + int(theme.font_footer_indentation.strip()) theme.font_footer_italics = str_to_bool(theme.font_footer_italics) theme.font_footer_name = theme.font_footer_name.strip() #theme.font_footer_override diff --git a/openlp/core/utils/registry.py b/openlp/core/utils/registry.py index 8fa0bb6a8..e56d939ef 100644 --- a/openlp/core/utils/registry.py +++ b/openlp/core/utils/registry.py @@ -101,10 +101,10 @@ class Registry(object): return False def _load(self): + if not os.path.isfile(self.file_name): + return False file_handle = None try: - if not os.path.isfile(self.file_name): - return False file_handle = open(self.file_name, u'r') self.config.readfp(file_handle) return True diff --git a/version.txt b/version.txt index 7a82f504c..5c1a24345 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.9.0-668 +1.9.0-670