From 7abef1df22f4d0beccb06d4c5306b1bc967b8820 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 27 Aug 2017 18:13:14 +0100 Subject: [PATCH] fix lables and render bug --- openlp/core/common/uistrings.py | 2 +- openlp/core/lib/renderer.py | 3 +++ openlp/core/ui/lib/listpreviewwidget.py | 10 ++++---- openlp/plugins/songs/forms/editversedialog.py | 24 +++++++++---------- openlp/plugins/songs/forms/editverseform.py | 8 +++---- openlp/plugins/songs/lib/mediaitem.py | 4 ++-- .../songs/test_editverseform.py | 4 ++-- 7 files changed, 29 insertions(+), 26 deletions(-) diff --git a/openlp/core/common/uistrings.py b/openlp/core/common/uistrings.py index 02937351d..b599c3ea0 100644 --- a/openlp/core/common/uistrings.py +++ b/openlp/core/common/uistrings.py @@ -150,7 +150,7 @@ class UiStrings(object): self.SaveService = translate('OpenLP.Ui', 'Save Service') self.Service = translate('OpenLP.Ui', 'Service') self.ShortResults = translate('OpenLP.Ui', 'Please type more text to use \'Search As You Type\'') - self.Split = translate('OpenLP.Ui', 'Optional &Split') + self.Split = translate('OpenLP.Ui', 'Overflow &Split') self.SplitToolTip = translate('OpenLP.Ui', 'Split a slide into two only if it does not fit on the screen as one slide.') self.StartingImport = translate('OpenLP.Ui', 'Starting import...') diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 67d33ce04..124209f88 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -242,6 +242,9 @@ class Renderer(OpenLPMixin, RegistryMixin, RegistryProperties): elif item.is_capable(ItemCapabilities.CanSoftBreak): pages = [] if '[---]' in text: + # Remove Overflow split if at start of the text + if text.startswith('[---]'): + text = text[5:] # Remove two or more option slide breaks next to each other (causing infinite loop). while '\n[---]\n[---]\n' in text: text = text.replace('\n[---]\n[---]\n', '\n[---]\n') diff --git a/openlp/core/ui/lib/listpreviewwidget.py b/openlp/core/ui/lib/listpreviewwidget.py index 142034785..c5c2b01d2 100644 --- a/openlp/core/ui/lib/listpreviewwidget.py +++ b/openlp/core/ui/lib/listpreviewwidget.py @@ -209,21 +209,21 @@ class ListPreviewWidget(QtWidgets.QTableWidget, RegistryProperties): Switches to the given row. """ # Retrieve setting - autoscrolling = Settings().value('advanced/autoscrolling') + auto_scrolling = Settings().value('advanced/autoscrolling') # Check if auto-scroll disabled (None) and validate value as dict containing 'dist' and 'pos' # 'dist' represents the slide to scroll to relative to the new slide (-1 = previous, 0 = current, 1 = next) # 'pos' represents the vert position of of the slide (0 = in view, 1 = top, 2 = middle, 3 = bottom) - if not (isinstance(autoscrolling, dict) and 'dist' in autoscrolling and 'pos' in autoscrolling and - isinstance(autoscrolling['dist'], int) and isinstance(autoscrolling['pos'], int)): + if not (isinstance(auto_scrolling, dict) and 'dist' in auto_scrolling and 'pos' in auto_scrolling and + isinstance(auto_scrolling['dist'], int) and isinstance(auto_scrolling['pos'], int)): return # prevent scrolling past list bounds - scroll_to_slide = slide + autoscrolling['dist'] + scroll_to_slide = slide + auto_scrolling['dist'] if scroll_to_slide < 0: scroll_to_slide = 0 if scroll_to_slide >= self.slide_count(): scroll_to_slide = self.slide_count() - 1 # Scroll to item if possible. - self.scrollToItem(self.item(scroll_to_slide, 0), autoscrolling['pos']) + self.scrollToItem(self.item(scroll_to_slide, 0), auto_scrolling['pos']) self.selectRow(slide) def current_slide_number(self): diff --git a/openlp/plugins/songs/forms/editversedialog.py b/openlp/plugins/songs/forms/editversedialog.py index 380f023f7..04e3a8c8f 100644 --- a/openlp/plugins/songs/forms/editversedialog.py +++ b/openlp/plugins/songs/forms/editversedialog.py @@ -42,14 +42,14 @@ class Ui_EditVerseDialog(object): self.dialog_layout.addWidget(self.verse_text_edit) self.verse_type_layout = QtWidgets.QHBoxLayout() self.verse_type_layout.setObjectName('verse_type_layout') - self.divide_split_button = QtWidgets.QPushButton(edit_verse_dialog) - self.divide_split_button.setIcon(build_icon(':/general/general_add.png')) - self.divide_split_button.setObjectName('divide_split_button') - self.verse_type_layout.addWidget(self.divide_split_button) - self.split_button = QtWidgets.QPushButton(edit_verse_dialog) - self.split_button.setIcon(build_icon(':/general/general_add.png')) - self.split_button.setObjectName('split_button') - self.verse_type_layout.addWidget(self.split_button) + self.forced_split_button = QtWidgets.QPushButton(edit_verse_dialog) + self.forced_split_button.setIcon(build_icon(':/general/general_add.png')) + self.forced_split_button.setObjectName('forced_split_button') + self.verse_type_layout.addWidget(self.forced_split_button) + self.overflow_split_button = QtWidgets.QPushButton(edit_verse_dialog) + self.overflow_split_button.setIcon(build_icon(':/general/general_add.png')) + self.overflow_split_button.setObjectName('overflow_split_button') + self.verse_type_layout.addWidget(self.overflow_split_button) self.verse_type_label = QtWidgets.QLabel(edit_verse_dialog) self.verse_type_label.setObjectName('verse_type_label') self.verse_type_layout.addWidget(self.verse_type_label) @@ -97,10 +97,10 @@ class Ui_EditVerseDialog(object): self.verse_type_combo_box.setItemText(VerseType.Intro, VerseType.translated_names[VerseType.Intro]) self.verse_type_combo_box.setItemText(VerseType.Ending, VerseType.translated_names[VerseType.Ending]) self.verse_type_combo_box.setItemText(VerseType.Other, VerseType.translated_names[VerseType.Other]) - self.split_button.setText(UiStrings().Split) - self.split_button.setToolTip(UiStrings().SplitToolTip) - self.divide_split_button.setText(translate('SongsPlugin.EditVerseForm', '&Divide')) - self.divide_split_button.setToolTip(translate('SongsPlugin.EditVerseForm', 'Divide the verse when displayed ' + self.overflow_split_button.setText(UiStrings().Split) + self.overflow_split_button.setToolTip(UiStrings().SplitToolTip) + self.forced_split_button.setText(translate('SongsPlugin.EditVerseForm', '&Forced Split')) + self.forced_split_button.setToolTip(translate('SongsPlugin.EditVerseForm', 'Split the verse when displayed ' 'regardless of the screen size.')) self.insert_button.setText(translate('SongsPlugin.EditVerseForm', '&Insert')) self.insert_button.setToolTip(translate('SongsPlugin.EditVerseForm', diff --git a/openlp/plugins/songs/forms/editverseform.py b/openlp/plugins/songs/forms/editverseform.py index ca74ccbe5..51dae7b4b 100644 --- a/openlp/plugins/songs/forms/editverseform.py +++ b/openlp/plugins/songs/forms/editverseform.py @@ -48,10 +48,10 @@ class EditVerseForm(QtWidgets.QDialog, Ui_EditVerseDialog): self.setupUi(self) self.has_single_verse = False self.insert_button.clicked.connect(self.on_insert_button_clicked) - self.split_button.clicked.connect(self.on_split_button_clicked) + self.overflow_split_button.clicked.connect(self.on_overflow_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) - self.divide_split_button.clicked.connect(self.on_divide_split_button_clicked) + self.forced_split_button.clicked.connect(self.on_forced_split_button_clicked) if Settings().value('songs/enable chords'): self.transpose_down_button.clicked.connect(self.on_transpose_down_button_clicked) self.transpose_up_button.clicked.connect(self.on_transpose_up_button_clicked) @@ -69,13 +69,13 @@ class EditVerseForm(QtWidgets.QDialog, Ui_EditVerseDialog): self.verse_text_edit.insertPlainText('---[{tag}:{number}]---\n'.format(tag=verse_tag, number=verse_num)) self.verse_text_edit.setFocus() - def on_split_button_clicked(self): + def on_overflow_split_button_clicked(self): """ The optional split button has been pressed so we need add the split """ self._add_splitter_to_text('[---]') - def on_divide_split_button_clicked(self): + def on_forced_split_button_clicked(self): """ The force split button has been pressed so we need add the split """ diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index ee66804ed..400c64fdc 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -590,7 +590,7 @@ class SongMediaItem(MediaManagerItem): verse_index = VerseType.from_tag(verse_tag) verse_tag = VerseType.translated_tags[verse_index].upper() verse_def = '{tag}{label}'.format(tag=verse_tag, label=verse[0]['label']) - force_verse = verse[1].split('[--}{--]\n', 2) + force_verse = verse[1].split('[--}{--]\n') for split_verse in force_verse: service_item.add_from_text(split_verse, verse_def) else: @@ -607,7 +607,7 @@ class SongMediaItem(MediaManagerItem): verse_index = VerseType.from_tag(verse[0]['type']) verse_tag = VerseType.translated_tags[verse_index] verse_def = '{tag}{label}'.format(tag=verse_tag, label=verse[0]['label']) - force_verse = verse[1].split('[--}{--]\n', 2) + force_verse = verse[1].split('[--}{--]\n') for split_verse in force_verse: service_item.add_from_text(split_verse, verse_def) service_item.title = song.title diff --git a/tests/functional/openlp_plugins/songs/test_editverseform.py b/tests/functional/openlp_plugins/songs/test_editverseform.py index 223cb7e4a..78dd4ebb5 100644 --- a/tests/functional/openlp_plugins/songs/test_editverseform.py +++ b/tests/functional/openlp_plugins/songs/test_editverseform.py @@ -82,7 +82,7 @@ class TestEditVerseForm(TestCase, TestMixin): self.edit_verse_form.verse_text_edit.setPlainText('Text\n') # WHEN the method is called - self.edit_verse_form.on_divide_split_button_clicked() + self.edit_verse_form.on_forced_split_button_clicked() # THEN the verse number must not be changed self.assertEqual('[--}{--]\nText\n', self.edit_verse_form.verse_text_edit.toPlainText(), 'The verse number should be [--}{--]\nText\n') @@ -96,7 +96,7 @@ class TestEditVerseForm(TestCase, TestMixin): self.edit_verse_form.verse_text_edit.setPlainText('Text\n') # WHEN the method is called - self.edit_verse_form.on_split_button_clicked() + self.edit_verse_form.on_overflow_split_button_clicked() # THEN the verse number must not be changed self.assertEqual('[---]\nText\n', self.edit_verse_form.verse_text_edit.toPlainText(), 'The verse number should be [---]\nText\n')