forked from openlp/openlp
Hide transpose buttons if chords are disabled, and check for invalid chords on verseedit close.
This commit is contained in:
parent
6e9520c8b0
commit
536a919675
|
@ -25,6 +25,7 @@ from PyQt5 import QtWidgets
|
||||||
from openlp.core.ui.lib import SpellTextEdit
|
from openlp.core.ui.lib import SpellTextEdit
|
||||||
from openlp.core.lib import build_icon, translate
|
from openlp.core.lib import build_icon, translate
|
||||||
from openlp.core.lib.ui import UiStrings, create_button_box
|
from openlp.core.lib.ui import UiStrings, create_button_box
|
||||||
|
from openlp.core.common import Settings
|
||||||
from openlp.plugins.songs.lib import VerseType
|
from openlp.plugins.songs.lib import VerseType
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,20 +64,21 @@ class Ui_EditVerseDialog(object):
|
||||||
self.verse_type_layout.addWidget(self.insert_button)
|
self.verse_type_layout.addWidget(self.insert_button)
|
||||||
self.verse_type_layout.addStretch()
|
self.verse_type_layout.addStretch()
|
||||||
self.dialog_layout.addLayout(self.verse_type_layout)
|
self.dialog_layout.addLayout(self.verse_type_layout)
|
||||||
self.transpose_layout = QtWidgets.QHBoxLayout()
|
if Settings().value('songs/enable chords'):
|
||||||
self.transpose_layout.setObjectName('transpose_layout')
|
self.transpose_layout = QtWidgets.QHBoxLayout()
|
||||||
self.transpose_label = QtWidgets.QLabel(edit_verse_dialog)
|
self.transpose_layout.setObjectName('transpose_layout')
|
||||||
self.transpose_label.setObjectName('transpose_label')
|
self.transpose_label = QtWidgets.QLabel(edit_verse_dialog)
|
||||||
self.transpose_layout.addWidget(self.transpose_label)
|
self.transpose_label.setObjectName('transpose_label')
|
||||||
self.transpose_up_button = QtWidgets.QPushButton(edit_verse_dialog)
|
self.transpose_layout.addWidget(self.transpose_label)
|
||||||
self.transpose_up_button.setIcon(build_icon(':/services/service_up.png'))
|
self.transpose_up_button = QtWidgets.QPushButton(edit_verse_dialog)
|
||||||
self.transpose_up_button.setObjectName('transpose_up')
|
self.transpose_up_button.setIcon(build_icon(':/services/service_up.png'))
|
||||||
self.transpose_layout.addWidget(self.transpose_up_button)
|
self.transpose_up_button.setObjectName('transpose_up')
|
||||||
self.transpose_down_button = QtWidgets.QPushButton(edit_verse_dialog)
|
self.transpose_layout.addWidget(self.transpose_up_button)
|
||||||
self.transpose_down_button.setIcon(build_icon(':/services/service_down.png'))
|
self.transpose_down_button = QtWidgets.QPushButton(edit_verse_dialog)
|
||||||
self.transpose_down_button.setObjectName('transpose_down')
|
self.transpose_down_button.setIcon(build_icon(':/services/service_down.png'))
|
||||||
self.transpose_layout.addWidget(self.transpose_down_button)
|
self.transpose_down_button.setObjectName('transpose_down')
|
||||||
self.dialog_layout.addLayout(self.transpose_layout)
|
self.transpose_layout.addWidget(self.transpose_down_button)
|
||||||
|
self.dialog_layout.addLayout(self.transpose_layout)
|
||||||
self.button_box = create_button_box(edit_verse_dialog, 'button_box', ['cancel', 'ok'])
|
self.button_box = create_button_box(edit_verse_dialog, 'button_box', ['cancel', 'ok'])
|
||||||
self.dialog_layout.addWidget(self.button_box)
|
self.dialog_layout.addWidget(self.button_box)
|
||||||
self.retranslateUi(edit_verse_dialog)
|
self.retranslateUi(edit_verse_dialog)
|
||||||
|
@ -96,6 +98,7 @@ class Ui_EditVerseDialog(object):
|
||||||
self.insert_button.setText(translate('SongsPlugin.EditVerseForm', '&Insert'))
|
self.insert_button.setText(translate('SongsPlugin.EditVerseForm', '&Insert'))
|
||||||
self.insert_button.setToolTip(translate('SongsPlugin.EditVerseForm',
|
self.insert_button.setToolTip(translate('SongsPlugin.EditVerseForm',
|
||||||
'Split a slide into two by inserting a verse splitter.'))
|
'Split a slide into two by inserting a verse splitter.'))
|
||||||
self.transpose_label.setText(translate('SongsPlugin.EditVerseForm', 'Transpose:'))
|
if Settings().value('songs/enable chords'):
|
||||||
self.transpose_up_button.setText(translate('SongsPlugin.EditVerseForm', 'Up'))
|
self.transpose_label.setText(translate('SongsPlugin.EditVerseForm', 'Transpose:'))
|
||||||
self.transpose_down_button.setText(translate('SongsPlugin.EditVerseForm', 'Down'))
|
self.transpose_up_button.setText(translate('SongsPlugin.EditVerseForm', 'Up'))
|
||||||
|
self.transpose_down_button.setText(translate('SongsPlugin.EditVerseForm', 'Down'))
|
||||||
|
|
|
@ -27,7 +27,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
|
|
||||||
from openlp.plugins.songs.lib import VerseType, transpose_lyrics
|
from openlp.plugins.songs.lib import VerseType, transpose_lyrics
|
||||||
from openlp.core.lib.ui import critical_error_message_box
|
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
|
from .editversedialog import Ui_EditVerseDialog
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
@ -50,8 +50,9 @@ class EditVerseForm(QtWidgets.QDialog, Ui_EditVerseDialog):
|
||||||
self.split_button.clicked.connect(self.on_split_button_clicked)
|
self.split_button.clicked.connect(self.on_split_button_clicked)
|
||||||
self.verse_text_edit.cursorPositionChanged.connect(self.on_cursor_position_changed)
|
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)
|
self.verse_type_combo_box.currentIndexChanged.connect(self.on_verse_type_combo_box_changed)
|
||||||
self.transpose_down_button.clicked.connect(self.on_transepose_down_button_clicked)
|
if Settings().value('songs/enable chords'):
|
||||||
self.transpose_up_button.clicked.connect(self.on_transepose_up_button_clicked)
|
self.transpose_down_button.clicked.connect(self.on_transepose_down_button_clicked)
|
||||||
|
self.transpose_up_button.clicked.connect(self.on_transepose_up_button_clicked)
|
||||||
|
|
||||||
def insert_verse(self, verse_tag, verse_num=1):
|
def insert_verse(self, verse_tag, verse_num=1):
|
||||||
"""
|
"""
|
||||||
|
@ -208,3 +209,20 @@ class EditVerseForm(QtWidgets.QDialog, Ui_EditVerseDialog):
|
||||||
if not text.startswith('---['):
|
if not text.startswith('---['):
|
||||||
text = '---[{tag}:1]---\n{text}'.format(tag=VerseType.translated_names[VerseType.Verse], text=text)
|
text = '---[{tag}:1]---\n{text}'.format(tag=VerseType.translated_names[VerseType.Verse], text=text)
|
||||||
return 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()
|
||||||
|
|
Loading…
Reference in New Issue