← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~oliwee/openlp/HideBibleVerses into lp:openlp

 

Oliver Wieland has proposed merging lp:~oliwee/openlp/HideBibleVerses into lp:openlp.

Requested reviews:
  Andreas Preikschat (googol)
  Tim Bentley (trb143)
  Raoul Snyman (raoul-snyman)
Related bugs:
  Bug #1051699 in OpenLP: "Bibles add option to not display chapter and verse numbers"
  https://bugs.launchpad.net/openlp/+bug/1051699

For more details, see:
https://code.launchpad.net/~oliwee/openlp/HideBibleVerses/+merge/183342

The changes add a Checkbox at the Bibles settings tab to show or hide the verse numbers. Therefor a new element "Display verse numbers" in the settings is implemented. On default, this element is set to True.
If the value is set to False, the values "Show new chapters" and "Display Style" are not relevant and the input fields at the Bibles settings tab will be greyed out.

-- 
https://code.launchpad.net/~oliwee/openlp/HideBibleVerses/+merge/183342
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/plugins/bibles/bibleplugin.py'
--- openlp/plugins/bibles/bibleplugin.py	2013-08-31 18:17:38 +0000
+++ openlp/plugins/bibles/bibleplugin.py	2013-08-31 21:04:39 +0000
@@ -48,6 +48,7 @@
     'bibles/verse layout style': LayoutStyle.VersePerSlide,
     'bibles/book name language': LanguageSelection.Bible,
     'bibles/display brackets': DisplayStyle.NoBrackets,
+    'bibles/is verse number visible': True,
     'bibles/display new chapter': False,
     'bibles/second bibles': True,
     'bibles/advanced bible': '',

=== modified file 'openlp/plugins/bibles/lib/biblestab.py'
--- openlp/plugins/bibles/lib/biblestab.py	2013-08-31 18:17:38 +0000
+++ openlp/plugins/bibles/lib/biblestab.py	2013-08-31 21:04:39 +0000
@@ -58,6 +58,9 @@
         self.verse_display_group_box.setObjectName('verse_display_group_box')
         self.verse_display_layout = QtGui.QFormLayout(self.verse_display_group_box)
         self.verse_display_layout.setObjectName('verse_display_layout')
+        self.is_verse_number_visible_check_box = QtGui.QCheckBox(self.verse_display_group_box)
+        self.is_verse_number_visible_check_box.setObjectName('is_verse_number_visible_check_box')
+        self.verse_display_layout.addRow(self.is_verse_number_visible_check_box)
         self.new_chapters_check_box = QtGui.QCheckBox(self.verse_display_group_box)
         self.new_chapters_check_box.setObjectName('new_chapters_check_box')
         self.verse_display_layout.addRow(self.new_chapters_check_box)
@@ -134,6 +137,7 @@
         self.left_layout.addStretch()
         self.right_layout.addStretch()
         # Signals and slots
+        self.is_verse_number_visible_check_box.stateChanged.connect(self.on_is_verse_number_visible_check_box_changed)
         self.new_chapters_check_box.stateChanged.connect(self.on_new_chapters_check_box_changed)
         self.display_style_combo_box.activated.connect(self.on_display_style_combo_box_changed)
         self.bible_theme_combo_box.activated.connect(self.on_bible_theme_combo_box_changed)
@@ -156,6 +160,7 @@
 
     def retranslateUi(self):
         self.verse_display_group_box.setTitle(translate('BiblesPlugin.BiblesTab', 'Verse Display'))
+        self.is_verse_number_visible_check_box.setText(translate('BiblesPlugin.BiblesTab', 'Show verse numbers'))
         self.new_chapters_check_box.setText(translate('BiblesPlugin.BiblesTab', 'Only show new chapter numbers'))
         self.layout_style_label.setText(UiStrings().LayoutStyle)
         self.display_style_label.setText(UiStrings().DisplayStyle)
@@ -208,6 +213,16 @@
     def on_language_selection_combo_box_changed(self):
         self.language_selection = self.language_selection_combo_box.currentIndex()
 
+    def on_is_verse_number_visible_check_box_changed(self, check_state):
+        """
+        Event handler for the 'verse number visible' check box
+        """
+        self.is_verse_number_visible = False
+        # We have a set value convert to True/False.
+        if check_state == QtCore.Qt.Checked:
+            self.is_verse_number_visible = True
+        self.check_is_verse_number_visible()
+
     def on_new_chapters_check_box_changed(self, check_state):
         self.show_new_chapters = False
         # We have a set value convert to True/False.
@@ -299,11 +314,14 @@
     def load(self):
         settings = Settings()
         settings.beginGroup(self.settings_section)
+        self.is_verse_number_visible = settings.value('is verse number visible')
         self.show_new_chapters = settings.value('display new chapter')
         self.display_style = settings.value('display brackets')
         self.layout_style = settings.value('verse layout style')
         self.bible_theme = settings.value('bible theme')
         self.second_bibles = settings.value('second bibles')
+        self.is_verse_number_visible_check_box.setChecked(self.is_verse_number_visible)
+        self.check_is_verse_number_visible()
         self.new_chapters_check_box.setChecked(self.show_new_chapters)
         self.display_style_combo_box.setCurrentIndex(self.display_style)
         self.layout_style_combo_box.setCurrentIndex(self.layout_style)
@@ -351,6 +369,7 @@
     def save(self):
         settings = Settings()
         settings.beginGroup(self.settings_section)
+        settings.setValue('is verse number visible', self.is_verse_number_visible)
         settings.setValue('display new chapter', self.show_new_chapters)
         settings.setValue('display brackets', self.display_style)
         settings.setValue('verse layout style', self.layout_style)
@@ -405,3 +424,12 @@
             color.setAlpha(128)
         palette.setColor(QtGui.QPalette.Active, QtGui.QPalette.Text, color)
         return palette
+    
+    def check_is_verse_number_visible(self):
+        """
+        Enables / Disables verse settings dependent on is_verse_number_visible
+        """
+        self.new_chapters_check_box.setEnabled(self.is_verse_number_visible)
+        self.display_style_label.setEnabled(self.is_verse_number_visible)
+        self.display_style_combo_box.setEnabled(self.is_verse_number_visible)
+

=== modified file 'openlp/plugins/bibles/lib/mediaitem.py'
--- openlp/plugins/bibles/lib/mediaitem.py	2013-08-31 18:17:38 +0000
+++ openlp/plugins/bibles/lib/mediaitem.py	2013-08-31 21:04:39 +0000
@@ -943,6 +943,8 @@
             The verse number (int).
         """
         verse_separator = get_reference_separator('sep_v_display')
+        if not self.settings.is_verse_number_visible:
+            return ''
         if not self.settings.show_new_chapters or old_chapter != chapter:
             verse_text = str(chapter) + verse_separator + str(verse)
         else:

=== added file 'tests/functional/openlp_plugins/bibles/test_versereferencelist.py'
--- tests/functional/openlp_plugins/bibles/test_versereferencelist.py	1970-01-01 00:00:00 +0000
+++ tests/functional/openlp_plugins/bibles/test_versereferencelist.py	2013-08-31 21:04:39 +0000
@@ -0,0 +1,116 @@
+"""
+This module contains tests for the versereferencelist submodule of the Bibles plugin.
+"""
+from unittest import TestCase
+from openlp.plugins.bibles.lib.versereferencelist import VerseReferenceList
+
+class TestVerseReferenceList(TestCase):
+    def setUp(self):
+        """
+        Initializes all we need
+        """
+        
+    def add_first_verse_test(self):
+        """
+        Test the addition of a verse to the empty list
+        """
+        # GIVEN: an empty list
+        reference_list = VerseReferenceList()
+        book = 'testBook'
+        chapter = 1
+        verse = 1
+        version = 'testVersion'
+        copyright = 'testCopyright'
+        permission = 'testPermision'
+        
+        # WHEN: We add it to the verse list
+        reference_list.add(book, chapter, verse, version, copyright, permission)
+        
+        # THEN: The entries should be in the first entry of the list
+        self.assertEqual(reference_list.current_index, 0, 'The current index should be 0')
+        self.assertEqual(reference_list.verse_list[0]['book'], book, 'The book in first entry should be %s' % book)
+        self.assertEqual(reference_list.verse_list[0]['chapter'], chapter, 'The chapter in first entry should be %u' % chapter)
+        self.assertEqual(reference_list.verse_list[0]['start'], verse, 'The start in first entry should be %u' % verse)
+        self.assertEqual(reference_list.verse_list[0]['version'], version, 'The version in first entry should be %s' % version)
+        self.assertEqual(reference_list.verse_list[0]['end'], verse, 'The end in first entry should be %u' % verse)
+        
+    def add_next_verse_test(self):
+        """
+        Test the addition of the following verse
+        """
+        # GIVEN: 1 line in the list of verses
+        book = 'testBook'
+        chapter = 1
+        verse = 1
+        next_verse = 2
+        version = 'testVersion'
+        copyright = 'testCopyright'
+        permission = 'testPermision'
+        reference_list = VerseReferenceList()
+        reference_list.add(book, chapter, verse, version, copyright, permission)
+
+        # WHEN: We add the following verse to the verse list
+        reference_list.add(book, chapter, next_verse, version, copyright, permission)
+        
+        # THEN: The current index should be 0 and the end pointer of the entry should be '2'
+        self.assertEqual(reference_list.current_index, 0, 'The current index should be 0')
+        self.assertEqual(reference_list.verse_list[0]['end'], next_verse, 'The end in first entry should be %u' % next_verse)
+
+    def add_another_verse_test(self):
+        """
+        Test the addition of a verse in another book
+        """
+        # GIVEN: 1 line in the list of verses
+        book = 'testBook'
+        chapter = 1
+        verse = 1
+        next_verse = 2
+        another_book = 'testBook2'
+        another_chapter = 2
+        another_verse = 5
+        version = 'testVersion'
+        copyright = 'testCopyright'
+        permission = 'testPermision'
+        reference_list = VerseReferenceList()
+        reference_list.add(book, chapter, verse, version, copyright, permission)
+
+        # WHEN: We add a verse of another book to the verse list
+        reference_list.add(another_book, another_chapter, another_verse, version, copyright, permission)
+        
+        # THEN: the current index should be 1
+        self.assertEqual(reference_list.current_index, 1, 'The current index should be 1')
+
+    def add_version_test(self):
+        """
+        Test the addition of a version to the list
+        """
+        # GIVEN: version, copyright and permission
+        reference_list = VerseReferenceList()
+        version = 'testVersion'
+        copyright = 'testCopyright'
+        permission = 'testPermision'
+
+        # WHEN: a not existing version will be added
+        reference_list.add_version(version, copyright, permission)
+        
+        # THEN: the data will be appended to the list
+        self.assertEqual(len(reference_list.version_list), 1, 'The version data should be appended')
+        self.assertEqual(reference_list.version_list[0], {'version': version, 'copyright': copyright, 'permission': permission},
+            'The version data should be appended')
+        
+    def add_existing_version_test(self):
+        """
+        Test the addition of an existing version to the list
+        """
+        # GIVEN: version, copyright and permission, added to the version list
+        reference_list = VerseReferenceList()
+        version = 'testVersion'
+        copyright = 'testCopyright'
+        permission = 'testPermision'
+        reference_list.add_version(version, copyright, permission)
+        
+        # WHEN: an existing version will be added
+        reference_list.add_version(version, copyright, permission)
+        
+        # THEN: the data will not be appended to the list
+        self.assertEqual(len(reference_list.version_list), 1, 'The version data should not be appended')


Follow ups