diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index b693300e7..e3d389c8a 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -258,11 +258,13 @@ class EditSongForm(QtWidgets.QDialog, Ui_EditSongDialog, RegistryProperties): if not self._validate_tags(tags): misplaced_tags.append('{field1} {field2}'.format(field1=VerseType.translated_name(field[0]), field2=field[1:])) - if Registry().get('settings').value('songs/enable chords') and not chords[0].startswith("="): + if Registry().get('settings').value('songs/enable chords') and len(chords) > 0 and \ + not chords[0].startswith("="): QtWidgets.QMessageBox.warning(self, translate('SongsPlugin.EditVerseForm', 'Song key warning'), translate('SongsPlugin.EditVerseForm', 'No song key is present or song key ' 'is not the first chord.\nFor optimal chord experience, please, ' - 'include a song key\nbefore any chord. Ex.: [=G]')) + 'include a song key\nbefore any chord. Ex.: [=G]'), + QtWidgets.QMessageBox.checkBox) if misplaced_tags: critical_error_message_box( message=translate('SongsPlugin.EditSongForm', diff --git a/openlp/plugins/songs/forms/editverseform.py b/openlp/plugins/songs/forms/editverseform.py index 43a0334be..4163caa0f 100644 --- a/openlp/plugins/songs/forms/editverseform.py +++ b/openlp/plugins/songs/forms/editverseform.py @@ -124,14 +124,15 @@ class EditVerseForm(QtWidgets.QDialog, Ui_EditVerseDialog): try: lyrics_stripped = re.sub(r'\[---\]', "\n", re.sub(r'---\[.*?\]---', "\n", re.sub(r'\[--}{--\]', "\n", self.verse_text_edit.toPlainText()))) - transposed_lyrics = transpose_lyrics(self.verse_text_edit.toPlainText(), 1) - self.verse_text_edit.setPlainText(transposed_lyrics) - if not re.search(r'\[(.*?)\]', lyrics_stripped)[1].startswith("="): + chords = re.search(r'\[(.*?)\]', lyrics_stripped) + if chords and len(chords) > 0 and not chords[1].startswith("="): QtWidgets.QMessageBox.warning(self, translate('SongsPlugin.EditVerseForm', 'Song key warning'), translate('SongsPlugin.EditVerseForm', 'No song key is present or song key is not the first ' 'chord.\nFor optimal chord experience, please, include a ' 'song key\nbefore any chord. Ex.: [=G]')) + transposed_lyrics = transpose_lyrics(self.verse_text_edit.toPlainText(), 1) + self.verse_text_edit.setPlainText(transposed_lyrics) except KeyError as ke: # Transposing failed critical_error_message_box(title=translate('SongsPlugin.EditVerseForm', 'Transposing failed'), @@ -149,14 +150,15 @@ class EditVerseForm(QtWidgets.QDialog, Ui_EditVerseDialog): try: lyrics_stripped = re.sub(r'\[---\]', "\n", re.sub(r'---\[.*?\]---', "\n", re.sub(r'\[--}{--\]', "\n", self.verse_text_edit.toPlainText()))) - transposed_lyrics = transpose_lyrics(self.verse_text_edit.toPlainText(), -1) - self.verse_text_edit.setPlainText(transposed_lyrics) - if not re.search(r'\[(.*?)\]', lyrics_stripped)[1].startswith("="): + chords = re.search(r'\[(.*?)\]', lyrics_stripped) + if chords and len(chords) > 0 and not chords[1].startswith("="): QtWidgets.QMessageBox.warning(self, translate('SongsPlugin.EditVerseForm', 'Song key warning'), translate('SongsPlugin.EditVerseForm', 'No song key is present or song key is not the first ' 'chord.\nFor optimal chord experience, please, include a ' 'song key\nbefore any chord. Ex.: [=G]')) + transposed_lyrics = transpose_lyrics(self.verse_text_edit.toPlainText(), -1) + self.verse_text_edit.setPlainText(transposed_lyrics) except KeyError as ke: # Transposing failed critical_error_message_box(title=translate('SongsPlugin.EditVerseForm', 'Transposing failed'),