Hide transpose buttons if chords are disabled, and check for invalid chords on verseedit close.

This commit is contained in:
Tomas Groth 2017-04-20 22:23:17 +02:00
parent 6e9520c8b0
commit 536a919675
2 changed files with 41 additions and 20 deletions

View File

@ -25,6 +25,7 @@ from PyQt5 import QtWidgets
from openlp.core.ui.lib import SpellTextEdit
from openlp.core.lib import build_icon, translate
from openlp.core.lib.ui import UiStrings, create_button_box
from openlp.core.common import Settings
from openlp.plugins.songs.lib import VerseType
@ -63,6 +64,7 @@ class Ui_EditVerseDialog(object):
self.verse_type_layout.addWidget(self.insert_button)
self.verse_type_layout.addStretch()
self.dialog_layout.addLayout(self.verse_type_layout)
if Settings().value('songs/enable chords'):
self.transpose_layout = QtWidgets.QHBoxLayout()
self.transpose_layout.setObjectName('transpose_layout')
self.transpose_label = QtWidgets.QLabel(edit_verse_dialog)
@ -96,6 +98,7 @@ class Ui_EditVerseDialog(object):
self.insert_button.setText(translate('SongsPlugin.EditVerseForm', '&Insert'))
self.insert_button.setToolTip(translate('SongsPlugin.EditVerseForm',
'Split a slide into two by inserting a verse splitter.'))
if Settings().value('songs/enable chords'):
self.transpose_label.setText(translate('SongsPlugin.EditVerseForm', 'Transpose:'))
self.transpose_up_button.setText(translate('SongsPlugin.EditVerseForm', 'Up'))
self.transpose_down_button.setText(translate('SongsPlugin.EditVerseForm', 'Down'))

View File

@ -27,7 +27,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
from openlp.plugins.songs.lib import VerseType, transpose_lyrics
from openlp.core.lib.ui import critical_error_message_box
from openlp.core.common import translate
from openlp.core.common import translate, Settings
from .editversedialog import Ui_EditVerseDialog
log = logging.getLogger(__name__)
@ -50,6 +50,7 @@ class EditVerseForm(QtWidgets.QDialog, Ui_EditVerseDialog):
self.split_button.clicked.connect(self.on_split_button_clicked)
self.verse_text_edit.cursorPositionChanged.connect(self.on_cursor_position_changed)
self.verse_type_combo_box.currentIndexChanged.connect(self.on_verse_type_combo_box_changed)
if Settings().value('songs/enable chords'):
self.transpose_down_button.clicked.connect(self.on_transepose_down_button_clicked)
self.transpose_up_button.clicked.connect(self.on_transepose_up_button_clicked)
@ -208,3 +209,20 @@ class EditVerseForm(QtWidgets.QDialog, Ui_EditVerseDialog):
if not text.startswith('---['):
text = '---[{tag}:1]---\n{text}'.format(tag=VerseType.translated_names[VerseType.Verse], text=text)
return text
def accept(self):
"""
Test if any invalid chords has been entered before closing the verse editor
"""
if Settings().value('songs/enable chords'):
try:
transposed_lyrics = transpose_lyrics(self.verse_text_edit.toPlainText(), 1)
super(EditVerseForm, self).accept()
except ValueError as ve:
# Transposing failed
critical_error_message_box(title=translate('SongsPlugin.EditVerseForm', 'Invalid Chord'),
message=translate('SongsPlugin.EditVerseForm',
'An invalid chord was detected:\n{err_msg}'
.format(err_msg=ve)))
else:
super(EditVerseForm, self).accept()