From c47d1bdca4c74db1df2fa9b368e9547dbcc3e801 Mon Sep 17 00:00:00 2001 From: Samuel Mehrbrodt Date: Tue, 5 Jan 2016 16:32:49 +0100 Subject: [PATCH 1/4] Select text in search field when it gains focus Fixes: https://launchpad.net/bugs/1530340 --- openlp/plugins/bibles/lib/mediaitem.py | 1 + openlp/plugins/custom/lib/mediaitem.py | 1 + openlp/plugins/songs/lib/mediaitem.py | 1 + 3 files changed, 3 insertions(+) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 3934ca53c..94937e61b 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -254,6 +254,7 @@ class BibleMediaItem(MediaManagerItem): def on_focus(self): if self.quickTab.isVisible(): self.quick_search_edit.setFocus() + self.quick_search_edit.selectAll() else: self.advanced_book_combo_box.setFocus() diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 812274263..c7f3167ea 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -208,6 +208,7 @@ class CustomMediaItem(MediaManagerItem): Set the focus """ self.search_text_edit.setFocus() + self.search_text_edit.selectAll() def generate_slide_data(self, service_item, item=None, xml_version=False, remote=False, context=ServiceItemContext.Service): diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 4f23bbfd1..0c70d6ad0 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -112,6 +112,7 @@ class SongMediaItem(MediaManagerItem): def on_focus(self): self.search_text_edit.setFocus() + self.search_text_edit.selectAll() def config_update(self): """ From 0cd2bbff36c66e769e8c2625bf06b8ed90c102eb Mon Sep 17 00:00:00 2001 From: Samuel Mehrbrodt Date: Tue, 5 Jan 2016 16:42:07 +0100 Subject: [PATCH 2/4] Convert lowercase verse order to uppercase automatically Fixes: https://launchpad.net/bugs/1530354 --- openlp/plugins/songs/forms/editsongform.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index d598e848b..7bf6bbc48 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -803,6 +803,8 @@ class EditSongForm(QtWidgets.QDialog, Ui_EditSongDialog, RegistryProperties): :param text: The text of the verse order edit (ignored). """ + # First make sure that all letters entered in the verse order field are uppercase + self.verse_order_edit.setText(text.upper()) # Extract all verses which were used in the order. verses_in_order = self._extract_verse_order(self.verse_order_edit.text()) # Find the verses which were not used in the order. From 860f596dde1901eb4fddfb9dbc943e42ef846d2d Mon Sep 17 00:00:00 2001 From: Samuel Mehrbrodt Date: Tue, 5 Jan 2016 17:10:16 +0100 Subject: [PATCH 3/4] Only trigger this method by user input Else we will have infinite loop by using setText in that method --- openlp/plugins/songs/forms/editsongform.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 7bf6bbc48..e79fc633f 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -76,7 +76,7 @@ class EditSongForm(QtWidgets.QDialog, Ui_EditSongDialog, RegistryProperties): self.verse_edit_all_button.clicked.connect(self.on_verse_edit_all_button_clicked) self.verse_delete_button.clicked.connect(self.on_verse_delete_button_clicked) self.verse_list_widget.itemClicked.connect(self.on_verse_list_view_clicked) - self.verse_order_edit.textChanged.connect(self.on_verse_order_text_changed) + self.verse_order_edit.textEdited.connect(self.on_verse_order_text_changed) self.theme_add_button.clicked.connect(self.theme_manager.on_add_theme) self.maintenance_button.clicked.connect(self.on_maintenance_button_clicked) self.from_file_button.clicked.connect(self.on_audio_add_from_file_button_clicked) From 75b885961e8545cd20b9bf181f7427d60055cd99 Mon Sep 17 00:00:00 2001 From: Samuel Mehrbrodt Date: Tue, 5 Jan 2016 17:11:30 +0100 Subject: [PATCH 4/4] Add test for converting verse order to uppercase --- .../songs/forms/test_editsongform.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/interfaces/openlp_plugins/songs/forms/test_editsongform.py b/tests/interfaces/openlp_plugins/songs/forms/test_editsongform.py index d540a90c5..bb26533ee 100644 --- a/tests/interfaces/openlp_plugins/songs/forms/test_editsongform.py +++ b/tests/interfaces/openlp_plugins/songs/forms/test_editsongform.py @@ -142,3 +142,18 @@ class TestEditSongForm(TestCase, TestMixin): 'CCLI label should not be "{}"'.format(UiStrings().CCLINumberLabel)) self.assertEquals(form.ccli_label.text(), UiStrings().CCLISongNumberLabel, 'CCLI label text should be "{}"'.format(UiStrings().CCLISongNumberLabel)) + + def verse_order_lowercase_test(self): + """ + Test that entering a verse order in lowercase automatically converts to uppercase + """ + # GIVEN; Mocked methods + form = self.form + + # WHEN: We enter a verse order in lowercase + form.verse_order_edit.setText('v1 v2 c1 v3 c1 v4 c1') + # Need to manually trigger this method as it is only triggered by manual input + form.on_verse_order_text_changed(form.verse_order_edit.text()) + + # THEN: The verse order should be converted to uppercase + self.assertEqual(form.verse_order_edit.text(), 'V1 V2 C1 V3 C1 V4 C1')