← 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:
  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/180651

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/180651
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/plugins/bibles/bibleplugin.py'
--- openlp/plugins/bibles/bibleplugin.py	2013-04-18 17:45:14 +0000
+++ openlp/plugins/bibles/bibleplugin.py	2013-08-16 20:44:21 +0000
@@ -48,6 +48,7 @@
     u'bibles/verse layout style': LayoutStyle.VersePerSlide,
     u'bibles/book name language': LanguageSelection.Bible,
     u'bibles/display brackets': DisplayStyle.NoBrackets,
+    u'bibles/verse number display': True,
     u'bibles/display new chapter': False,
     u'bibles/second bibles': True,
     u'bibles/advanced bible': u'',

=== modified file 'openlp/plugins/bibles/lib/biblestab.py'
--- openlp/plugins/bibles/lib/biblestab.py	2013-03-25 07:27:54 +0000
+++ openlp/plugins/bibles/lib/biblestab.py	2013-08-16 20:44:21 +0000
@@ -58,6 +58,9 @@
         self.verse_display_group_box.setObjectName(u'verse_display_group_box')
         self.verse_display_layout = QtGui.QFormLayout(self.verse_display_group_box)
         self.verse_display_layout.setObjectName(u'verse_display_layout')
+        self.verse_number_display_check_box = QtGui.QCheckBox(self.verse_display_group_box)
+        self.verse_number_display_check_box.setObjectName(u'verse_display_check_box')
+        self.verse_display_layout.addRow(self.verse_number_display_check_box)
         self.new_chapters_check_box = QtGui.QCheckBox(self.verse_display_group_box)
         self.new_chapters_check_box.setObjectName(u'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.verse_number_display_check_box.stateChanged.connect(self.on_verse_number_display_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.verse_number_display_check_box.setText(translate('BiblesPlugin.BiblesTab', 'Display 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,13 @@
     def on_language_selection_combo_box_changed(self):
         self.language_selection = self.language_selection_combo_box.currentIndex()
 
+    def on_verse_number_display_check_box_changed(self, check_state):
+        self.verse_number_display = False
+        # We have a set value convert to True/False.
+        if check_state == QtCore.Qt.Checked:
+            self.verse_number_display = True
+        self.check_verse_number_display()
+
     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 +311,14 @@
     def load(self):
         settings = Settings()
         settings.beginGroup(self.settings_section)
+        self.verse_number_display = settings.value(u'verse number display')
         self.show_new_chapters = settings.value(u'display new chapter')
         self.display_style = settings.value(u'display brackets')
         self.layout_style = settings.value(u'verse layout style')
         self.bible_theme = settings.value(u'bible theme')
         self.second_bibles = settings.value(u'second bibles')
+        self.verse_number_display_check_box.setChecked(self.verse_number_display)
+        self.check_verse_number_display()
         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 +366,7 @@
     def save(self):
         settings = Settings()
         settings.beginGroup(self.settings_section)
+        settings.setValue(u'verse number display', self.verse_number_display)
         settings.setValue(u'display new chapter', self.show_new_chapters)
         settings.setValue(u'display brackets', self.display_style)
         settings.setValue(u'verse layout style', self.layout_style)
@@ -405,3 +421,12 @@
             color.setAlpha(128)
         palette.setColor(QtGui.QPalette.Active, QtGui.QPalette.Text, color)
         return palette
+    
+    def check_verse_number_display(self):
+        """
+        Enables / Disables verse settings dependent on verse_number_display
+        """
+        self.new_chapters_check_box.setEnabled(self.verse_number_display)
+        self.display_style_label.setEnabled(self.verse_number_display)
+        self.display_style_combo_box.setEnabled(self.verse_number_display)
+

=== modified file 'openlp/plugins/bibles/lib/mediaitem.py'
--- openlp/plugins/bibles/lib/mediaitem.py	2013-04-20 20:34:46 +0000
+++ openlp/plugins/bibles/lib/mediaitem.py	2013-08-16 20:44:21 +0000
@@ -943,17 +943,20 @@
             The verse number (int).
         """
         verse_separator = get_reference_separator(u'sep_v_display')
-        if not self.settings.show_new_chapters or old_chapter != chapter:
-            verse_text = unicode(chapter) + verse_separator + unicode(verse)
-        else:
-            verse_text = unicode(verse)
-        if self.settings.display_style == DisplayStyle.Round:
-            return u'{su}(%s){/su}' % verse_text
-        if self.settings.display_style == DisplayStyle.Curly:
-            return u'{su}{%s}{/su}' % verse_text
-        if self.settings.display_style == DisplayStyle.Square:
-            return u'{su}[%s]{/su}' % verse_text
-        return u'{su}%s{/su}' % verse_text
+        
+        if self.settings.verse_number_display:
+            if not self.settings.show_new_chapters or old_chapter != chapter:
+                verse_text = unicode(chapter) + verse_separator + unicode(verse)
+            else:
+                verse_text = unicode(verse)
+            if self.settings.display_style == DisplayStyle.Round:
+                return u'{su}(%s){/su}' % verse_text
+            elif self.settings.display_style == DisplayStyle.Curly:
+                return u'{su}{%s}{/su}' % verse_text
+            elif self.settings.display_style == DisplayStyle.Square:
+                return u'{su}[%s]{/su}' % verse_text
+            return u'{su}%s{/su}' % verse_text
+        return u''
 
     def search(self, string, showError):
         """

=== added directory 'tests/functional/openlp_plugins/bibles'
=== added file 'tests/functional/openlp_plugins/bibles/__init__.py'
=== 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-16 20:44:21 +0000
@@ -0,0 +1,84 @@
+"""
+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):
+        self.reference_list = VerseReferenceList()
+        
+    def add_test(self):
+        """
+        Test the addition of verses to the list
+        """
+        
+        #GIVEN: book, chapter, verse and version
+        book = u'testBook'
+        chapter = 1
+        verse = 1
+        version = u'testVersion'
+        copyright = u'testCopyright'
+        permission = u'testPermision'
+        
+        #WHEN: We add it to the verse list
+        self.reference_list.add(book, chapter, verse, version, copyright, permission)
+        
+        #THEN: The entries should be in the first entry of the list
+        self.assertEqual(self.reference_list.current_index, 0, u'The current index should be 0')
+        self.assertEqual(self.reference_list.verse_list[0][u'book'], book, u'The book in first entry should be %s' %book)
+        self.assertEqual(self.reference_list.verse_list[0][u'chapter'], chapter, u'The chapter in first entry should be %u' %chapter)
+        self.assertEqual(self.reference_list.verse_list[0][u'start'], verse, u'The start in first entry should be %u' %verse)
+        self.assertEqual(self.reference_list.verse_list[0][u'version'], version, u'The version in first entry should be %s' %version)
+        self.assertEqual(self.reference_list.verse_list[0][u'end'], verse, u'The end in first entry should be %u' %verse)
+        
+        #GIVEN: next verse
+        verse = 2
+
+        #WHEN: We add it to the verse list
+        self.reference_list.add(book, chapter, verse, version, copyright, permission)
+        
+        #THEN: The current index should be 0 and the end pointer of the entry should be '2'
+        self.assertEqual(self.reference_list.current_index, 0, u'The current index should be 0')
+        self.assertEqual(self.reference_list.verse_list[0][u'end'], verse, u'The end in first entry should be %u' %verse)
+
+        #GIVEN: a verse in another book
+        book = u'testBook2'
+        chapter = 2
+        verse = 5
+
+        #WHEN: We add it to the verse list
+        self.reference_list.add(book, chapter, verse, version, copyright, permission)
+        
+        #THEN: the current index should be 1
+        self.assertEqual(self.reference_list.current_index, 1, u'The current index should be 1')
+
+    def add_version_test(self):
+        """
+        Test the addition of versions to the list
+        """
+        #GIVEN: version, copyright and permission
+        version = u'testVersion'
+        copyright = u'testCopyright'
+        permission = u'testPermision'
+
+
+        #WHEN: a not existing version will be added
+        self.reference_list.add_version(version, copyright, permission)
+        
+        #THEN: the data will be appended to the list
+        self.assertEqual(self.reference_list.version_list[0], {u'version': version, u'copyright': copyright, u'permission': permission},
+                         u'The version data should be appended')
+        
+
+        #GIVEN: old length of the array
+        oldLen = self.reference_list.version_list.__len__()
+        
+        #WHEN: an existing version will be added
+        self.reference_list.add_version(version, copyright, permission)
+        
+        #THEN: the data will not be appended to the list
+        self.assertEqual(self.reference_list.version_list.__len__(), oldLen, u'The version data should not be appended')
+        
+


Follow ups