← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~sam92/openlp/footer-copyright into lp:openlp

 

Samuel Mehrbrodt has proposed merging lp:~sam92/openlp/footer-copyright into lp:openlp.

Requested reviews:
  Raoul Snyman (raoul-snyman)

For more details, see:
https://code.launchpad.net/~sam92/openlp/footer-copyright/+merge/226116

Add an option to always add the copyright symbol in the footer

Also removed unused import

lp:~sam92/openlp/footer-copyright (revision 2402)
[SUCCESS] http://ci.openlp.org/job/Branch-01-Pull/517/
[SUCCESS] http://ci.openlp.org/job/Branch-02-Functional-Tests/475/
[SUCCESS] http://ci.openlp.org/job/Branch-03-Interface-Tests/420/
[FAILURE] http://ci.openlp.org/job/Branch-04-Windows_Tests/379/
[SUCCESS] http://ci.openlp.org/job/Branch-05a-Code_Analysis/246/
[SUCCESS] http://ci.openlp.org/job/Branch-05b-Test_Coverage/120/
-- 
https://code.launchpad.net/~sam92/openlp/footer-copyright/+merge/226116
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/plugins/songs/lib/mediaitem.py'
--- openlp/plugins/songs/lib/mediaitem.py	2014-07-03 16:54:51 +0000
+++ openlp/plugins/songs/lib/mediaitem.py	2014-07-09 12:52:09 +0000
@@ -36,7 +36,7 @@
 from sqlalchemy.sql import or_
 
 from openlp.core.common import Registry, AppLocation, Settings, check_directory_exists, UiStrings, translate
-from openlp.core.lib import MediaManagerItem, ItemCapabilities, PluginStatus, ServiceItem, ServiceItemContext, \
+from openlp.core.lib import MediaManagerItem, ItemCapabilities, PluginStatus, ServiceItemContext, \
     check_item_selected, create_separated_list
 from openlp.core.lib.ui import create_widget_action
 from openlp.plugins.songs.forms.editsongform import EditSongForm
@@ -126,6 +126,7 @@
         self.update_service_on_edit = Settings().value(self.settings_section + '/update service on edit')
         self.add_song_from_service = Settings().value(self.settings_section + '/add song from service')
         self.display_songbook = Settings().value(self.settings_section + '/display songbook')
+        self.display_copyright_symbol = Settings().value(self.settings_section + '/display copyright symbol')
 
     def retranslateUi(self):
         self.search_text_label.setText('%s:' % UiStrings().Search)
@@ -506,7 +507,11 @@
         if authors_translation:
             item.raw_footer.append("%s: %s" % (AuthorType.Types[AuthorType.Translation],
                                                create_separated_list(authors_translation)))
-        item.raw_footer.append(song.copyright)
+        if song.copyright:
+            if self.display_copyright_symbol:
+                item.raw_footer.append("%s %s" % (SongStrings.CopyrightSymbol, song.copyright))
+            else:
+                item.raw_footer.append(song.copyright)
         if self.display_songbook and song.book:
             item.raw_footer.append("%s #%s" % (song.book.name, song.song_number))
         if Settings().value('core/ccli number'):

=== modified file 'openlp/plugins/songs/lib/songstab.py'
--- openlp/plugins/songs/lib/songstab.py	2014-05-03 10:03:50 +0000
+++ openlp/plugins/songs/lib/songstab.py	2014-07-09 12:52:09 +0000
@@ -31,6 +31,7 @@
 
 from openlp.core.common import Settings, translate
 from openlp.core.lib import SettingsTab
+from openlp.plugins.songs.lib.ui import SongStrings
 
 
 class SongsTab(SettingsTab):
@@ -62,6 +63,9 @@
         self.display_songbook_check_box = QtGui.QCheckBox(self.mode_group_box)
         self.display_songbook_check_box.setObjectName('songbook_check_box')
         self.mode_layout.addWidget(self.display_songbook_check_box)
+        self.display_copyright_check_box = QtGui.QCheckBox(self.mode_group_box)
+        self.display_copyright_check_box.setObjectName('copyright_check_box')
+        self.mode_layout.addWidget(self.display_copyright_check_box)
         self.left_layout.addWidget(self.mode_group_box)
         self.left_layout.addStretch()
         self.right_layout.addStretch()
@@ -70,6 +74,7 @@
         self.update_on_edit_check_box.stateChanged.connect(self.on_update_on_edit_check_box_changed)
         self.add_from_service_check_box.stateChanged.connect(self.on_add_from_service_check_box_changed)
         self.display_songbook_check_box.stateChanged.connect(self.on_songbook_check_box_changed)
+        self.display_copyright_check_box.stateChanged.connect(self.on_copyright_check_box_changed)
 
     def retranslateUi(self):
         self.mode_group_box.setTitle(translate('SongsPlugin.SongsTab', 'Songs Mode'))
@@ -80,6 +85,9 @@
         self.add_from_service_check_box.setText(translate('SongsPlugin.SongsTab',
                                                           'Import missing songs from service files'))
         self.display_songbook_check_box.setText(translate('SongsPlugin.SongsTab', 'Display songbook in footer'))
+        self.display_copyright_check_box.setText(translate('SongsPlugin.SongsTab',
+                                                           'Display "%s" symbol before copyright info' %
+                                                           SongStrings.CopyrightSymbol))
 
     def on_search_as_type_check_box_changed(self, check_state):
         self.song_search = (check_state == QtCore.Qt.Checked)
@@ -96,6 +104,9 @@
     def on_songbook_check_box_changed(self, check_state):
         self.display_songbook = (check_state == QtCore.Qt.Checked)
 
+    def on_copyright_check_box_changed(self, check_state):
+        self.display_copyright_symbol = (check_state == QtCore.Qt.Checked)
+
     def load(self):
         settings = Settings()
         settings.beginGroup(self.settings_section)
@@ -104,11 +115,13 @@
         self.update_edit = settings.value('update service on edit')
         self.update_load = settings.value('add song from service')
         self.display_songbook = settings.value('display songbook')
+        self.display_copyright_symbol = settings.value('display copyright symbol')
         self.search_as_type_check_box.setChecked(self.song_search)
         self.tool_bar_active_check_box.setChecked(self.tool_bar)
         self.update_on_edit_check_box.setChecked(self.update_edit)
         self.add_from_service_check_box.setChecked(self.update_load)
         self.display_songbook_check_box.setChecked(self.display_songbook)
+        self.display_copyright_check_box.setChecked(self.display_copyright_symbol)
         settings.endGroup()
 
     def save(self):
@@ -119,6 +132,7 @@
         settings.setValue('update service on edit', self.update_edit)
         settings.setValue('add song from service', self.update_load)
         settings.setValue('display songbook', self.display_songbook)
+        settings.setValue('display copyright symbol', self.display_copyright_symbol)
         settings.endGroup()
         if self.tab_visited:
             self.settings_form.register_post_process('songs_config_updated')

=== modified file 'openlp/plugins/songs/songsplugin.py'
--- openlp/plugins/songs/songsplugin.py	2014-07-04 09:31:06 +0000
+++ openlp/plugins/songs/songsplugin.py	2014-07-09 12:52:09 +0000
@@ -64,6 +64,7 @@
     'songs/add song from service': True,
     'songs/display songbar': True,
     'songs/display songbook': False,
+    'songs/display copyright symbol': False,
     'songs/last directory import': '',
     'songs/last directory export': '',
     'songs/songselect username': '',

=== modified file 'tests/functional/openlp_plugins/songs/test_mediaitem.py'
--- tests/functional/openlp_plugins/songs/test_mediaitem.py	2014-05-21 19:55:16 +0000
+++ tests/functional/openlp_plugins/songs/test_mediaitem.py	2014-07-09 12:52:09 +0000
@@ -28,6 +28,7 @@
                 patch('openlp.plugins.songs.forms.editsongform.EditSongForm.__init__'):
             self.media_item = SongMediaItem(None, MagicMock())
             self.media_item.display_songbook = False
+            self.media_item.display_copyright_symbol = False
         self.get_application()
         self.build_settings()
         QtCore.QLocale.setDefault(QtCore.QLocale('en_GB'))
@@ -154,6 +155,23 @@
         # THEN: The songbook should be in the footer
         self.assertEqual(service_item.raw_footer, ['My Song', 'My copyright', 'My songbook #12'])
 
+    def build_song_footer_copyright_test(self):
+        """
+        Test building song footer with displaying the copyright symbol
+        """
+        # GIVEN: A Song and a Service Item; displaying the copyright symbol is enabled
+        self.media_item.display_copyright_symbol = True
+        mock_song = MagicMock()
+        mock_song.title = 'My Song'
+        mock_song.copyright = 'My copyright'
+        service_item = ServiceItem(None)
+
+        # WHEN: I generate the Footer with default settings
+        self.media_item.generate_footer(service_item, mock_song)
+
+        # THEN: The copyright symbol should be in the footer
+        self.assertEqual(service_item.raw_footer, ['My Song', '© My copyright'])
+
     def authors_match_test(self):
         """
         Test the author matching when importing a song from a service


Follow ups