diff --git a/openlp/core/common/__init__.py b/openlp/core/common/__init__.py index 96e1181db..1f1ddb1d1 100644 --- a/openlp/core/common/__init__.py +++ b/openlp/core/common/__init__.py @@ -400,7 +400,7 @@ def get_images_filter(): global IMAGES_FILTER if not IMAGES_FILTER: log.debug('Generating images filter.') - formats = list(map(bytes.decode, list(map(bytes, QtGui.QImageReader.supportedImageFormats())))) + formats = list(map(bytes.decode, map(bytes, QtGui.QImageReader.supportedImageFormats()))) visible_formats = '(*.{text})'.format(text='; *.'.join(formats)) actual_formats = '(*.{text})'.format(text=' *.'.join(formats)) IMAGES_FILTER = '{text} {visible} {actual}'.format(text=translate('OpenLP', 'Image Files'), diff --git a/openlp/core/common/actions.py b/openlp/core/common/actions.py index 6d3cda905..8681888e8 100644 --- a/openlp/core/common/actions.py +++ b/openlp/core/common/actions.py @@ -260,7 +260,7 @@ class ActionList(object): return # We have to do this to ensure that the loaded shortcut list e. g. STRG+O (German) is converted to CTRL+O, # which is only done when we convert the strings in this way (QKeySequencet -> uncode). - shortcuts = list(map(QtGui.QKeySequence.toString, list(map(QtGui.QKeySequence, shortcuts)))) + shortcuts = list(map(QtGui.QKeySequence.toString, map(QtGui.QKeySequence, shortcuts))) # Check the alternate shortcut first, to avoid problems when the alternate shortcut becomes the primary shortcut # after removing the (initial) primary shortcut due to conflicts. if len(shortcuts) == 2: diff --git a/openlp/core/display/html/display.js b/openlp/core/display/html/display.js index e198eeee6..cc44b9171 100644 --- a/openlp/core/display/html/display.js +++ b/openlp/core/display/html/display.js @@ -281,8 +281,9 @@ var Display = { * Checks if the present slide content fits within the slide */ doesContentFit: function () { - console.debug("scrollHeight: " + $(".slides")[0].scrollHeight + ", clientHeight: " + $(".slides")[0].clientHeight); - return $(".slides")[0].clientHeight >= $(".slides")[0].scrollHeight; + var currSlide = $(".slides")[0]; + console.debug("scrollHeight: " + currSlide.scrollHeight + ", clientHeight: " + currSlide.clientHeight); + return currSlide.clientHeight >= currSlide.scrollHeight; }, /** * Generate the OpenLP startup splashscreen @@ -333,7 +334,7 @@ var Display = { /** * Set fullscreen image from base64 data * @param {string} bg_color - The background color - * @param {string} image - Path to the image + * @param {string} image_data - base64 encoded image data */ setFullscreenImageFromData: function(bg_color, image_data) { Display.clearSlides(); @@ -372,7 +373,6 @@ var Display = { * @param {string} verse - The verse number, e.g. "v1" * @param {string} text - The HTML for the verse, e.g. "line1
line2" * @param {string} footer_text - The HTML for the footer" - * @param {bool} [reinit=true] - Re-initialize Reveal. Defaults to true. */ addTextSlide: function (verse, text, footer_text) { var html = _prepareText(text); @@ -476,7 +476,8 @@ var Display = { * Play a video */ playVideo: function () { - if ($("#video").length == 1) { + var videoElem = $("#video"); + if (videoElem.length == 1) { $("#video")[0].play(); } }, @@ -484,17 +485,19 @@ var Display = { * Pause a video */ pauseVideo: function () { - if ($("#video").length == 1) { - $("#video")[0].pause(); + var videoElem = $("#video"); + if ($videoElem.length == 1) { + videoElem[0].pause(); } }, /** * Stop a video */ stopVideo: function () { - if ($("#video").length == 1) { - $("#video")[0].pause(); - $("#video")[0].currentTime = 0.0; + var videoElem = $("#video"); + if (videoElem.length == 1) { + videoElem[0].pause(); + videoElem[0].currentTime = 0.0; } }, /** @@ -502,8 +505,9 @@ var Display = { * @param seconds The position in seconds to seek to */ seekVideo: function (seconds) { - if ($("#video").length == 1) { - $("#video")[0].currentTime = seconds; + var videoElem = $("#video"); + if (videoElem.length == 1) { + videoElem[0].currentTime = seconds; } }, /** @@ -511,8 +515,9 @@ var Display = { * @param rate A Double of the rate. 1.0 => 100% speed, 0.75 => 75% speed, 1.25 => 125% speed, etc. */ setPlaybackRate: function (rate) { - if ($("#video").length == 1) { - $("#video")[0].playbackRate = rate; + var videoElem = $("#video"); + if (videoElem.length == 1) { + videoElem[0].playbackRate = rate; } }, /** @@ -520,24 +525,27 @@ var Display = { * @param level The volume level from 0 to 100. */ setVideoVolume: function (level) { - if ($("#video").length == 1) { - $("#video")[0].volume = level / 100.0; + var videoElem = $("#video"); + if (videoElem.length == 1) { + videoElem[0].volume = level / 100.0; } }, /** * Mute the volume */ toggleVideoMute: function () { - if ($("#video").length == 1) { - $("#video")[0].muted = !$("#video")[0].muted; + var videoElem = $("#video"); + if (videoElem.length == 1) { + videoElem[0].muted = !videoElem[0].muted; } }, /** * Clear the background audio playlist */ clearPlaylist: function () { - if ($("#background-audio").length == 1) { - var audio = $("#background-audio")[0]; + var backgroundAudoElem = $("#background-audio"); + if (backgroundAudoElem.length == 1) { + var audio = backgroundAudoElem[0]; /* audio.playList */ } }, @@ -619,7 +627,6 @@ var Display = { }, setTheme: function (theme) { this._theme = theme; - var slidesDiv = $(".slides") // Set the background var globalBackground = $("#global-background")[0]; var backgroundStyle = {}; @@ -721,6 +728,7 @@ var Display = { for (var key in mainStyle) { if (mainStyle.hasOwnProperty(key)) { slidesDiv.style.setProperty(key, mainStyle[key]); + console.log(slidesDiv.style.getPropertyValue("font-family")); } } // Set up the footer diff --git a/openlp/core/display/render.py b/openlp/core/display/render.py index 1097b5ac0..b7477db6b 100644 --- a/openlp/core/display/render.py +++ b/openlp/core/display/render.py @@ -47,7 +47,7 @@ log = logging.getLogger(__name__) SLIM_CHARS = 'fiíIÍjlĺľrtť.,;/ ()|"\'!:\\' CHORD_LINE_MATCH = re.compile(r'\[(.*?)\]([\u0080-\uFFFF,\w]*)' - r'([\u0080-\uFFFF,\w,\s,\.,\,,\!,\?,\;,\:,\|,\",\',\-,\_]*)(\Z)?') + r'([\u0080-\uFFFF\w\s\.\,\!\?\;\:\|\"\'\-\_]*)(\Z)?') CHORD_TEMPLATE = '{chord}' FIRST_CHORD_TEMPLATE = '{chord}' CHORD_LINE_TEMPLATE = '{chord}{tail}{whitespace}{remainder}' diff --git a/openlp/core/lib/theme.py b/openlp/core/lib/theme.py index bc5ba69b8..1a1f7f1cb 100644 --- a/openlp/core/lib/theme.py +++ b/openlp/core/lib/theme.py @@ -170,6 +170,7 @@ class Theme(object): jsn = get_text_file_string(json_path) self.load_theme(jsn) self.background_filename = None + self.version = 2 def expand_json(self, var, prev=None): """ diff --git a/openlp/plugins/songs/lib/importers/cclifile.py b/openlp/plugins/songs/lib/importers/cclifile.py index 48d536265..72c2eafec 100644 --- a/openlp/plugins/songs/lib/importers/cclifile.py +++ b/openlp/plugins/songs/lib/importers/cclifile.py @@ -146,7 +146,9 @@ class CCLIFileImport(SongImport): """ log.debug('USR file text: {text}'.format(text=text_list)) song_author = '' + song_fields = '' song_topics = '' + song_words = '' for line in text_list: if line.startswith('[S '): ccli, line = line.split(']', 1) diff --git a/openlp/plugins/songs/lib/importers/dreambeam.py b/openlp/plugins/songs/lib/importers/dreambeam.py index e591fe379..8e76e2f0c 100644 --- a/openlp/plugins/songs/lib/importers/dreambeam.py +++ b/openlp/plugins/songs/lib/importers/dreambeam.py @@ -87,6 +87,7 @@ class DreamBeamImport(SongImport): if self.stop_import_flag: return self.set_defaults() + author_copyright = '' parser = etree.XMLParser(remove_blank_text=True) try: with file_path.open('r') as xml_file: @@ -142,7 +143,7 @@ class DreamBeamImport(SongImport): author_copyright = song_xml.Text2.Text.text if author_copyright: author_copyright = str(author_copyright) - if author_copyright.find(str(SongStrings.CopyrightSymbol)) >= 0: + if author_copyright.find(SongStrings.CopyrightSymbol) >= 0: self.add_copyright(author_copyright) else: self.parse_author(author_copyright) diff --git a/openlp/plugins/songs/lib/importers/easyslides.py b/openlp/plugins/songs/lib/importers/easyslides.py index 7fd5b25c1..7f03afb5a 100644 --- a/openlp/plugins/songs/lib/importers/easyslides.py +++ b/openlp/plugins/songs/lib/importers/easyslides.py @@ -137,9 +137,11 @@ class EasySlidesImport(SongImport): except UnicodeDecodeError: log.exception('Unicode decode error while decoding Contents') self._success = False + return except AttributeError: log.exception('no Contents') self._success = False + return lines = lyrics.split('\n') # we go over all lines first, to determine information, # which tells us how to parse verses later diff --git a/openlp/plugins/songs/lib/importers/easyworship.py b/openlp/plugins/songs/lib/importers/easyworship.py index 2061195d3..eeb9feb11 100644 --- a/openlp/plugins/songs/lib/importers/easyworship.py +++ b/openlp/plugins/songs/lib/importers/easyworship.py @@ -268,13 +268,13 @@ class EasyWorshipSongImport(SongImport): self.db_set_record_struct(field_descriptions) # Pick out the field description indexes we will need try: - success = True fi_title = self.db_find_field(b'Title') fi_author = self.db_find_field(b'Author') fi_copy = self.db_find_field(b'Copyright') fi_admin = self.db_find_field(b'Administrator') fi_words = self.db_find_field(b'Words') fi_ccli = self.db_find_field(b'Song Number') + success = True except IndexError: # This is the wrong table success = False