← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~stewart-e/openlp/verse_order_override into lp:openlp

 

Stewart Becker has proposed merging lp:~stewart-e/openlp/verse_order_override into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~stewart-e/openlp/verse_order_override/+merge/184651

Verse order can be overriden in services and previews

Tests added for functions I edited, although only to cover my changes
-- 
https://code.launchpad.net/~stewart-e/openlp/verse_order_override/+merge/184651
Your team OpenLP Core is requested to review the proposed merge of lp:~stewart-e/openlp/verse_order_override into lp:openlp.
=== modified file 'openlp/core/lib/serviceitem.py'
--- openlp/core/lib/serviceitem.py	2013-08-31 18:17:38 +0000
+++ openlp/core/lib/serviceitem.py	2013-09-09 18:41:28 +0000
@@ -5,11 +5,11 @@
 # OpenLP - Open Source Lyrics Projection                                      #
 # --------------------------------------------------------------------------- #
 # Copyright (c) 2008-2013 Raoul Snyman                                        #
-# Portions copyright (c) 2008-2013 Tim Bentley, Gerald Britton, Jonathan      #
-# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub,      #
-# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer.   #
-# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru,          #
-# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,             #
+# Portions copyright (c) 2008-2013 Stewart Becker, Tim Bentley, Gerald        #
+# Britton, Jonathan Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri,  #
+# Matthias Hub, Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, #
+# Brian T. Meyer, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias   #
+# Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,    #
 # Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock,              #
 # Frode Woldsund, Martin Zibricky, Patrick Zimmermann                         #
 # --------------------------------------------------------------------------- #
@@ -415,8 +415,13 @@
                 self.background_audio.append(os.path.join(path, filename))
         self.theme_overwritten = header.get('theme_overwritten', False)
         if self.service_item_type == ServiceItemType.Text:
+            verses = []
             for slide in serviceitem['serviceitem']['data']:
                 self._raw_frames.append(slide)
+                if 'verseTag' in slide and slide['verseTag']:
+                    verses.append(slide['verseTag'])
+            if verses:
+                self.data_string['verse_order'] = ' '.join(verses)
         elif self.service_item_type == ServiceItemType.Image:
             settings_section = serviceitem['serviceitem']['header']['name']
             background = QtGui.QColor(Settings().value(settings_section + '/background color'))

=== modified file 'openlp/core/ui/aboutdialog.py'
--- openlp/core/ui/aboutdialog.py	2013-08-31 18:17:38 +0000
+++ openlp/core/ui/aboutdialog.py	2013-09-09 18:41:28 +0000
@@ -5,11 +5,11 @@
 # OpenLP - Open Source Lyrics Projection                                      #
 # --------------------------------------------------------------------------- #
 # Copyright (c) 2008-2013 Raoul Snyman                                        #
-# Portions copyright (c) 2008-2013 Tim Bentley, Gerald Britton, Jonathan      #
-# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub,      #
-# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer.   #
-# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru,          #
-# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,             #
+# Portions copyright (c) 2008-2013 Stewart Becker, Tim Bentley, Gerald        #
+# Britton, Jonathan Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri,  #
+# Matthias Hub, Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando,     #
+# Brian T. Meyer, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias   #
+# Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,    #
 # Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock,              #
 # Frode Woldsund, Martin Zibricky, Patrick Zimmermann                         #
 # --------------------------------------------------------------------------- #
@@ -113,7 +113,7 @@
             'Michael "cocooncrash" Gorven',
             'Andreas "googol" Preikschat', 'Raoul "superfly" Snyman',
             'Martin "mijiti" Thompson', 'Jon "Meths" Tibble']
-        contributors = ['Gerald "jerryb" Britton',
+        contributors = ['Stewart "sibecker" Becker','Gerald "jerryb" Britton',
             'Samuel "MrGamgee" Findlay', 'Scott "sguerrieri" Guerrieri',
             'Matthias "matthub" Hub', 'Meinert "m2j" Jordan',
             'Armin "orangeshirt" K\xf6hler', 'Erik "luen" Lundin',
@@ -273,10 +273,10 @@
         copyright_note = translate('OpenLP.AboutForm',
             'Copyright \xa9 2004-2013 %s\n'
             'Portions copyright \xa9 2004-2013 %s') % ('Raoul Snyman',
-            'Tim Bentley, Gerald Britton, Jonathan Corwin, Samuel Findlay, '
-            'Michael Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, '
-            'Armin K\xf6hler, Erik Lundin, Edwin Lunando, Joshua Miller, '
-            'Brian T. Meyer, Stevan Pettit, Andreas Preikschat, '
+            'Stewart Becker, Tim Bentley, Gerald Britton, Jonathan Corwin, '
+            'Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, '
+            'Meinert Jordan, Armin K\xf6hler, Erik Lundin, Edwin Lunando, '
+            'Joshua Miller, Brian T. Meyer, Stevan Pettit, Andreas Preikschat, '
             'Mattias P\xf5ldaru, Christian Richter, '
             'Philip Ridout, Simon Scudder, Jeffrey Smith, Maikel Stuivenberg, '
             'Martin Thompson, Jon Tibble, Dave Warnock, Frode Woldsund, '

=== modified file 'openlp/core/ui/servicemanager.py'
--- openlp/core/ui/servicemanager.py	2013-09-07 07:52:52 +0000
+++ openlp/core/ui/servicemanager.py	2013-09-09 18:41:28 +0000
@@ -5,11 +5,11 @@
 # OpenLP - Open Source Lyrics Projection                                      #
 # --------------------------------------------------------------------------- #
 # Copyright (c) 2008-2013 Raoul Snyman                                        #
-# Portions copyright (c) 2008-2013 Tim Bentley, Gerald Britton, Jonathan      #
-# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub,      #
-# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer.   #
-# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru,          #
-# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,             #
+# Portions copyright (c) 2008-2013 Stewart Becker, Tim Bentley, Gerald        #
+# Britton, Jonathan Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri,  #
+# Matthias Hub, Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando,     #
+# Brian T. Meyer, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias   #
+# Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,    #
 # Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock,              #
 # Frode Woldsund, Martin Zibricky, Patrick Zimmermann                         #
 # --------------------------------------------------------------------------- #
@@ -1388,7 +1388,7 @@
         item = self.find_service_item()[0]
         if self.service_items[item]['service_item'].is_capable(ItemCapabilities.CanEdit):
             new_item = Registry().get(self.service_items[item]['service_item'].name). \
-                on_remote_edit(self.service_items[item]['service_item'].edit_id)
+                on_remote_edit(self.service_items[item]['service_item'].edit_id,  self.service_items[item]['service_item'].data_string)
             if new_item:
                 self.add_service_item(new_item, replace=True)
 

=== modified file 'openlp/core/ui/slidecontroller.py'
--- openlp/core/ui/slidecontroller.py	2013-08-31 18:17:38 +0000
+++ openlp/core/ui/slidecontroller.py	2013-09-09 18:41:28 +0000
@@ -5,11 +5,11 @@
 # OpenLP - Open Source Lyrics Projection                                      #
 # --------------------------------------------------------------------------- #
 # Copyright (c) 2008-2013 Raoul Snyman                                        #
-# Portions copyright (c) 2008-2013 Tim Bentley, Gerald Britton, Jonathan      #
-# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub,      #
-# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer.   #
-# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru,          #
-# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,             #
+# Portions copyright (c) 2008-2013 Stewart Becker, Tim Bentley, Gerald        #
+# Britton, Jonathan Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri,  #
+# Matthias Hub, Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando,     #
+# Brian T. Meyer, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias   #
+# Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,    #
 # Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock,              #
 # Frode Woldsund, Martin Zibricky, Patrick Zimmermann                         #
 # --------------------------------------------------------------------------- #
@@ -1163,10 +1163,10 @@
 
     def on_edit_song(self):
         """
-        From the preview display requires the service Item to be editied
+        From the preview display requires the service Item to be edited
         """
         self.song_edit = True
-        new_item = Registry().get(self.service_item.name).on_remote_edit(self.service_item.edit_id, True)
+        new_item = Registry().get(self.service_item.name).on_remote_edit(self.service_item.edit_id, self.service_item.data_string, True)
         if new_item:
             self.add_service_item(new_item)
 

=== modified file 'openlp/plugins/custom/lib/mediaitem.py'
--- openlp/plugins/custom/lib/mediaitem.py	2013-08-31 18:17:38 +0000
+++ openlp/plugins/custom/lib/mediaitem.py	2013-09-09 18:41:28 +0000
@@ -5,11 +5,11 @@
 # OpenLP - Open Source Lyrics Projection                                      #
 # --------------------------------------------------------------------------- #
 # Copyright (c) 2008-2013 Raoul Snyman                                        #
-# Portions copyright (c) 2008-2013 Tim Bentley, Gerald Britton, Jonathan      #
-# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub,      #
-# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer.   #
-# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru,          #
-# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,             #
+# Portions copyright (c) 2008-2013 Stewart Becker, Tim Bentley, Gerald        #
+# Britton, Jonathan Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri,  #
+# Matthias Hub, Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando,     #
+# Brian T. Meyer, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias   #
+# Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,    #
 # Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock,              #
 # Frode Woldsund, Martin Zibricky, Patrick Zimmermann                         #
 # --------------------------------------------------------------------------- #
@@ -123,7 +123,7 @@
         self.on_clear_text_button_click()
         self.on_selection_change()
 
-    def on_remote_edit(self, custom_id, preview=False):
+    def on_remote_edit(self, custom_id, data_string, preview=False):
         """
         Called by ServiceManager or SlideController by event passing the custom Id in the payload along with an
         indicator to say which type of display is required.

=== modified file 'openlp/plugins/songs/forms/editsongdialog.py'
--- openlp/plugins/songs/forms/editsongdialog.py	2013-08-31 18:17:38 +0000
+++ openlp/plugins/songs/forms/editsongdialog.py	2013-09-09 18:41:28 +0000
@@ -5,11 +5,11 @@
 # OpenLP - Open Source Lyrics Projection                                      #
 # --------------------------------------------------------------------------- #
 # Copyright (c) 2008-2013 Raoul Snyman                                        #
-# Portions copyright (c) 2008-2013 Tim Bentley, Gerald Britton, Jonathan      #
-# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub,      #
-# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer.   #
-# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru,          #
-# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,             #
+# Portions copyright (c) 2008-2013 Stewart Becker, Tim Bentley, Gerald        #
+# Britton, Jonathan Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri,  #
+# Matthias Hub, Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando,     #
+# Brian T. Meyer, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias   #
+# Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,    #
 # Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock,              #
 # Frode Woldsund, Martin Zibricky, Patrick Zimmermann                         #
 # --------------------------------------------------------------------------- #
@@ -81,6 +81,7 @@
         self.verse_list_widget.setObjectName('verse_list_widget')
         self.lyrics_label.setBuddy(self.verse_list_widget)
         self.lyrics_tab_layout.addWidget(self.verse_list_widget, 2, 1)
+        
         self.verse_order_label = QtGui.QLabel(self.lyrics_tab)
         self.verse_order_label.setObjectName('verse_order_label')
         self.lyrics_tab_layout.addWidget(self.verse_order_label, 3, 0)
@@ -88,6 +89,15 @@
         self.verse_order_edit.setObjectName('verse_order_edit')
         self.verse_order_label.setBuddy(self.verse_order_edit)
         self.lyrics_tab_layout.addWidget(self.verse_order_edit, 3, 1, 1, 2)
+        
+        self.verse_order_override_label = QtGui.QLabel(self.lyrics_tab)
+        self.verse_order_override_label.setObjectName('verse_order_override_label')
+        self.lyrics_tab_layout.addWidget(self.verse_order_override_label, 4, 0)
+        self.verse_order_override_edit = QtGui.QLineEdit(self.lyrics_tab)
+        self.verse_order_override_edit.setObjectName('verse_order_override_edit')
+        self.verse_order_override_label.setBuddy(self.verse_order_override_edit)
+        self.lyrics_tab_layout.addWidget(self.verse_order_override_edit, 4, 1, 1, 2)
+        
         self.verse_buttons_layout = QtGui.QVBoxLayout()
         self.verse_buttons_layout.setObjectName('verse_buttons_layout')
         self.verse_add_button = QtGui.QPushButton(self.lyrics_tab)
@@ -290,6 +300,7 @@
         self.alternative_title_label.setText(translate('SongsPlugin.EditSongForm', 'Alt&ernate title:'))
         self.lyrics_label.setText(translate('SongsPlugin.EditSongForm', '&Lyrics:'))
         self.verse_order_label.setText(translate('SongsPlugin.EditSongForm', '&Verse order:'))
+        self.verse_order_override_label.setText(translate('SongsPlugin.EditSongForm', '&Override verse order:'))
         self.verse_add_button.setText(UiStrings().Add)
         self.verse_edit_button.setText(UiStrings().Edit)
         self.verse_edit_all_button.setText(translate('SongsPlugin.EditSongForm', 'Ed&it All'))

=== modified file 'openlp/plugins/songs/forms/editsongform.py'
--- openlp/plugins/songs/forms/editsongform.py	2013-08-31 18:17:38 +0000
+++ openlp/plugins/songs/forms/editsongform.py	2013-09-09 18:41:28 +0000
@@ -5,11 +5,11 @@
 # OpenLP - Open Source Lyrics Projection                                      #
 # --------------------------------------------------------------------------- #
 # Copyright (c) 2008-2013 Raoul Snyman                                        #
-# Portions copyright (c) 2008-2013 Tim Bentley, Gerald Britton, Jonathan      #
-# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub,      #
-# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer.   #
-# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru,          #
-# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,             #
+# Portions copyright (c) 2008-2013 Stewart Becker, Tim Bentley, Gerald        #
+# Britton, Jonathan Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri,  #
+# Matthias Hub, Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando,     #
+# Brian T. Meyer, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias   #
+# Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,    #
 # Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock,              #
 # Frode Woldsund, Martin Zibricky, Patrick Zimmermann                         #
 # --------------------------------------------------------------------------- #
@@ -84,6 +84,7 @@
         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_override_edit.textChanged.connect(self.on_verse_order_override_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)
@@ -100,7 +101,7 @@
         self.manager = manager
         self.verse_form = EditVerseForm(self)
         self.media_form = MediaFilesForm(self)
-        self.initialise()
+        self.initialise(False)
         self.authors_list_view.setSortingEnabled(False)
         self.authors_list_view.setAlternatingRowColors(True)
         self.topics_list_view.setSortingEnabled(False)
@@ -212,6 +213,10 @@
             result = self._validate_verse_list(self.verse_order_edit.text(), self.verse_list_widget.rowCount())
             if not result:
                 return False
+        if self.verse_order_override_edit.text():
+            result = self._validate_verse_list(self.verse_order_override_edit.text(), self.verse_list_widget.rowCount())
+            if not result:
+                return False
         text = self.song_book_combo_box.currentText()
         if self.song_book_combo_box.findText(text, QtCore.Qt.MatchExactly) < 0:
             if QtGui.QMessageBox.question(self, translate('SongsPlugin.EditSongForm', 'Add Book'),
@@ -266,14 +271,20 @@
                 return
         QtGui.QDialog.keyPressEvent(self, event)
 
-    def initialise(self):
+    def initialise(self, verse_order_override):
         """
         Set up the form for when it is displayed.
+        
+        ``verse_order_override``
+            Whether to show the verse_order_override widgets (bool)
         """
         self.verse_edit_button.setEnabled(False)
         self.verse_delete_button.setEnabled(False)
         self.author_remove_button.setEnabled(False)
         self.topic_remove_button.setEnabled(False)
+        self.verse_order_override = verse_order_override
+        self.verse_order_override_label.setVisible(self.verse_order_override)
+        self.verse_order_override_edit.setVisible(self.verse_order_override)
 
     def load_authors(self):
         """
@@ -331,12 +342,13 @@
         """
         log.debug('New Song')
         self.song = None
-        self.initialise()
+        self.initialise(False)
         self.song_tab_widget.setCurrentIndex(0)
         self.title_edit.clear()
         self.alternative_edit.clear()
         self.copyright_edit.clear()
         self.verse_order_edit.clear()
+        self.verse_order_override_edit.clear()
         self.comments_edit.clear()
         self.ccli_number_edit.clear()
         self.verse_list_widget.clear()
@@ -355,18 +367,23 @@
         # it's a new song to preview is not possible
         self.preview_button.setVisible(False)
 
-    def load_song(self, song_id, preview=False):
+    def load_song(self, song_id, verse_order_override, preview=False):
         """
         Loads a song.
 
         ``song_id``
             The song id (int).
+            
+        ``verse_order_override`
+            A verse order override to apply (string),
+            or None if going to use the verse order in the song,
 
         ``preview``
             Should be ``True`` if the song is also previewed (boolean).
         """
         log.debug('Load Song')
-        self.initialise()
+        self.initialise(not verse_order_override is None)
+            # If verse_order_override is '', we initialise with True (meaning override with default)
         self.song_tab_widget.setCurrentIndex(0)
         self.load_authors()
         self.load_topics()
@@ -428,20 +445,8 @@
                 verse_def = '%s%s' % (VerseType.tags[VerseType.Verse], str(count + 1))
                 item.setData(QtCore.Qt.UserRole, verse_def)
                 self.verse_list_widget.setItem(count, 0, item)
-        if self.song.verse_order:
-            # we translate verse order
-            translated = []
-            for verse_def in self.song.verse_order.split():
-                verse_index = None
-                if verse_tags_translated:
-                    verse_index = VerseType.from_translated_tag(verse_def[0], None)
-                if verse_index is None:
-                    verse_index = VerseType.from_tag(verse_def[0])
-                verse_tag = VerseType.translated_tags[verse_index].upper()
-                translated.append('%s%s' % (verse_tag, verse_def[1:]))
-            self.verse_order_edit.setText(' '.join(translated))
-        else:
-            self.verse_order_edit.setText('')
+        self.verse_order_edit.setText(self._translate_verse_order(self.song.verse_order, verse_tags_translated))
+        self.verse_order_override_edit.setText(self._translate_verse_order(verse_order_override, verse_tags_translated))
         self.tag_rows()
         # clear the results
         self.authors_list_view.clear()
@@ -465,6 +470,33 @@
         self.preview_button.setVisible(preview)
         # Check if all verse tags are used.
         self.on_verse_order_text_changed(self.verse_order_edit.text())
+        self.on_verse_order_override_text_changed(self.verse_order_override_edit.text())
+
+    def _translate_verse_order(self, verse_order, verse_tags_translated):
+        """
+        Loads Translates a verse order into displa format.
+
+        ``verse_order``
+            The input verse order (int).
+            
+        ``verse_tags_translated`
+            True if VerseType.from_translated_tag should be tried first (boolean).
+        """
+        if not verse_order:
+            return ''
+        
+        # we translate verse order
+        translated = []
+        for verse_def in verse_order.split():
+            verse_index = None
+            if verse_tags_translated:
+                verse_index = VerseType.from_translated_tag(verse_def[0], None)
+            if verse_index is None:
+                verse_index = VerseType.from_tag(verse_def[0])
+            verse_tag = VerseType.translated_tags[verse_index].upper()
+            translated.append('%s%s' % (verse_tag, verse_def[1:]))
+
+        return' '.join(translated)
 
     def tag_rows(self):
         """
@@ -481,6 +513,12 @@
         self.verse_list_widget.resizeRowsToContents()
         self.verse_list_widget.repaint()
 
+    def check_verse_tags(self):
+        # Check if all verse tags are used.        
+        self.tag_rows()
+        self.on_verse_order_text_changed(self.verse_order_edit.text())
+        self.on_verse_order_override_text_changed(self.verse_order_override_edit.text())
+
     def on_author_add_button_clicked(self):
         """
         Add the author to the list of authors associated with this song when the button is clicked.
@@ -596,9 +634,7 @@
             item.setText(after_text)
             self.verse_list_widget.setRowCount(self.verse_list_widget.rowCount() + 1)
             self.verse_list_widget.setItem(self.verse_list_widget.rowCount() - 1, 0, item)
-        self.tag_rows()
-        # Check if all verse tags are used.
-        self.on_verse_order_text_changed(self.verse_order_edit.text())
+        self.check_verse_tags()
 
     def on_verse_edit_button_clicked(self):
         item = self.verse_list_widget.currentItem()
@@ -624,9 +660,7 @@
                         item = QtGui.QTableWidgetItem(entry, 0)
                         item.setData(QtCore.Qt.UserRole, temp_ids[row])
                         self.verse_list_widget.setItem(row, 0, item)
-        self.tag_rows()
-        # Check if all verse tags are used.
-        self.on_verse_order_text_changed(self.verse_order_edit.text())
+        self.check_verse_tags()
 
     def on_verse_edit_all_button_clicked(self):
         verse_list = ''
@@ -680,11 +714,9 @@
                         item.setData(QtCore.Qt.UserRole, verse_def)
                         self.verse_list_widget.setRowCount(self.verse_list_widget.rowCount() + 1)
                         self.verse_list_widget.setItem(self.verse_list_widget.rowCount() - 1, 0, item)
-        self.tag_rows()
+        self.check_verse_tags()
         self.verse_edit_button.setEnabled(False)
         self.verse_delete_button.setEnabled(False)
-        # Check if all verse tags are used.
-        self.on_verse_order_text_changed(self.verse_order_edit.text())
 
     def on_verse_delete_button_clicked(self):
         self.verse_list_widget.removeRow(self.verse_list_widget.currentRow())
@@ -720,6 +752,37 @@
             label_text = self.not_all_verses_used_warning
         self.warning_label.setText(label_text)
 
+    def on_verse_order_override_text_changed(self, text):
+        """
+        Checks if the verse order is complete or missing. Shows a error message according to the state of the verse
+        order.
+
+        ``text``
+            The text of the verse order edit (ignored).
+        """
+        
+        if not self.verse_order_override:
+            return
+            
+        # Extract all verses which were used in the order.
+        verses_in_order = self._extract_verse_order(self.verse_order_override_edit.text())
+        # Find the verses which were not used in the order.
+        verses_not_used = []
+        for index in range(self.verse_list_widget.rowCount()):
+            verse = self.verse_list_widget.item(index, 0)
+            verse = verse.data(QtCore.Qt.UserRole)
+            if verse not in verses_in_order:
+                verses_not_used.append(verse)
+        # Set the label text.
+        label_text = ''
+        # No verse order was entered.
+        if not verses_in_order:
+            label_text = self.no_verse_order_entered_warning
+        # The verse order does not contain all verses.
+        elif verses_not_used:
+            label_text = self.not_all_verses_used_warning
+        self.warning_label.setText(label_text)
+    
     def on_copyright_insert_button_triggered(self):
         text = self.copyright_edit.text()
         pos = self.copyright_edit.cursorPosition()

=== modified file 'openlp/plugins/songs/lib/mediaitem.py'
--- openlp/plugins/songs/lib/mediaitem.py	2013-08-31 18:17:38 +0000
+++ openlp/plugins/songs/lib/mediaitem.py	2013-09-09 18:41:28 +0000
@@ -5,11 +5,11 @@
 # OpenLP - Open Source Lyrics Projection                                      #
 # --------------------------------------------------------------------------- #
 # Copyright (c) 2008-2013 Raoul Snyman                                        #
-# Portions copyright (c) 2008-2013 Tim Bentley, Gerald Britton, Jonathan      #
-# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub,      #
-# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer.   #
-# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru,          #
-# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,             #
+# Portions copyright (c) 2008-2013 Stewart Becker, Tim Bentley, Gerald        #
+# Britton, Jonathan Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri,  #
+# Matthias Hub, Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando,     #
+# Brian T. Meyer, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias   #
+# Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,     #
 # Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock,              #
 # Frode Woldsund, Martin Zibricky, Patrick Zimmermann                         #
 # --------------------------------------------------------------------------- #
@@ -75,6 +75,8 @@
         self.single_service_item = False
         # Holds information about whether the edit is remotely triggered and which Song is required.
         self.remote_song = -1
+        self.remote_triggered = False
+        self.remote_order = None
         self.edit_item = None
         self.quick_preview_allowed = True
         self.has_search = True
@@ -315,7 +317,7 @@
     def on_song_maintenance_click(self):
         self.song_maintenance_form.exec_()
 
-    def on_remote_edit(self, song_id, preview=False):
+    def on_remote_edit(self, song_id, data_string, preview=False):
         """
         Called by ServiceManager or SlideController by event passing the Song Id in the payload along with an indicator
         to say which type of display is required.
@@ -324,15 +326,17 @@
         song_id = int(song_id)
         valid = self.plugin.manager.get_object(Song, song_id)
         if valid:
-            self.edit_song_form.load_song(song_id, preview)
+            self.edit_song_form.load_song(song_id, data_string['verse_order'], preview)
             if self.edit_song_form.exec_() == QtGui.QDialog.Accepted:
                 self.auto_select_id = -1
                 self.on_song_list_load()
                 self.remote_song = song_id
                 self.remote_triggered = True
+                self.remote_order = self.edit_song_form.verse_order_override_edit.text()
                 item = self.build_service_item(remote=True)
                 self.remote_song = -1
                 self.remote_triggered = None
+                self.remote_order = None
                 if item:
                     return item
         return None
@@ -345,7 +349,7 @@
         if check_item_selected(self.list_view, UiStrings().SelectEdit):
             self.edit_item = self.list_view.currentItem()
             item_id = self.edit_item.data(QtCore.Qt.UserRole)
-            self.edit_song_form.load_song(item_id, False)
+            self.edit_song_form.load_song(item_id, None, False)
             self.edit_song_form.exec_()
             self.auto_select_id = -1
             self.on_song_list_load()
@@ -406,13 +410,15 @@
         song = self.plugin.manager.get_object(Song, item_id)
         service_item.theme = song.theme_name
         service_item.edit_id = item_id
+        verse_order = ''
+        song_order = self.remote_order if remote else song.verse_order
         if song.lyrics.startswith('<?xml version='):
             verse_list = SongXML().get_verses(song.lyrics)
             # no verse list or only 1 space (in error)
             verse_tags_translated = False
             if VerseType.from_translated_string(str(verse_list[0][0]['type'])) is not None:
                 verse_tags_translated = True
-            if not song.verse_order.strip():
+            if not song_order.strip():
                 for verse in verse_list:
                     # We cannot use from_loose_input() here, because database is supposed to contain English lowercase
                     # singlechar tags.
@@ -427,9 +433,10 @@
                     verse_tag = VerseType.translated_tags[verse_index].upper()
                     verse_def = '%s%s' % (verse_tag, verse[0]['label'])
                     service_item.add_from_text(str(verse[1]), verse_def)
+                    verse_order = '%s %s' % (verse_order,  verse_def)
             else:
                 # Loop through the verse list and expand the song accordingly.
-                for order in song.verse_order.lower().split():
+                for order in song_order.lower().split():
                     if not order:
                         break
                     for verse in verse_list:
@@ -442,13 +449,15 @@
                             verse_tag = VerseType.translated_tags[verse_index]
                             verse_def = '%s%s' % (verse_tag, verse[0]['label'])
                             service_item.add_from_text(verse[1], verse_def)
+                            verse_order = '%s %s' % (verse_order,  verse_def) 
         else:
             verses = song.lyrics.split('\n\n')
             for slide in verses:
                 service_item.add_from_text(str(slide))
         service_item.title = song.title
         author_list = self.generate_footer(service_item, song)
-        service_item.data_string = {'title': song.search_title, 'authors': ', '.join(author_list)}
+        service_item.data_string = {'title': song.search_title, 'authors': ', '.join(author_list),  'verse_order':verse_order.strip()}
+            
         service_item.xml_version = self.openLyrics.song_to_xml(song)
         # Add the audio file to the service item.
         if song.media_files:

=== modified file 'tests/functional/openlp_core_lib/test_serviceitem.py'
--- tests/functional/openlp_core_lib/test_serviceitem.py	2013-08-31 18:17:38 +0000
+++ tests/functional/openlp_core_lib/test_serviceitem.py	2013-09-09 18:41:28 +0000
@@ -163,15 +163,76 @@
         assert service_item.is_capable(ItemCapabilities.CanAppend) is True, \
             'This service item should be able to have new items added to it'
 
-    def convert_file_service_item(self, name, row=0):
+    def convert_file_service_items(self, name):
         service_file = os.path.join(TEST_PATH, name)
         try:
             open_file = open(service_file, 'r')
             items = json.load(open_file)
-            first_line = items[row]
         except IOError:
-            first_line = ''
+            items = []
         finally:
             open_file.close()
+        return items
+
+    def convert_file_service_item(self, name, row=0):
+        items = self.convert_file_service_items(name)
+        try:
+            first_line = items[row]
+        except IndexError:
+            first_line = ''
         return first_line
 
+    def serviceitem_songs_from_service(self, filename):
+        """
+        Test the Service Item - adding songs from a saved service
+        """
+        # GIVEN: A new service item and a mocked add icon function
+        service_item = ServiceItem(None)
+        service_item.add_icon = MagicMock()
+
+        # WHEN: adding songs from a saved Service
+        items = self.convert_file_service_items(filename)
+        
+        # Abide with me: No verse order, should pick up the default
+        # Angels from the realms of glory: Verse order was explicitly set
+        # Give me oil in my lamp: Verse order was changed, then reset
+        # Guide me O thou great Jehovah: Verse order was changed, then reset to ''
+        # To God be the glory: Verse order was changed to '', then reset
+        # Amazing Grace: Verse order was changed, then reset to '' after file was closed
+        # All Things Bright ... : Verse order was changed, then reset to after file was closed
+        # The First Nowell: Verse order was deleted (''), then reset to after file was closed
+        # Joy to the World: Verse 3 was deleted (merged with verse 2) after file was closed
+        
+        expected_data = [{'title':'Abide with me', 'verse_order':'V1 V2 V3 V4 V5'},  \
+            {'title':'Angels from the realsm of glory', 'verse_order':'V1 C1 V2 C1 V3 C1 V4 C1'}, \
+            {'title':'Give me oil in my lamp', 'verse_order':'V1 C1'}, \
+            {'title':'Give me oil in my lamp', 'verse_order':'V1 C1 V2 C1 V3 C1 V4 C1'}, \
+            {'title':'Guide me O thou great Jehovah', 'verse_order':'V1 V2 V3'}, \
+            {'title':'Guide me O thou great Jehovah', 'verse_order':'V1 V3'}, \
+            {'title':'To God Be The Glory', 'verse_order':'V1 C1 V2 V3'}, \
+            {'title':'To God Be The Glory', 'verse_order':'V1 C1 V2 C1 V3 C1'}, \
+            {'title':'Amazing Grace', 'verse_order':'V1 V2 V3 V4 V6'}, \
+            {'title':'All Things Bright And Beautiful', 'verse_order':'V1 V2 V1 V4 V1 V5 V1 V7 V1'}, \
+            {'title':'The First Nowell', 'verse_order':'V1 C1 V2 V3 V4 V5 V6'}, \
+            {'title':'Joy to the World', 'verse_order':'V1 V2 V3'}]
+        
+        # THEN: The service should contain the right number of items
+        assert len(items) == len(expected_data), 'The service should have ' + str(len(expected_data)) + ' items'  
+        
+        for (item,  expected) in zip(items,  expected_data):
+            # THEN: Each service item should have a name and verse order as expected
+            service_item.set_from_service(item)
+            assert 'title' in service_item.data_string,  \
+                    'This service item should have a title in its data string'
+            assert 'verse_order' in service_item.data_string,  \
+                    'This service item should have a verse order in its data string'
+            assert service_item.data_string['title'].lower() == expected['title'].lower() + '@',  \
+                    'The expected title is "' + expected['title'] + '@" (got "'+ service_item.data_string['title'] + '")'
+            assert service_item.data_string['verse_order'] == expected['verse_order'],  \
+                    'The expected verse order for ' + expected['title'] + ' is "' + expected['verse_order'] + '" (got "'+ service_item.data_string['verse_order'] + '")'
+
+    def serviceitem_load_songs_from_old_service_test(self):
+        self.serviceitem_songs_from_service('serviceitem_songs_1.osj')
+
+    def serviceitem_load_songs_from_new_service_test(self):
+        self.serviceitem_songs_from_service('serviceitem_songs_2.osj')

=== modified file 'tests/functional/openlp_plugins/songs/test_mediaitem.py'
--- tests/functional/openlp_plugins/songs/test_mediaitem.py	2013-08-31 18:17:38 +0000
+++ tests/functional/openlp_plugins/songs/test_mediaitem.py	2013-09-09 18:41:28 +0000
@@ -26,9 +26,9 @@
         Registry().register('service_list', MagicMock())
         Registry().register('main_window', MagicMock())
         with patch('openlp.core.lib.mediamanageritem.MediaManagerItem.__init__'), \
-                patch('openlp.plugins.songs.forms.editsongform.EditSongForm.__init__'):
+            patch('openlp.plugins.songs.forms.editsongform.EditSongForm.__init__'):
             self.media_item = SongMediaItem(MagicMock(), MagicMock())
-
+        
         fd, self.ini_file = mkstemp('.ini')
         Settings().set_filename(self.ini_file)
         self.application = QtGui.QApplication.instance()
@@ -45,6 +45,19 @@
             os.unlink(Settings().fileName())
         except Exception:
             pass
+            
+    def init_test(self):
+        # GIVEN: a newly created SongMediaItem from setUp
+        
+        # WHEN: it was first created
+        
+        # THEN: The remote_ ... properties are set
+        assert self.media_item.remote_song == -1, \
+            'SongMediaItem should have a property remote_song which is -1'
+        assert self.media_item.remote_triggered == False, \
+            'SongMediaItem should have a property remote_triggered which is False'
+        assert self.media_item.remote_order is None, \
+            'SongMediaItem should have a property remote_order which is None'
 
     def build_song_footer_one_author_test(self):
         """
@@ -124,3 +137,86 @@
         # THEN: I would get an amended footer string
         self.assertEqual(service_item.raw_footer, ['My Song', 'my author', 'My copyright', 'CCLI License: 4321'],
                          'The array should be returned correctly with a song, an author, copyright and amended ccli')
+
+    def generate_slide_data_from_text_test(self):
+        # GIVEN: Media Item, mocked song with plain text lyrics and methods
+        service_item = MagicMock()
+        song = MagicMock()
+        song.lyrics = 'Mary had a little lamb\n'+ \
+            'It\'s fleece was white as snow\n' + \
+            'And every where that Mary went\n' + \
+            'The lamb was sure to go\n\n' + \
+            'It followed her to school one day\n' + \
+            'It was against the rule\n' + \
+            'It made the children laugh and shout\n' + \
+            'To see a lamb at school'
+        
+        self.media_item.plugin = MagicMock()
+        self.media_item.plugin.manager = MagicMock()
+        self.media_item.plugin.manager.get_object = MagicMock(return_value=song)
+        self.media_item.openLyrics = MagicMock()
+        
+        # WHEN: Service item is built from it
+        self.media_item.generate_slide_data(service_item)
+        
+        #THEN: verse order comes from song
+        assert service_item.data_string['verse_order'] == '',  \
+            'Service Item should have empty verse order'
+
+    def generate_slide_data_from_xml_locally_test(self):
+        # GIVEN: Media Item, mocked song with plain text lyrics and methods
+        service_item = MagicMock()
+        song_order = 'v1'
+        remote_order = 'v1 v1'
+
+        song = MagicMock()
+        song.lyrics = '<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n'+\
+            '<song version="1.0"><lyrics><verse label="1" type="v"><![CDATA['+\
+            'He is Lord, He is Lord,\nHe is risen from the dead\n'+\
+            'And He is Lord.\nEvery knee shall bow,\n'+\
+            'Every tongue confess\nThat Jesus Christ is Lord.]]>'+\
+            '</verse></lyrics></song>'
+        song.verse_order = song_order
+
+        self.media_item.plugin = MagicMock()
+        self.media_item.plugin.manager = MagicMock()
+        self.media_item.plugin.manager.get_object = MagicMock(return_value=song)
+        self.media_item.openLyrics = MagicMock()
+        
+        # WHEN: Service item is built from it
+        self.media_item.remote_order = remote_order
+        self.media_item.generate_slide_data(service_item)
+        self.media_item.remote_order = None
+        
+        #THEN: verse order comes from song
+        assert service_item.data_string['verse_order'] == song_order,  \
+            'Service Item should have verse order "' + song_order + '"'
+
+    def generate_slide_data_from_xml_remotely_test(self):
+        # GIVEN: Media Item, mocked song with plain text lyrics and methods
+        service_item = MagicMock()
+        song_order = 'v1'
+        remote_order = 'v1 v1'
+
+        song = MagicMock()
+        song.lyrics = '<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n'+\
+            '<song version="1.0"><lyrics><verse label="1" type="v"><![CDATA['+\
+            'He is Lord, He is Lord,\nHe is risen from the dead\n'+\
+            'And He is Lord.\nEvery knee shall bow,\n'+\
+            'Every tongue confess\nThat Jesus Christ is Lord.]]>'+\
+            '</verse></lyrics></song>'
+        song.verse_order = song_order
+        
+        self.media_item.plugin = MagicMock()
+        self.media_item.plugin.manager = MagicMock()
+        self.media_item.plugin.manager.get_object = MagicMock(return_value=song)
+        self.media_item.openLyrics = MagicMock()
+        
+        # WHEN: Service item is built from it
+        self.media_item.remote_order = remote_order
+        self.media_item.generate_slide_data(service_item, remote=True)
+        self.media_item.remote_order = None
+        
+        #THEN: verse order comes from song
+        assert service_item.data_string['verse_order'] == remote_order,  \
+            'Service Item should have verse order "' + remote_order + '"'

=== modified file 'tests/interfaces/openlp_plugins/songs/forms/test_editsongform.py'
--- tests/interfaces/openlp_plugins/songs/forms/test_editsongform.py	2013-08-31 18:17:38 +0000
+++ tests/interfaces/openlp_plugins/songs/forms/test_editsongform.py	2013-09-09 18:41:28 +0000
@@ -9,7 +9,6 @@
 from openlp.core.lib import Registry
 from openlp.plugins.songs.forms.editsongform import EditSongForm
 
-
 class TestEditSongForm(TestCase):
     """
     Test the EditSongForm class
@@ -69,7 +68,7 @@
 
     def verse_order_incomplete_warning_test(self):
         """
-        Test if the verse-order-incomple warning is shown
+        Test if the verse-order-incomplete warning is shown
         """
         # GIVEN: Mocked methods.
         given_verse_order = 'V1'
@@ -89,6 +88,228 @@
         assert self.form.warning_label.text() == self.form.not_all_verses_used_warning, \
             'The verse-order-incomplete warning should be shown.'
 
+    def verse_order_empty_warning_test(self):
+        """
+        Test if the verse-order-incomplete warning is shown
+        """
+        # GIVEN: Mocked methods.
+        given_verse_order = ''
+        self.form.verse_list_widget.rowCount = MagicMock(return_value=2)
+        # Mock out the verse.
+        first_verse = MagicMock()
+        first_verse.data = MagicMock(return_value='V1')
+        second_verse = MagicMock()
+        second_verse.data = MagicMock(return_value= 'V2')
+        self.form.verse_list_widget.item = MagicMock(side_effect=[first_verse, second_verse])
+        self.form._extract_verse_order = MagicMock(return_value=[])
+
+        # WHEN: Call the method.
+        self.form.on_verse_order_text_changed(given_verse_order)
+
+        # THEN: The verse-order-incomplete text should be shown.
+        assert self.form.warning_label.text() == self.form.no_verse_order_entered_warning, \
+            'The verse-order-empty warning should be shown.'+self.form.warning_label.text()
+
+    def verse_order_override_nop_test(self):
+        """
+        Test if the verse order override warning is not shown
+        """
+        # GIVEN: Mocked methods.
+        given_verse_order = 'V1 V2'
+        self.form.verse_list_widget.rowCount = MagicMock(return_value=2)
+        # Mock out the verse.
+        first_verse = MagicMock()
+        first_verse.data = MagicMock(return_value='V1')
+        second_verse = MagicMock()
+        second_verse.data = MagicMock(return_value= 'V2')
+        self.form.verse_list_widget.item = MagicMock(side_effect=[first_verse, second_verse])
+        self.form._extract_verse_order = MagicMock(return_value=given_verse_order.split())
+
+        # GIVEN: Verse order override is inactive
+        self.form.initialise(False)
+    
+        # WHEN: Call the method.
+        unexpected_label = 'Spam and eggs'
+        self.form.warning_label.setText(unexpected_label)
+        self.form.on_verse_order_override_text_changed(given_verse_order)
+
+        # THEN: No text should be shown.
+        assert self.form.warning_label.text() == unexpected_label, \
+            'The override warning should not change'
+
+    def verse_order_override_no_warning_test(self):
+        """
+        Test if the verse order override warning is not shown
+        """
+        # GIVEN: Mocked methods.
+        given_verse_order = 'V1 V2'
+        self.form.verse_list_widget.rowCount = MagicMock(return_value=2)
+        # Mock out the verse.
+        first_verse = MagicMock()
+        first_verse.data = MagicMock(return_value='V1')
+        second_verse = MagicMock()
+        second_verse.data = MagicMock(return_value= 'V2')
+        self.form.verse_list_widget.item = MagicMock(side_effect=[first_verse, second_verse])
+        self.form._extract_verse_order = MagicMock(return_value=given_verse_order.split())
+
+        # GIVEN: Verse order override is active
+        self.form.initialise(True)
+    
+        # WHEN: Call the method.
+        self.form.on_verse_order_override_text_changed(given_verse_order)
+
+        # THEN: No text should be shown.
+        assert self.form.warning_label.text() == '', 'There should be no override warning.'
+
+    def verse_order_override_incomplete_warning_test(self):
+        """
+        Test if the verse-order-override-incomplete warning is shown
+        """
+        # GIVEN: Mocked methods.
+        given_verse_order = 'V1'
+        self.form.verse_list_widget.rowCount = MagicMock(return_value=2)
+        # Mock out the verse.
+        first_verse = MagicMock()
+        first_verse.data = MagicMock(return_value='V1')
+        second_verse = MagicMock()
+        second_verse.data = MagicMock(return_value= 'V2')
+        self.form.verse_list_widget.item = MagicMock(side_effect=[first_verse, second_verse])
+        self.form._extract_verse_order = MagicMock(return_value=[given_verse_order])
+
+        # GIVEN: Verse order override is active
+        self.form.initialise(True)
+        
+        # WHEN: The method is called
+        self.form.on_verse_order_override_text_changed(given_verse_order)
+
+        # THEN: The verse-order-incomplete text should be shown.
+        assert self.form.warning_label.text() == self.form.not_all_verses_used_warning, \
+            'The verse-order-override-incomplete warning should be shown.'
+
+    def verse_order_override_empty_warning_test(self):
+        """
+        Test if the verse-order-incomplete warning is shown
+        """
+        # GIVEN: Mocked methods.
+        given_verse_order = ''
+        self.form.verse_list_widget.rowCount = MagicMock(return_value=2)
+        # Mock out the verse.
+        first_verse = MagicMock()
+        first_verse.data = MagicMock(return_value='V1')
+        second_verse = MagicMock()
+        second_verse.data = MagicMock(return_value= 'V2')
+        self.form.verse_list_widget.item = MagicMock(side_effect=[first_verse, second_verse])
+        self.form._extract_verse_order = MagicMock(return_value=[])
+
+        # GIVEN: Verse order override is active
+        self.form.initialise(True)
+        
+        # WHEN: The method is called
+        self.form.on_verse_order_override_text_changed(given_verse_order)
+
+        # THEN: The verse-order-incomplete text should be shown.
+        assert self.form.warning_label.text() == self.form.no_verse_order_entered_warning, \
+            'The verse-order-override-empty warning should be shown.'+self.form.warning_label.text()
+
+    def translate_verse_order_test(self):
+        # GIVEN: a fairly standard verse order
+        verse_order = 'v1 v2 c v3'
+        expected = verse_order.upper()
+        
+        # WHEN: asked to translate it
+        translatedFalse = self.form._translate_verse_order(verse_order,  False)
+        translatedTrue = self.form._translate_verse_order(verse_order,  True)
+        
+        # THEN: It is returned in upper case
+        assert translatedFalse == expected,  'Verse order did not translate properly'
+        assert translatedTrue == expected,  'Verse order did not translate properly'
+
+    def initialise_false_test(self):
+        # GIVEN: form
+        
+        # WHEN: initialised without verse order overriding
+        self.form.initialise(False)
+        
+        #THEN: verse order override flag should not be set
+        assert not self.form.verse_order_override,  \
+            'Verse order override flag should not be set'
+
+        #THEN: verse order override widgets are invisible
+        assert self.form.verse_order_override_label.isHidden(),  \
+            'Verse order override label should be invisible'
+        assert self.form.verse_order_override_edit.isHidden(),  \
+            'Verse order override edit should be invisible'
+    
+    def initialise_true_test(self):
+        # GIVEN: form
+        
+        # WHEN: initialised with verse order overriding
+        self.form.initialise(True)
+        
+        #THEN: verse order override flag should be set
+        assert self.form.verse_order_override,  \
+            'Verse order override flag should be set'
+
+        #THEN: verse order override widgets are visible
+        assert not self.form.verse_order_override_label.isHidden(),  \
+            'Verse order override label should be visible'
+        assert not self.form.verse_order_override_edit.isHidden(),  \
+            'Verse order override edit should be visible'
+    
+    def load_song_test(self):
+        # GIVEN: Mocked methods and objects:
+        self.form.load_authors = MagicMock(side_effects=[])
+        self.form.load_topics = MagicMock(side_effects=[])
+        self.form.load_books = MagicMock(side_effects=[])
+        self.form.load_media_files = MagicMock(side_effects=[])
+        
+        song_id = -1
+        verse_order = 'v1 v2 v3'
+        verse_order_override = 'v1 v2'
+        translated_verse_order = self.form._translate_verse_order(verse_order,  True)
+        translated_verse_order_override = self.form._translate_verse_order(verse_order_override,  True)
+
+        song = MagicMock()
+        song.title = ''
+        song.alternate_title = ''
+        song.copyright = ''
+        song.comments = ''
+        song.ccli_number = None
+        song.song_number = None
+        song.lyrics = ''
+        song.verse_order = verse_order
+        self.form.manager.get_object = MagicMock(return_value=song)
+                
+        # WHEN: Song is loaded
+        self.form.load_song(song_id, verse_order_override)
+        
+        # THEN: verse_order_override is set
+        assert self.form.verse_order_override == True,  \
+            'The verse order override flag should be set'
+        
+        # THEN: verse_order_edit contains the translated verse order
+        assert self.form.verse_order_edit.text() == translated_verse_order,  \
+            'The verse order text should be "' + translated_verse_order + '"'
+
+        # THEN: verse_order_override_edit contains the translated overridden verse order
+        assert self.form.verse_order_override_edit.text() == translated_verse_order_override,  \
+            'The verse order override text should be "' + translated_verse_order_override + '"'
+        
+        # WHEN Song is loaded without verse order override
+        self.form.load_song(song_id, None)
+        
+        #THEN: verse_order_override is not set
+        assert self.form.verse_order_override == False,  \
+            'The verse order override flag should not be set'
+
+        # THEN: verse_order_edit contains the translated verse order
+        assert self.form.verse_order_edit.text() == translated_verse_order,  \
+            'The verse order text should be "' + translated_verse_order + '"'
+
+        # THEN: verse_order_override_edit contains the translated overridden verse order
+        assert self.form.verse_order_override_edit.text() == '',  \
+            'The verse order override text should be ""'
+
     def bug_1170435_test(self):
         """
         Regression test for bug 1170435 (test if "no verse order" message is shown)

=== added file 'tests/resources/serviceitem_songs_1.osj'
--- tests/resources/serviceitem_songs_1.osj	1970-01-01 00:00:00 +0000
+++ tests/resources/serviceitem_songs_1.osj	2013-09-09 18:41:28 +0000
@@ -0,0 +1,1 @@
+[{"serviceitem": {"data": [{"title": "Abide with me, fast falls the ", "raw_slide": "Abide with me, fast falls the eventide;\nThe darkness deepens, Lord, with me abide;\nWhen other helpers fail and comforts flee,\nHelp of the helpless, O abide with me.", "verseTag": "V1"}, {"title": "Swift to its close ebbs out li", "raw_slide": "Swift to its close ebbs out life\u2019s little day;\nEarth\u2019s joys grow dim, its glories pass away;\nChange and decay in all around I see;\nO Thou who changest not, abide with me.", "verseTag": "V2"}, {"title": "I need Thy presence every pass", "raw_slide": "I need Thy presence every passing hour;\nWhat but Thy grace can foil the tempter\u2019s power?\nWho like Thyself my guide and stay can be?\nThrough cloud and sunshine, O abide with me.", "verseTag": "V3"}, {"title": "I fear no foe, with Thee at ha", "raw_slide": "I fear no foe, with Thee at hand to bless;\nIlls have no weight, and tears no bitterness.\nWhere is death\u2019s sting? Where, grave, thy victory? \nI triumph still, if Thou abide with me.", "verseTag": "V4"}, {"title": "Reveal Thyself before my closi", "raw_slide": "Reveal Thyself before my closing eyes;\nShine through the gloom, and point me to the skies,\nHeaven\u2019s morning breaks, and earth\u2019s vain shadows flee;\nIn life, in death, O Lord, abide with me.", "verseTag": "V5"}], "header": {"icon": ":/plugins/plugin_songs.png", "theme": null, "type": 1, "audit": ["Abide With Me", ["W. H. Monk"], "", ""], "end_time": 0, "notes": "", "title": "Abide With Me", "auto_play_slides_once": false, "auto_play_slides_loop": false, "start_time": 0, "background_audio": [], "media_length": 0, "processor": null, "plugin": "songs", "timed_slide_interval": 0, "footer": ["Abide With Me", "W. H. Monk", ""], "search": "", "theme_overwritten": false, "data": {"title": "abide with me@", "authors": "W. H. Monk"}, "name": "songs", "from_plugin": false, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:20:02\"><properties><titles><title>Abide With Me</title></titles><authors><author>W. H. Monk</author></authors></properties><lyrics><verse name=\"v1\"><lines>Abide with me, fast falls the eventide;<br/>The darkness deepens, Lord, with me abide;<br/>When other helpers fail and comforts flee,<br/>Help of the helpless, O abide with me.</lines></verse><verse name=\"v2\"><lines>Swift to its close ebbs out life\u2019s little day;<br/>Earth\u2019s joys grow dim, its glories pass away;<br/>Change and decay in all around I see;<br/>O Thou who changest not, abide with me.</lines></verse><verse name=\"v3\"><lines>I need Thy presence every passing hour;<br/>What but Thy grace can foil the tempter\u2019s power?<br/>Who like Thyself my guide and stay can be?<br/>Through cloud and sunshine, O abide with me.</lines></verse><verse name=\"v4\"><lines>I fear no foe, with Thee at hand to bless;<br/>Ills have no weight, and tears no bitterness.<br/>Where is death\u2019s sting? Where, grave, thy victory? <br/>I triumph still, if Thou abide with me.</lines></verse><verse name=\"v5\"><lines>Reveal Thyself before my closing eyes;<br/>Shine through the gloom, and point me to the skies,<br/>Heaven\u2019s morning breaks, and earth\u2019s vain shadows flee;<br/>In life, in death, O Lord, abide with me.</lines></verse></lyrics></song>", "will_auto_start": false}}}, {"serviceitem": {"data": [{"title": "Angels, from the realsm of Glo", "raw_slide": "Angels, from the realsm of Glory,\nWing your flight o\u2019er all the earth;\nYe who sang creation\u2019s story,\nNow proclaim Messiah\u2019s birth:", "verseTag": "V1"}, {"title": "Come and worship", "raw_slide": "Come and worship\nChrist, the new-born King.\nCome and worship\nWorship Christ, the new-born King.", "verseTag": "C1"}, {"title": "Shepherds, in the field abidin", "raw_slide": "Shepherds, in the field abiding,\nWatching o\u2019er your flocks by night,\nGod with man is now residing,\nYonder shines the infant-light:", "verseTag": "V2"}, {"title": "Come and worship", "raw_slide": "Come and worship\nChrist, the new-born King.\nCome and worship\nWorship Christ, the new-born King.", "verseTag": "C1"}, {"title": "Sages, leave your contemplatio", "raw_slide": "Sages, leave your contemplations,\nBrighter visions beam afar;\nSeek the great desire of nations,\nYe have seen His natal star:", "verseTag": "V3"}, {"title": "Come and worship", "raw_slide": "Come and worship\nChrist, the new-born King.\nCome and worship\nWorship Christ, the new-born King.", "verseTag": "C1"}, {"title": "Saints, before the altar bendi", "raw_slide": "Saints, before the altar bending,\nWatching long in hope and fear,\nSuddenly the Lord descending\nIn His temple shall appear:", "verseTag": "V4"}, {"title": "Come and worship", "raw_slide": "Come and worship\nChrist, the new-born King.\nCome and worship\nWorship Christ, the new-born King.", "verseTag": "C1"}], "header": {"icon": ":/plugins/plugin_songs.png", "theme": null, "type": 1, "audit": ["Angels From the Realsm of Glory", ["James Montgomery"], null, "None"], "end_time": 0, "notes": "", "title": "Angels From the Realsm of Glory", "auto_play_slides_once": false, "auto_play_slides_loop": false, "start_time": 0, "background_audio": [], "media_length": 0, "processor": null, "plugin": "songs", "timed_slide_interval": 0, "footer": ["Angels From the Realsm of Glory", "James Montgomery", null], "search": "", "theme_overwritten": false, "data": {"title": "angels from the realsm of glory@", "authors": "James Montgomery"}, "name": "songs", "from_plugin": false, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:20:04\"><properties><titles><title>Angels From the Realsm of Glory</title></titles><verseOrder>v1 c1 v2 c1 v3 c1 v4 c1</verseOrder><authors><author>James Montgomery</author></authors></properties><lyrics><verse name=\"v1\"><lines>Angels, from the realsm of Glory,<br/>Wing your flight o\u2019er all the earth;<br/>Ye who sang creation\u2019s story,<br/>Now proclaim Messiah\u2019s birth:</lines></verse><verse name=\"c1\"><lines>Come and worship<br/>Christ, the new-born King.<br/>Come and worship<br/>Worship Christ, the new-born King.</lines></verse><verse name=\"v2\"><lines>Shepherds, in the field abiding,<br/>Watching o\u2019er your flocks by night,<br/>God with man is now residing,<br/>Yonder shines the infant-light:</lines></verse><verse name=\"v3\"><lines>Sages, leave your contemplations,<br/>Brighter visions beam afar;<br/>Seek the great desire of nations,<br/>Ye have seen His natal star:</lines></verse><verse name=\"v4\"><lines>Saints, before the altar bending,<br/>Watching long in hope and fear,<br/>Suddenly the Lord descending<br/>In His temple shall appear:</lines></verse></lyrics></song>", "will_auto_start": false}}}, {"serviceitem": {"data": [{"title": "Give me oil in my lamp, keep m", "raw_slide": "Give me oil in my lamp, keep me burning.\nGive me oil in my lamp, I pray.\nGive me oil in my lamp, keep my burning,\nKeep me burning till the break of day.", "verseTag": "V1"}, {"title": "Sing hosanna, sing hosanna,", "raw_slide": "Sing hosanna, sing hosanna,\nSing hosanna to the King of kings.\nSing hosanna, sing hosanna,\nSing hosanna to the King.", "verseTag": "C1"}], "header": {"icon": ":/plugins/plugin_songs.png", "theme": null, "type": 1, "audit": ["Give me oil in my Lamp", ["Author Unknown"], "", ""], "end_time": 0, "notes": "", "title": "Give me oil in my Lamp", "auto_play_slides_once": false, "auto_play_slides_loop": false, "start_time": 0, "background_audio": [], "media_length": 0, "processor": null, "plugin": "songs", "timed_slide_interval": 0, "footer": ["Give me oil in my Lamp", "Author Unknown", ""], "search": "", "theme_overwritten": false, "data": {"title": "give me oil in my lamp@", "authors": "Author Unknown"}, "name": "songs", "from_plugin": false, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:28:50\"><properties><titles><title>Give me oil in my Lamp</title></titles><verseOrder>v1 c1</verseOrder><authors><author>Author Unknown</author></authors></properties><lyrics><verse name=\"v1\"><lines>Give me oil in my lamp, keep me burning.<br/>Give me oil in my lamp, I pray.<br/>Give me oil in my lamp, keep my burning,<br/>Keep me burning till the break of day.</lines></verse><verse name=\"c1\"><lines>Sing hosanna, sing hosanna,<br/>Sing hosanna to the King of kings.<br/>Sing hosanna, sing hosanna,<br/>Sing hosanna to the King.</lines></verse><verse name=\"v2\"><lines>Give me joy in my heart, keep me praising\u2026</lines></verse><verse name=\"v3\"><lines>Give me peace in my heart, keep me resting\u2026</lines></verse><verse name=\"v4\"><lines>Give me love in my heart, keep me serving\u2026</lines></verse></lyrics></song>", "will_auto_start": false}}}, {"serviceitem": {"data": [{"title": "Give me oil in my lamp, keep m", "raw_slide": "Give me oil in my lamp, keep me burning.\nGive me oil in my lamp, I pray.\nGive me oil in my lamp, keep my burning,\nKeep me burning till the break of day.", "verseTag": "V1"}, {"title": "Sing hosanna, sing hosanna,", "raw_slide": "Sing hosanna, sing hosanna,\nSing hosanna to the King of kings.\nSing hosanna, sing hosanna,\nSing hosanna to the King.", "verseTag": "C1"}, {"title": "Give me joy in my heart, keep ", "raw_slide": "Give me joy in my heart, keep me praising\u2026", "verseTag": "V2"}, {"title": "Sing hosanna, sing hosanna,", "raw_slide": "Sing hosanna, sing hosanna,\nSing hosanna to the King of kings.\nSing hosanna, sing hosanna,\nSing hosanna to the King.", "verseTag": "C1"}, {"title": "Give me peace in my heart, kee", "raw_slide": "Give me peace in my heart, keep me resting\u2026", "verseTag": "V3"}, {"title": "Sing hosanna, sing hosanna,", "raw_slide": "Sing hosanna, sing hosanna,\nSing hosanna to the King of kings.\nSing hosanna, sing hosanna,\nSing hosanna to the King.", "verseTag": "C1"}, {"title": "Give me love in my heart, keep", "raw_slide": "Give me love in my heart, keep me serving\u2026", "verseTag": "V4"}, {"title": "Sing hosanna, sing hosanna,", "raw_slide": "Sing hosanna, sing hosanna,\nSing hosanna to the King of kings.\nSing hosanna, sing hosanna,\nSing hosanna to the King.", "verseTag": "C1"}], "header": {"icon": ":/plugins/plugin_songs.png", "theme": null, "type": 1, "audit": ["Give me oil in my Lamp", ["Author Unknown"], "", ""], "end_time": 0, "notes": "", "title": "Give me oil in my Lamp", "auto_play_slides_once": false, "auto_play_slides_loop": false, "start_time": 0, "background_audio": [], "media_length": 0, "processor": null, "plugin": "songs", "timed_slide_interval": 0, "footer": ["Give me oil in my Lamp", "Author Unknown", ""], "search": "", "theme_overwritten": false, "data": {"title": "give me oil in my lamp@", "authors": "Author Unknown"}, "name": "songs", "from_plugin": false, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:28:58\"><properties><titles><title>Give me oil in my Lamp</title></titles><verseOrder>v1 c1 v2 c1 v3 c1 v4 c1</verseOrder><authors><author>Author Unknown</author></authors></properties><lyrics><verse name=\"v1\"><lines>Give me oil in my lamp, keep me burning.<br/>Give me oil in my lamp, I pray.<br/>Give me oil in my lamp, keep my burning,<br/>Keep me burning till the break of day.</lines></verse><verse name=\"c1\"><lines>Sing hosanna, sing hosanna,<br/>Sing hosanna to the King of kings.<br/>Sing hosanna, sing hosanna,<br/>Sing hosanna to the King.</lines></verse><verse name=\"v2\"><lines>Give me joy in my heart, keep me praising\u2026</lines></verse><verse name=\"v3\"><lines>Give me peace in my heart, keep me resting\u2026</lines></verse><verse name=\"v4\"><lines>Give me love in my heart, keep me serving\u2026</lines></verse></lyrics></song>", "will_auto_start": false}}}, {"serviceitem": {"data": [{"title": "Guide me, O thou great Jehovah", "raw_slide": "Guide me, O thou great Jehovah,\nPilgrim through this barren land;\nI am weak, but Thou art mighty,\nHold me with Thy powerful hand:\nBread of heaven, Bread of heaven,\nFeed me now and ever more,\nFeed me now and ever more.", "verseTag": "V1"}, {"title": "Open Thou the crystal fountain", "raw_slide": "Open Thou the crystal fountain\nWhence the healing stream doth flow;\nLet the fiery, cloudy pillar\nLead me all my journey through:\nStrong Deliverer, strong Deliverer,\nBe Thou still my strength and shield,\nBe Thou still my strength and shield.", "verseTag": "V2"}, {"title": "When I tread the verge of Jord", "raw_slide": "When I tread the verge of Jordan\nBid my anxious fears subside;\nDeath of death, and hell\u2019s destruction,\nLand me safe on Canaan\u2019s side:\nSongs of praises, songs of praises,\nI will ever give to Thee,\nI will ever give to Thee.", "verseTag": "V3"}], "header": {"icon": ":/plugins/plugin_songs.png", "theme": null, "type": 1, "audit": ["Guide Me O Thou Great Jehovah", ["William Williams"], "", ""], "end_time": 0, "notes": "", "title": "Guide Me O Thou Great Jehovah", "auto_play_slides_once": false, "auto_play_slides_loop": false, "start_time": 0, "background_audio": [], "media_length": 0, "processor": null, "plugin": "songs", "timed_slide_interval": 0, "footer": ["Guide Me O Thou Great Jehovah", "William Williams", ""], "search": "", "theme_overwritten": false, "data": {"title": "guide me o thou great jehovah@", "authors": "William Williams"}, "name": "songs", "from_plugin": false, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:30:21\"><properties><titles><title>Guide Me O Thou Great Jehovah</title></titles><authors><author>William Williams</author></authors></properties><lyrics><verse name=\"v1\"><lines>Guide me, O thou great Jehovah,<br/>Pilgrim through this barren land;<br/>I am weak, but Thou art mighty,<br/>Hold me with Thy powerful hand:<br/>Bread of heaven, Bread of heaven,<br/>Feed me now and ever more,<br/>Feed me now and ever more.</lines></verse><verse name=\"v2\"><lines>Open Thou the crystal fountain<br/>Whence the healing stream doth flow;<br/>Let the fiery, cloudy pillar<br/>Lead me all my journey through:<br/>Strong Deliverer, strong Deliverer,<br/>Be Thou still my strength and shield,<br/>Be Thou still my strength and shield.</lines></verse><verse name=\"v3\"><lines>When I tread the verge of Jordan<br/>Bid my anxious fears subside;<br/>Death of death, and hell\u2019s destruction,<br/>Land me safe on Canaan\u2019s side:<br/>Songs of praises, songs of praises,<br/>I will ever give to Thee,<br/>I will ever give to Thee.</lines></verse></lyrics></song>", "will_auto_start": false}}}, {"serviceitem": {"data": [{"title": "Guide me, O thou great Jehovah", "raw_slide": "Guide me, O thou great Jehovah,\nPilgrim through this barren land;\nI am weak, but Thou art mighty,\nHold me with Thy powerful hand:\nBread of heaven, Bread of heaven,\nFeed me now and ever more,\nFeed me now and ever more.", "verseTag": "V1"}, {"title": "When I tread the verge of Jord", "raw_slide": "When I tread the verge of Jordan\nBid my anxious fears subside;\nDeath of death, and hell\u2019s destruction,\nLand me safe on Canaan\u2019s side:\nSongs of praises, songs of praises,\nI will ever give to Thee,\nI will ever give to Thee.", "verseTag": "V3"}], "header": {"icon": ":/plugins/plugin_songs.png", "theme": null, "type": 1, "audit": ["Guide Me O Thou Great Jehovah", ["William Williams"], "", ""], "end_time": 0, "notes": "", "title": "Guide Me O Thou Great Jehovah", "auto_play_slides_once": false, "auto_play_slides_loop": false, "start_time": 0, "background_audio": [], "media_length": 0, "processor": null, "plugin": "songs", "timed_slide_interval": 0, "footer": ["Guide Me O Thou Great Jehovah", "William Williams", ""], "search": "", "theme_overwritten": false, "data": {"title": "guide me o thou great jehovah@", "authors": "William Williams"}, "name": "songs", "from_plugin": false, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:30:13\"><properties><titles><title>Guide Me O Thou Great Jehovah</title></titles><verseOrder>v1 v3</verseOrder><authors><author>William Williams</author></authors></properties><lyrics><verse name=\"v1\"><lines>Guide me, O thou great Jehovah,<br/>Pilgrim through this barren land;<br/>I am weak, but Thou art mighty,<br/>Hold me with Thy powerful hand:<br/>Bread of heaven, Bread of heaven,<br/>Feed me now and ever more,<br/>Feed me now and ever more.</lines></verse><verse name=\"v2\"><lines>Open Thou the crystal fountain<br/>Whence the healing stream doth flow;<br/>Let the fiery, cloudy pillar<br/>Lead me all my journey through:<br/>Strong Deliverer, strong Deliverer,<br/>Be Thou still my strength and shield,<br/>Be Thou still my strength and shield.</lines></verse><verse name=\"v3\"><lines>When I tread the verge of Jordan<br/>Bid my anxious fears subside;<br/>Death of death, and hell\u2019s destruction,<br/>Land me safe on Canaan\u2019s side:<br/>Songs of praises, songs of praises,<br/>I will ever give to Thee,<br/>I will ever give to Thee.</lines></verse></lyrics></song>", "will_auto_start": false}}}, {"serviceitem": {"data": [{"title": "To God be the glory! great thi", "raw_slide": "To God be the glory! great things He hath done!\nSo loved He the world that He gave us His Son,\nWho yielded His life an atonement for sin,\nAnd opened the life-gate that all may go in.", "verseTag": "V1"}, {"title": "Praise the Lord! Praise the Lo", "raw_slide": "Praise the Lord! Praise the Lord!\nLet the earth hear His voice!\nPraise the Lord! Praise the Lord!\nLet the people rejoice!\nO come to the Father through Jesus the Son;\nAnd give Him the glory, great things He hath done!", "verseTag": "C1"}, {"title": "O perfect redemption, the purc", "raw_slide": "O perfect redemption, the purchase of blood!\nTo every believer the promise of God;\nThe vilest offender who truly believes,\nThat moment from Jesus a pardon receives.", "verseTag": "V2"}, {"title": "Great things He hath taught us", "raw_slide": "Great things He hath taught us, great things He hath done,\nAnd great our rejoicing through Jesus the Son:\nBut purer and higher and greater will be\nOur wonder, our worship, when Jesus we see!", "verseTag": "V3"}], "header": {"icon": ":/plugins/plugin_songs.png", "theme": null, "type": 1, "audit": ["To God be the Glory", ["Fanny Crosby"], "", ""], "end_time": 0, "notes": "", "title": "To God be the Glory", "auto_play_slides_once": false, "auto_play_slides_loop": false, "start_time": 0, "background_audio": [], "media_length": 0, "processor": null, "plugin": "songs", "timed_slide_interval": 0, "footer": ["To God be the Glory", "Fanny Crosby", ""], "search": "", "theme_overwritten": false, "data": {"title": "to god be the glory@", "authors": "Fanny Crosby"}, "name": "songs", "from_plugin": false, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:49:50\"><properties><titles><title>To God be the Glory</title></titles><authors><author>Fanny Crosby</author></authors></properties><lyrics><verse name=\"v1\"><lines>To God be the glory! great things He hath done!<br/>So loved He the world that He gave us His Son,<br/>Who yielded His life an atonement for sin,<br/>And opened the life-gate that all may go in.</lines></verse><verse name=\"c1\"><lines>Praise the Lord! Praise the Lord!<br/>Let the earth hear His voice!<br/>Praise the Lord! Praise the Lord!<br/>Let the people rejoice!<br/>O come to the Father through Jesus the Son;<br/>And give Him the glory, great things He hath done!</lines></verse><verse name=\"v2\"><lines>O perfect redemption, the purchase of blood!<br/>To every believer the promise of God;<br/>The vilest offender who truly believes,<br/>That moment from Jesus a pardon receives.</lines></verse><verse name=\"v3\"><lines>Great things He hath taught us, great things He hath done,<br/>And great our rejoicing through Jesus the Son:<br/>But purer and higher and greater will be<br/>Our wonder, our worship, when Jesus we see!</lines></verse></lyrics></song>", "will_auto_start": false}}}, {"serviceitem": {"data": [{"title": "To God be the glory! great thi", "raw_slide": "To God be the glory! great things He hath done!\nSo loved He the world that He gave us His Son,\nWho yielded His life an atonement for sin,\nAnd opened the life-gate that all may go in.", "verseTag": "V1"}, {"title": "Praise the Lord! Praise the Lo", "raw_slide": "Praise the Lord! Praise the Lord!\nLet the earth hear His voice!\nPraise the Lord! Praise the Lord!\nLet the people rejoice!\nO come to the Father through Jesus the Son;\nAnd give Him the glory, great things He hath done!", "verseTag": "C1"}, {"title": "O perfect redemption, the purc", "raw_slide": "O perfect redemption, the purchase of blood!\nTo every believer the promise of God;\nThe vilest offender who truly believes,\nThat moment from Jesus a pardon receives.", "verseTag": "V2"}, {"title": "Praise the Lord! Praise the Lo", "raw_slide": "Praise the Lord! Praise the Lord!\nLet the earth hear His voice!\nPraise the Lord! Praise the Lord!\nLet the people rejoice!\nO come to the Father through Jesus the Son;\nAnd give Him the glory, great things He hath done!", "verseTag": "C1"}, {"title": "Great things He hath taught us", "raw_slide": "Great things He hath taught us, great things He hath done,\nAnd great our rejoicing through Jesus the Son:\nBut purer and higher and greater will be\nOur wonder, our worship, when Jesus we see!", "verseTag": "V3"}, {"title": "Praise the Lord! Praise the Lo", "raw_slide": "Praise the Lord! Praise the Lord!\nLet the earth hear His voice!\nPraise the Lord! Praise the Lord!\nLet the people rejoice!\nO come to the Father through Jesus the Son;\nAnd give Him the glory, great things He hath done!", "verseTag": "C1"}], "header": {"icon": ":/plugins/plugin_songs.png", "theme": null, "type": 1, "audit": ["To God be the Glory", ["Fanny Crosby"], "", ""], "end_time": 0, "notes": "", "title": "To God be the Glory", "auto_play_slides_once": false, "auto_play_slides_loop": false, "start_time": 0, "background_audio": [], "media_length": 0, "processor": null, "plugin": "songs", "timed_slide_interval": 0, "footer": ["To God be the Glory", "Fanny Crosby", ""], "search": "", "theme_overwritten": false, "data": {"title": "to god be the glory@", "authors": "Fanny Crosby"}, "name": "songs", "from_plugin": false, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:49:16\"><properties><titles><title>To God be the Glory</title></titles><verseOrder>v1 c1 v2 c1 v3 c1</verseOrder><authors><author>Fanny Crosby</author></authors></properties><lyrics><verse name=\"v1\"><lines>To God be the glory! great things He hath done!<br/>So loved He the world that He gave us His Son,<br/>Who yielded His life an atonement for sin,<br/>And opened the life-gate that all may go in.</lines></verse><verse name=\"c1\"><lines>Praise the Lord! Praise the Lord!<br/>Let the earth hear His voice!<br/>Praise the Lord! Praise the Lord!<br/>Let the people rejoice!<br/>O come to the Father through Jesus the Son;<br/>And give Him the glory, great things He hath done!</lines></verse><verse name=\"v2\"><lines>O perfect redemption, the purchase of blood!<br/>To every believer the promise of God;<br/>The vilest offender who truly believes,<br/>That moment from Jesus a pardon receives.</lines></verse><verse name=\"v3\"><lines>Great things He hath taught us, great things He hath done,<br/>And great our rejoicing through Jesus the Son:<br/>But purer and higher and greater will be<br/>Our wonder, our worship, when Jesus we see!</lines></verse></lyrics></song>", "will_auto_start": false}}}, {"serviceitem": {"data": [{"title": "Amazing Grace! how sweet the s", "raw_slide": "Amazing Grace! how sweet the sound\nThat saved a wretch like me;\nI once was lost, but now am found,\nWas blind, but now I see.", "verseTag": "V1"}, {"title": "\u2019Twas grace that taught my hea", "raw_slide": "\u2019Twas grace that taught my heart to fear,\nAnd grace my fears relieved;\nHow precious did that grace appear,\nThe hour I first believed!", "verseTag": "V2"}, {"title": "Through many dangers, toils an", "raw_slide": "Through many dangers, toils and snares\nI have already come;\n\u2019Tis grace that brought me safe thus far,\nAnd grace will lead me home.", "verseTag": "V3"}, {"title": "The Lord has promised good to ", "raw_slide": "The Lord has promised good to me,\nHis word my hope secures;\nHe will my shield and portion be\nAs long as life endures.", "verseTag": "V4"}, {"title": "When we\u2019ve been there a thousa", "raw_slide": "When we\u2019ve been there a thousand years,\nBright shining as the sun,\nWe\u2019ve no less days to sing God\u2019s praise\nThan when we first begun.", "verseTag": "V6"}], "header": {"icon": ":/plugins/plugin_songs.png", "theme": null, "type": 1, "audit": ["Amazing Grace", ["John Newton"], "", ""], "end_time": 0, "notes": "", "title": "Amazing Grace", "auto_play_slides_once": false, "auto_play_slides_loop": false, "start_time": 0, "background_audio": [], "media_length": 0, "processor": null, "plugin": "songs", "timed_slide_interval": 0, "footer": ["Amazing Grace", "John Newton", ""], "search": "", "theme_overwritten": false, "data": {"title": "amazing grace@", "authors": "John Newton"}, "name": "songs", "from_plugin": false, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:46:56\"><properties><titles><title>Amazing Grace</title></titles><verseOrder>v1 v2 v3 v4 v6</verseOrder><authors><author>John Newton</author></authors></properties><lyrics><verse name=\"v1\"><lines>Amazing Grace! how sweet the sound<br/>That saved a wretch like me;<br/>I once was lost, but now am found,<br/>Was blind, but now I see.</lines></verse><verse name=\"v2\"><lines>\u2019Twas grace that taught my heart to fear,<br/>And grace my fears relieved;<br/>How precious did that grace appear,<br/>The hour I first believed!</lines></verse><verse name=\"v3\"><lines>Through many dangers, toils and snares<br/>I have already come;<br/>\u2019Tis grace that brought me safe thus far,<br/>And grace will lead me home.</lines></verse><verse name=\"v4\"><lines>The Lord has promised good to me,<br/>His word my hope secures;<br/>He will my shield and portion be<br/>As long as life endures.</lines></verse><verse name=\"v5\"><lines>Yes, when this heart and flesh shall fail,<br/>And mortal life shall cease,<br/>I shall possess within the veil<br/>A life of joy and peace.</lines></verse><verse name=\"v6\"><lines>When we\u2019ve been there a thousand years,<br/>Bright shining as the sun,<br/>We\u2019ve no less days to sing God\u2019s praise<br/>Than when we first begun.</lines></verse></lyrics></song>", "will_auto_start": false}}}, {"serviceitem": {"data": [{"title": "All things bright and beautifu", "raw_slide": "All things bright and beautiful,\nAll creatures great and small,\nAll things wise and wonderful,\nThe Lord God made them all.", "verseTag": "V1"}, {"title": "Each little flower that opens,", "raw_slide": "Each little flower that opens,\nEach little bird that sings,\nHe made their glowing colours,\nHe made their tiny wings.", "verseTag": "V2"}, {"title": "All things bright and beautifu", "raw_slide": "All things bright and beautiful,\nAll creatures great and small,\nAll things wise and wonderful,\nThe Lord God made them all.", "verseTag": "V1"}, {"title": "The purple-headed mountain,", "raw_slide": "The purple-headed mountain,\nThe river running by,\nThe sunset, and the morning\nThat brightens up the sky.", "verseTag": "V4"}, {"title": "All things bright and beautifu", "raw_slide": "All things bright and beautiful,\nAll creatures great and small,\nAll things wise and wonderful,\nThe Lord God made them all.", "verseTag": "V1"}, {"title": "The cold wind in the winter,", "raw_slide": "The cold wind in the winter,\nThe pleasant summer sun,\nThe ripe fruits in the garden,\nHe made them every one.", "verseTag": "V5"}, {"title": "All things bright and beautifu", "raw_slide": "All things bright and beautiful,\nAll creatures great and small,\nAll things wise and wonderful,\nThe Lord God made them all.", "verseTag": "V1"}, {"title": "He gave us eyes to see them,", "raw_slide": "He gave us eyes to see them,\nAnd lips that we might tell\nHow great is God Almighty,\nWho has made all things well.", "verseTag": "V7"}, {"title": "All things bright and beautifu", "raw_slide": "All things bright and beautiful,\nAll creatures great and small,\nAll things wise and wonderful,\nThe Lord God made them all.", "verseTag": "V1"}], "header": {"icon": ":/plugins/plugin_songs.png", "theme": null, "type": 1, "audit": ["All Things Bright and Beautiful", ["Cecil F. Alexander"], "", ""], "end_time": 0, "notes": "", "title": "All Things Bright and Beautiful", "auto_play_slides_once": false, "auto_play_slides_loop": false, "start_time": 0, "background_audio": [], "media_length": 0, "processor": null, "plugin": "songs", "timed_slide_interval": 0, "footer": ["All Things Bright and Beautiful", "Cecil F. Alexander", ""], "search": "", "theme_overwritten": false, "data": {"title": "all things bright and beautiful@", "authors": "Cecil F. Alexander"}, "name": "songs", "from_plugin": false, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:42:02\"><properties><titles><title>All Things Bright and Beautiful</title></titles><verseOrder>v1 v2 v1 v4 v1 v5 v1 v7 v1</verseOrder><authors><author>Cecil F. Alexander</author></authors></properties><lyrics><verse name=\"v1\"><lines>All things bright and beautiful,<br/>All creatures great and small,<br/>All things wise and wonderful,<br/>The Lord God made them all.</lines></verse><verse name=\"v2\"><lines>Each little flower that opens,<br/>Each little bird that sings,<br/>He made their glowing colours,<br/>He made their tiny wings.</lines></verse><verse name=\"v3\"><lines>The rich man in his castle,<br/>The poor man at his gate,<br/>God made them high and lowly,<br/>And ordered their estate.</lines></verse><verse name=\"v4\"><lines>The purple-headed mountain,<br/>The river running by,<br/>The sunset, and the morning<br/>That brightens up the sky.</lines></verse><verse name=\"v5\"><lines>The cold wind in the winter,<br/>The pleasant summer sun,<br/>The ripe fruits in the garden,<br/>He made them every one.</lines></verse><verse name=\"v6\"><lines>The tall trees in the greenwood,<br/>The meadows where we play,<br/>The rushes by the water,<br/>We gather every day.</lines></verse><verse name=\"v7\"><lines>He gave us eyes to see them,<br/>And lips that we might tell<br/>How great is God Almighty,<br/>Who has made all things well.</lines></verse></lyrics></song>", "will_auto_start": false}}}, {"serviceitem": {"data": [{"title": "The first nowell the angel did", "raw_slide": "The first nowell the angel did say\nWas to certain poor shepherds in fields as they lay;\nIn fields where they lay keeping their sheep,\nOn a cold winter\u2019s night that was so deep.", "verseTag": "V1"}, {"title": "Nowell, nowell, nowell, nowell", "raw_slide": "Nowell, nowell, nowell, nowell,\nBorn is the King of Israel!", "verseTag": "C1"}, {"title": "They looked up and saw a star", "raw_slide": "They looked up and saw a star\nShining in the east, beyond them far,\nAnd to the earth it gave great light,\nAnd so it continued both day and night.", "verseTag": "V2"}, {"title": "And by the light of that same ", "raw_slide": "And by the light of that same star\nThree wise men came from country far;\nTo seek for a King was their intent,\nAnd to follow the star wherever it went.", "verseTag": "V3"}, {"title": "This star drew nigh to the nor", "raw_slide": "This star drew nigh to the north-west;\nOver Bethlehem it took its rest,\nAnd there it did both stop and stay\nRight over the place where Jesus lay.", "verseTag": "V4"}, {"title": "Then entered in those wise men", "raw_slide": "Then entered in those wise men three\nFull reverently upon their knee,\nAnd offered there in His presence\nTheir gold, and myrrh, and frankincense.", "verseTag": "V5"}, {"title": "Then let us all with one accor", "raw_slide": "Then let us all with one accord\nSing praises to our heavenly Lord,\nThat hath made heaven and earth of nought,\nAnd with His blood mankind hath bought.", "verseTag": "V6"}], "header": {"icon": ":/plugins/plugin_songs.png", "theme": null, "type": 1, "audit": ["The First Nowell", ["Author Unknown"], "", ""], "end_time": 0, "notes": "", "title": "The First Nowell", "auto_play_slides_once": false, "auto_play_slides_loop": false, "start_time": 0, "background_audio": [], "media_length": 0, "processor": null, "plugin": "songs", "timed_slide_interval": 0, "footer": ["The First Nowell", "Author Unknown", ""], "search": "", "theme_overwritten": false, "data": {"title": "the first nowell@", "authors": "Author Unknown"}, "name": "songs", "from_plugin": false, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:46:18\"><properties><titles><title>The First Nowell</title></titles><authors><author>Author Unknown</author></authors></properties><lyrics><verse name=\"v1\"><lines>The first nowell the angel did say<br/>Was to certain poor shepherds in fields as they lay;<br/>In fields where they lay keeping their sheep,<br/>On a cold winter\u2019s night that was so deep.</lines></verse><verse name=\"c1\"><lines>Nowell, nowell, nowell, nowell,<br/>Born is the King of Israel!</lines></verse><verse name=\"v2\"><lines>They looked up and saw a star<br/>Shining in the east, beyond them far,<br/>And to the earth it gave great light,<br/>And so it continued both day and night.</lines></verse><verse name=\"v3\"><lines>And by the light of that same star<br/>Three wise men came from country far;<br/>To seek for a King was their intent,<br/>And to follow the star wherever it went.</lines></verse><verse name=\"v4\"><lines>This star drew nigh to the north-west;<br/>Over Bethlehem it took its rest,<br/>And there it did both stop and stay<br/>Right over the place where Jesus lay.</lines></verse><verse name=\"v5\"><lines>Then entered in those wise men three<br/>Full reverently upon their knee,<br/>And offered there in His presence<br/>Their gold, and myrrh, and frankincense.</lines></verse><verse name=\"v6\"><lines>Then let us all with one accord<br/>Sing praises to our heavenly Lord,<br/>That hath made heaven and earth of nought,<br/>And with His blood mankind hath bought.</lines></verse></lyrics></song>", "will_auto_start": false}}}, {"serviceitem": {"data": [{"title": "Joy to the world! the Lord has", "raw_slide": "Joy to the world! the Lord has come;\nLet earth receive her King.\nLet every heart prepare Him room,\nAnd heaven and nature sing,\nAnd heaven and nature sing,\nAnd heaven, and heaven and nature sing!", "verseTag": "V1"}, {"title": "Joy to the earth! the Saviour ", "raw_slide": "Joy to the earth! the Saviour reigns;\nYour sweetest songs employ.\nWhile fields and streams and hills and plains\nRepeat the sounding joy,\nRepeat the sounding joy,\nRepeat, repeat the sounding joy!", "verseTag": "V2"}, {"title": "He rules the world with truth ", "raw_slide": "He rules the world with truth and grace,\nAnd makes the nations prove\nThe glories of His righteousness,\nThe wonders of His love,\nThe wonders of His love,\nThe wonders, the wonders of His love.", "verseTag": "V3"}], "header": {"icon": ":/plugins/plugin_songs.png", "theme": null, "type": 1, "audit": ["Joy To the World", ["Isaac Watts"], "", ""], "end_time": 0, "notes": "", "title": "Joy To the World", "auto_play_slides_once": false, "auto_play_slides_loop": false, "start_time": 0, "background_audio": [], "media_length": 0, "processor": null, "plugin": "songs", "timed_slide_interval": 0, "footer": ["Joy To the World", "Isaac Watts", ""], "search": "", "theme_overwritten": false, "data": {"title": "joy to the world@", "authors": "Isaac Watts"}, "name": "songs", "from_plugin": false, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T10:23:34\"><properties><titles><title>Joy To the World</title></titles><authors><author>Isaac Watts</author></authors></properties><lyrics><verse name=\"v1\"><lines>Joy to the world! the Lord has come;<br/>Let earth receive her King.<br/>Let every heart prepare Him room,<br/>And heaven and nature sing,<br/>And heaven and nature sing,<br/>And heaven, and heaven and nature sing!</lines></verse><verse name=\"v2\"><lines>Joy to the earth! the Saviour reigns;<br/>Your sweetest songs employ.<br/>While fields and streams and hills and plains<br/>Repeat the sounding joy,<br/>Repeat the sounding joy,<br/>Repeat, repeat the sounding joy!</lines></verse><verse name=\"v3\"><lines>He rules the world with truth and grace,<br/>And makes the nations prove<br/>The glories of His righteousness,<br/>The wonders of His love,<br/>The wonders of His love,<br/>The wonders, the wonders of His love.</lines></verse></lyrics></song>", "will_auto_start": false}}}]
\ No newline at end of file

=== added file 'tests/resources/serviceitem_songs_2.osj'
--- tests/resources/serviceitem_songs_2.osj	1970-01-01 00:00:00 +0000
+++ tests/resources/serviceitem_songs_2.osj	2013-09-09 18:41:28 +0000
@@ -0,0 +1,1 @@
+[{"serviceitem": {"header": {"auto_play_slides_once": false, "processor": null, "data": {"verse_order": "V1 V2 V3 V4 V5", "authors": "W. H. Monk", "title": "abide with me@"}, "theme_overwritten": false, "theme": null, "end_time": 0, "start_time": 0, "media_length": 0, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:20:02\"><properties><titles><title>Abide With Me</title></titles><authors><author>W. H. Monk</author></authors></properties><lyrics><verse name=\"v1\"><lines>Abide with me, fast falls the eventide;<br/>The darkness deepens, Lord, with me abide;<br/>When other helpers fail and comforts flee,<br/>Help of the helpless, O abide with me.</lines></verse><verse name=\"v2\"><lines>Swift to its close ebbs out life\u2019s little day;<br/>Earth\u2019s joys grow dim, its glories pass away;<br/>Change and decay in all around I see;<br/>O Thou who changest not, abide with me.</lines></verse><verse name=\"v3\"><lines>I need Thy presence every passing hour;<br/>What but Thy grace can foil the tempter\u2019s power?<br/>Who like Thyself my guide and stay can be?<br/>Through cloud and sunshine, O abide with me.</lines></verse><verse name=\"v4\"><lines>I fear no foe, with Thee at hand to bless;<br/>Ills have no weight, and tears no bitterness.<br/>Where is death\u2019s sting? Where, grave, thy victory? <br/>I triumph still, if Thou abide with me.</lines></verse><verse name=\"v5\"><lines>Reveal Thyself before my closing eyes;<br/>Shine through the gloom, and point me to the skies,<br/>Heaven\u2019s morning breaks, and earth\u2019s vain shadows flee;<br/>In life, in death, O Lord, abide with me.</lines></verse></lyrics></song>", "audit": ["Abide With Me", ["W. H. Monk"], "", ""], "auto_play_slides_loop": false, "title": "Abide With Me", "type": 1, "icon": ":/plugins/plugin_songs.png", "name": "songs", "background_audio": [], "notes": "", "from_plugin": false, "plugin": "songs", "will_auto_start": false, "search": "", "timed_slide_interval": 0, "footer": ["Abide With Me", "W. H. Monk", ""]}, "data": [{"verseTag": "V1", "raw_slide": "Abide with me, fast falls the eventide;\nThe darkness deepens, Lord, with me abide;\nWhen other helpers fail and comforts flee,\nHelp of the helpless, O abide with me.", "title": "Abide with me, fast falls the "}, {"verseTag": "V2", "raw_slide": "Swift to its close ebbs out life\u2019s little day;\nEarth\u2019s joys grow dim, its glories pass away;\nChange and decay in all around I see;\nO Thou who changest not, abide with me.", "title": "Swift to its close ebbs out li"}, {"verseTag": "V3", "raw_slide": "I need Thy presence every passing hour;\nWhat but Thy grace can foil the tempter\u2019s power?\nWho like Thyself my guide and stay can be?\nThrough cloud and sunshine, O abide with me.", "title": "I need Thy presence every pass"}, {"verseTag": "V4", "raw_slide": "I fear no foe, with Thee at hand to bless;\nIlls have no weight, and tears no bitterness.\nWhere is death\u2019s sting? Where, grave, thy victory? \nI triumph still, if Thou abide with me.", "title": "I fear no foe, with Thee at ha"}, {"verseTag": "V5", "raw_slide": "Reveal Thyself before my closing eyes;\nShine through the gloom, and point me to the skies,\nHeaven\u2019s morning breaks, and earth\u2019s vain shadows flee;\nIn life, in death, O Lord, abide with me.", "title": "Reveal Thyself before my closi"}]}}, {"serviceitem": {"header": {"auto_play_slides_once": false, "processor": null, "data": {"verse_order": "V1 C1 V2 C1 V3 C1 V4 C1", "authors": "James Montgomery", "title": "angels from the realsm of glory@"}, "theme_overwritten": false, "theme": null, "end_time": 0, "start_time": 0, "media_length": 0, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:20:04\"><properties><titles><title>Angels From the Realsm of Glory</title></titles><verseOrder>v1 c1 v2 c1 v3 c1 v4 c1</verseOrder><authors><author>James Montgomery</author></authors></properties><lyrics><verse name=\"v1\"><lines>Angels, from the realsm of Glory,<br/>Wing your flight o\u2019er all the earth;<br/>Ye who sang creation\u2019s story,<br/>Now proclaim Messiah\u2019s birth:</lines></verse><verse name=\"c1\"><lines>Come and worship<br/>Christ, the new-born King.<br/>Come and worship<br/>Worship Christ, the new-born King.</lines></verse><verse name=\"v2\"><lines>Shepherds, in the field abiding,<br/>Watching o\u2019er your flocks by night,<br/>God with man is now residing,<br/>Yonder shines the infant-light:</lines></verse><verse name=\"v3\"><lines>Sages, leave your contemplations,<br/>Brighter visions beam afar;<br/>Seek the great desire of nations,<br/>Ye have seen His natal star:</lines></verse><verse name=\"v4\"><lines>Saints, before the altar bending,<br/>Watching long in hope and fear,<br/>Suddenly the Lord descending<br/>In His temple shall appear:</lines></verse></lyrics></song>", "audit": ["Angels From the Realsm of Glory", ["James Montgomery"], null, "None"], "auto_play_slides_loop": false, "title": "Angels From the Realsm of Glory", "type": 1, "icon": ":/plugins/plugin_songs.png", "name": "songs", "background_audio": [], "notes": "", "from_plugin": false, "plugin": "songs", "will_auto_start": false, "search": "", "timed_slide_interval": 0, "footer": ["Angels From the Realsm of Glory", "James Montgomery", null]}, "data": [{"verseTag": "V1", "raw_slide": "Angels, from the realsm of Glory,\nWing your flight o\u2019er all the earth;\nYe who sang creation\u2019s story,\nNow proclaim Messiah\u2019s birth:", "title": "Angels, from the realsm of Glo"}, {"verseTag": "C1", "raw_slide": "Come and worship\nChrist, the new-born King.\nCome and worship\nWorship Christ, the new-born King.", "title": "Come and worship"}, {"verseTag": "V2", "raw_slide": "Shepherds, in the field abiding,\nWatching o\u2019er your flocks by night,\nGod with man is now residing,\nYonder shines the infant-light:", "title": "Shepherds, in the field abidin"}, {"verseTag": "C1", "raw_slide": "Come and worship\nChrist, the new-born King.\nCome and worship\nWorship Christ, the new-born King.", "title": "Come and worship"}, {"verseTag": "V3", "raw_slide": "Sages, leave your contemplations,\nBrighter visions beam afar;\nSeek the great desire of nations,\nYe have seen His natal star:", "title": "Sages, leave your contemplatio"}, {"verseTag": "C1", "raw_slide": "Come and worship\nChrist, the new-born King.\nCome and worship\nWorship Christ, the new-born King.", "title": "Come and worship"}, {"verseTag": "V4", "raw_slide": "Saints, before the altar bending,\nWatching long in hope and fear,\nSuddenly the Lord descending\nIn His temple shall appear:", "title": "Saints, before the altar bendi"}, {"verseTag": "C1", "raw_slide": "Come and worship\nChrist, the new-born King.\nCome and worship\nWorship Christ, the new-born King.", "title": "Come and worship"}]}}, {"serviceitem": {"header": {"auto_play_slides_once": false, "processor": null, "data": {"verse_order": "V1 C1", "authors": "Author Unknown", "title": "give me oil in my lamp@"}, "theme_overwritten": false, "theme": null, "end_time": 0, "start_time": 0, "media_length": 0, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:28:50\"><properties><titles><title>Give me oil in my Lamp</title></titles><verseOrder>v1 c1</verseOrder><authors><author>Author Unknown</author></authors></properties><lyrics><verse name=\"v1\"><lines>Give me oil in my lamp, keep me burning.<br/>Give me oil in my lamp, I pray.<br/>Give me oil in my lamp, keep my burning,<br/>Keep me burning till the break of day.</lines></verse><verse name=\"c1\"><lines>Sing hosanna, sing hosanna,<br/>Sing hosanna to the King of kings.<br/>Sing hosanna, sing hosanna,<br/>Sing hosanna to the King.</lines></verse><verse name=\"v2\"><lines>Give me joy in my heart, keep me praising\u2026</lines></verse><verse name=\"v3\"><lines>Give me peace in my heart, keep me resting\u2026</lines></verse><verse name=\"v4\"><lines>Give me love in my heart, keep me serving\u2026</lines></verse></lyrics></song>", "audit": ["Give me oil in my Lamp", ["Author Unknown"], "", ""], "auto_play_slides_loop": false, "title": "Give me oil in my Lamp", "type": 1, "icon": ":/plugins/plugin_songs.png", "name": "songs", "background_audio": [], "notes": "", "from_plugin": false, "plugin": "songs", "will_auto_start": false, "search": "", "timed_slide_interval": 0, "footer": ["Give me oil in my Lamp", "Author Unknown", ""]}, "data": [{"verseTag": "V1", "raw_slide": "Give me oil in my lamp, keep me burning.\nGive me oil in my lamp, I pray.\nGive me oil in my lamp, keep my burning,\nKeep me burning till the break of day.", "title": "Give me oil in my lamp, keep m"}, {"verseTag": "C1", "raw_slide": "Sing hosanna, sing hosanna,\nSing hosanna to the King of kings.\nSing hosanna, sing hosanna,\nSing hosanna to the King.", "title": "Sing hosanna, sing hosanna,"}]}}, {"serviceitem": {"header": {"auto_play_slides_once": false, "processor": null, "data": {"verse_order": "V1 C1 V2 C1 V3 C1 V4 C1", "authors": "Author Unknown", "title": "give me oil in my lamp@"}, "theme_overwritten": false, "theme": null, "end_time": 0, "start_time": 0, "media_length": 0, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:28:58\"><properties><titles><title>Give me oil in my Lamp</title></titles><verseOrder>v1 c1 v2 c1 v3 c1 v4 c1</verseOrder><authors><author>Author Unknown</author></authors></properties><lyrics><verse name=\"v1\"><lines>Give me oil in my lamp, keep me burning.<br/>Give me oil in my lamp, I pray.<br/>Give me oil in my lamp, keep my burning,<br/>Keep me burning till the break of day.</lines></verse><verse name=\"c1\"><lines>Sing hosanna, sing hosanna,<br/>Sing hosanna to the King of kings.<br/>Sing hosanna, sing hosanna,<br/>Sing hosanna to the King.</lines></verse><verse name=\"v2\"><lines>Give me joy in my heart, keep me praising\u2026</lines></verse><verse name=\"v3\"><lines>Give me peace in my heart, keep me resting\u2026</lines></verse><verse name=\"v4\"><lines>Give me love in my heart, keep me serving\u2026</lines></verse></lyrics></song>", "audit": ["Give me oil in my Lamp", ["Author Unknown"], "", ""], "auto_play_slides_loop": false, "title": "Give me oil in my Lamp", "type": 1, "icon": ":/plugins/plugin_songs.png", "name": "songs", "background_audio": [], "notes": "", "from_plugin": false, "plugin": "songs", "will_auto_start": false, "search": "", "timed_slide_interval": 0, "footer": ["Give me oil in my Lamp", "Author Unknown", ""]}, "data": [{"verseTag": "V1", "raw_slide": "Give me oil in my lamp, keep me burning.\nGive me oil in my lamp, I pray.\nGive me oil in my lamp, keep my burning,\nKeep me burning till the break of day.", "title": "Give me oil in my lamp, keep m"}, {"verseTag": "C1", "raw_slide": "Sing hosanna, sing hosanna,\nSing hosanna to the King of kings.\nSing hosanna, sing hosanna,\nSing hosanna to the King.", "title": "Sing hosanna, sing hosanna,"}, {"verseTag": "V2", "raw_slide": "Give me joy in my heart, keep me praising\u2026", "title": "Give me joy in my heart, keep "}, {"verseTag": "C1", "raw_slide": "Sing hosanna, sing hosanna,\nSing hosanna to the King of kings.\nSing hosanna, sing hosanna,\nSing hosanna to the King.", "title": "Sing hosanna, sing hosanna,"}, {"verseTag": "V3", "raw_slide": "Give me peace in my heart, keep me resting\u2026", "title": "Give me peace in my heart, kee"}, {"verseTag": "C1", "raw_slide": "Sing hosanna, sing hosanna,\nSing hosanna to the King of kings.\nSing hosanna, sing hosanna,\nSing hosanna to the King.", "title": "Sing hosanna, sing hosanna,"}, {"verseTag": "V4", "raw_slide": "Give me love in my heart, keep me serving\u2026", "title": "Give me love in my heart, keep"}, {"verseTag": "C1", "raw_slide": "Sing hosanna, sing hosanna,\nSing hosanna to the King of kings.\nSing hosanna, sing hosanna,\nSing hosanna to the King.", "title": "Sing hosanna, sing hosanna,"}]}}, {"serviceitem": {"header": {"auto_play_slides_once": false, "processor": null, "data": {"verse_order": "V1 V2 V3", "authors": "William Williams", "title": "guide me o thou great jehovah@"}, "theme_overwritten": false, "theme": null, "end_time": 0, "start_time": 0, "media_length": 0, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:30:21\"><properties><titles><title>Guide Me O Thou Great Jehovah</title></titles><authors><author>William Williams</author></authors></properties><lyrics><verse name=\"v1\"><lines>Guide me, O thou great Jehovah,<br/>Pilgrim through this barren land;<br/>I am weak, but Thou art mighty,<br/>Hold me with Thy powerful hand:<br/>Bread of heaven, Bread of heaven,<br/>Feed me now and ever more,<br/>Feed me now and ever more.</lines></verse><verse name=\"v2\"><lines>Open Thou the crystal fountain<br/>Whence the healing stream doth flow;<br/>Let the fiery, cloudy pillar<br/>Lead me all my journey through:<br/>Strong Deliverer, strong Deliverer,<br/>Be Thou still my strength and shield,<br/>Be Thou still my strength and shield.</lines></verse><verse name=\"v3\"><lines>When I tread the verge of Jordan<br/>Bid my anxious fears subside;<br/>Death of death, and hell\u2019s destruction,<br/>Land me safe on Canaan\u2019s side:<br/>Songs of praises, songs of praises,<br/>I will ever give to Thee,<br/>I will ever give to Thee.</lines></verse></lyrics></song>", "audit": ["Guide Me O Thou Great Jehovah", ["William Williams"], "", ""], "auto_play_slides_loop": false, "title": "Guide Me O Thou Great Jehovah", "type": 1, "icon": ":/plugins/plugin_songs.png", "name": "songs", "background_audio": [], "notes": "", "from_plugin": false, "plugin": "songs", "will_auto_start": false, "search": "", "timed_slide_interval": 0, "footer": ["Guide Me O Thou Great Jehovah", "William Williams", ""]}, "data": [{"verseTag": "V1", "raw_slide": "Guide me, O thou great Jehovah,\nPilgrim through this barren land;\nI am weak, but Thou art mighty,\nHold me with Thy powerful hand:\nBread of heaven, Bread of heaven,\nFeed me now and ever more,\nFeed me now and ever more.", "title": "Guide me, O thou great Jehovah"}, {"verseTag": "V2", "raw_slide": "Open Thou the crystal fountain\nWhence the healing stream doth flow;\nLet the fiery, cloudy pillar\nLead me all my journey through:\nStrong Deliverer, strong Deliverer,\nBe Thou still my strength and shield,\nBe Thou still my strength and shield.", "title": "Open Thou the crystal fountain"}, {"verseTag": "V3", "raw_slide": "When I tread the verge of Jordan\nBid my anxious fears subside;\nDeath of death, and hell\u2019s destruction,\nLand me safe on Canaan\u2019s side:\nSongs of praises, songs of praises,\nI will ever give to Thee,\nI will ever give to Thee.", "title": "When I tread the verge of Jord"}]}}, {"serviceitem": {"header": {"auto_play_slides_once": false, "processor": null, "data": {"verse_order": "V1 V3", "authors": "William Williams", "title": "guide me o thou great jehovah@"}, "theme_overwritten": false, "theme": null, "end_time": 0, "start_time": 0, "media_length": 0, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:30:13\"><properties><titles><title>Guide Me O Thou Great Jehovah</title></titles><verseOrder>v1 v3</verseOrder><authors><author>William Williams</author></authors></properties><lyrics><verse name=\"v1\"><lines>Guide me, O thou great Jehovah,<br/>Pilgrim through this barren land;<br/>I am weak, but Thou art mighty,<br/>Hold me with Thy powerful hand:<br/>Bread of heaven, Bread of heaven,<br/>Feed me now and ever more,<br/>Feed me now and ever more.</lines></verse><verse name=\"v2\"><lines>Open Thou the crystal fountain<br/>Whence the healing stream doth flow;<br/>Let the fiery, cloudy pillar<br/>Lead me all my journey through:<br/>Strong Deliverer, strong Deliverer,<br/>Be Thou still my strength and shield,<br/>Be Thou still my strength and shield.</lines></verse><verse name=\"v3\"><lines>When I tread the verge of Jordan<br/>Bid my anxious fears subside;<br/>Death of death, and hell\u2019s destruction,<br/>Land me safe on Canaan\u2019s side:<br/>Songs of praises, songs of praises,<br/>I will ever give to Thee,<br/>I will ever give to Thee.</lines></verse></lyrics></song>", "audit": ["Guide Me O Thou Great Jehovah", ["William Williams"], "", ""], "auto_play_slides_loop": false, "title": "Guide Me O Thou Great Jehovah", "type": 1, "icon": ":/plugins/plugin_songs.png", "name": "songs", "background_audio": [], "notes": "", "from_plugin": false, "plugin": "songs", "will_auto_start": false, "search": "", "timed_slide_interval": 0, "footer": ["Guide Me O Thou Great Jehovah", "William Williams", ""]}, "data": [{"verseTag": "V1", "raw_slide": "Guide me, O thou great Jehovah,\nPilgrim through this barren land;\nI am weak, but Thou art mighty,\nHold me with Thy powerful hand:\nBread of heaven, Bread of heaven,\nFeed me now and ever more,\nFeed me now and ever more.", "title": "Guide me, O thou great Jehovah"}, {"verseTag": "V3", "raw_slide": "When I tread the verge of Jordan\nBid my anxious fears subside;\nDeath of death, and hell\u2019s destruction,\nLand me safe on Canaan\u2019s side:\nSongs of praises, songs of praises,\nI will ever give to Thee,\nI will ever give to Thee.", "title": "When I tread the verge of Jord"}]}}, {"serviceitem": {"header": {"auto_play_slides_once": false, "processor": null, "data": {"verse_order": "V1 C1 V2 V3", "authors": "Fanny Crosby", "title": "to god be the glory@"}, "theme_overwritten": false, "theme": null, "end_time": 0, "start_time": 0, "media_length": 0, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:49:50\"><properties><titles><title>To God be the Glory</title></titles><authors><author>Fanny Crosby</author></authors></properties><lyrics><verse name=\"v1\"><lines>To God be the glory! great things He hath done!<br/>So loved He the world that He gave us His Son,<br/>Who yielded His life an atonement for sin,<br/>And opened the life-gate that all may go in.</lines></verse><verse name=\"c1\"><lines>Praise the Lord! Praise the Lord!<br/>Let the earth hear His voice!<br/>Praise the Lord! Praise the Lord!<br/>Let the people rejoice!<br/>O come to the Father through Jesus the Son;<br/>And give Him the glory, great things He hath done!</lines></verse><verse name=\"v2\"><lines>O perfect redemption, the purchase of blood!<br/>To every believer the promise of God;<br/>The vilest offender who truly believes,<br/>That moment from Jesus a pardon receives.</lines></verse><verse name=\"v3\"><lines>Great things He hath taught us, great things He hath done,<br/>And great our rejoicing through Jesus the Son:<br/>But purer and higher and greater will be<br/>Our wonder, our worship, when Jesus we see!</lines></verse></lyrics></song>", "audit": ["To God be the Glory", ["Fanny Crosby"], "", ""], "auto_play_slides_loop": false, "title": "To God be the Glory", "type": 1, "icon": ":/plugins/plugin_songs.png", "name": "songs", "background_audio": [], "notes": "", "from_plugin": false, "plugin": "songs", "will_auto_start": false, "search": "", "timed_slide_interval": 0, "footer": ["To God be the Glory", "Fanny Crosby", ""]}, "data": [{"verseTag": "V1", "raw_slide": "To God be the glory! great things He hath done!\nSo loved He the world that He gave us His Son,\nWho yielded His life an atonement for sin,\nAnd opened the life-gate that all may go in.", "title": "To God be the glory! great thi"}, {"verseTag": "C1", "raw_slide": "Praise the Lord! Praise the Lord!\nLet the earth hear His voice!\nPraise the Lord! Praise the Lord!\nLet the people rejoice!\nO come to the Father through Jesus the Son;\nAnd give Him the glory, great things He hath done!", "title": "Praise the Lord! Praise the Lo"}, {"verseTag": "V2", "raw_slide": "O perfect redemption, the purchase of blood!\nTo every believer the promise of God;\nThe vilest offender who truly believes,\nThat moment from Jesus a pardon receives.", "title": "O perfect redemption, the purc"}, {"verseTag": "V3", "raw_slide": "Great things He hath taught us, great things He hath done,\nAnd great our rejoicing through Jesus the Son:\nBut purer and higher and greater will be\nOur wonder, our worship, when Jesus we see!", "title": "Great things He hath taught us"}]}}, {"serviceitem": {"header": {"auto_play_slides_once": false, "processor": null, "data": {"verse_order": "V1 C1 V2 C1 V3 C1", "authors": "Fanny Crosby", "title": "to god be the glory@"}, "theme_overwritten": false, "theme": null, "end_time": 0, "start_time": 0, "media_length": 0, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:49:16\"><properties><titles><title>To God be the Glory</title></titles><verseOrder>v1 c1 v2 c1 v3 c1</verseOrder><authors><author>Fanny Crosby</author></authors></properties><lyrics><verse name=\"v1\"><lines>To God be the glory! great things He hath done!<br/>So loved He the world that He gave us His Son,<br/>Who yielded His life an atonement for sin,<br/>And opened the life-gate that all may go in.</lines></verse><verse name=\"c1\"><lines>Praise the Lord! Praise the Lord!<br/>Let the earth hear His voice!<br/>Praise the Lord! Praise the Lord!<br/>Let the people rejoice!<br/>O come to the Father through Jesus the Son;<br/>And give Him the glory, great things He hath done!</lines></verse><verse name=\"v2\"><lines>O perfect redemption, the purchase of blood!<br/>To every believer the promise of God;<br/>The vilest offender who truly believes,<br/>That moment from Jesus a pardon receives.</lines></verse><verse name=\"v3\"><lines>Great things He hath taught us, great things He hath done,<br/>And great our rejoicing through Jesus the Son:<br/>But purer and higher and greater will be<br/>Our wonder, our worship, when Jesus we see!</lines></verse></lyrics></song>", "audit": ["To God be the Glory", ["Fanny Crosby"], "", ""], "auto_play_slides_loop": false, "title": "To God be the Glory", "type": 1, "icon": ":/plugins/plugin_songs.png", "name": "songs", "background_audio": [], "notes": "", "from_plugin": false, "plugin": "songs", "will_auto_start": false, "search": "", "timed_slide_interval": 0, "footer": ["To God be the Glory", "Fanny Crosby", ""]}, "data": [{"verseTag": "V1", "raw_slide": "To God be the glory! great things He hath done!\nSo loved He the world that He gave us His Son,\nWho yielded His life an atonement for sin,\nAnd opened the life-gate that all may go in.", "title": "To God be the glory! great thi"}, {"verseTag": "C1", "raw_slide": "Praise the Lord! Praise the Lord!\nLet the earth hear His voice!\nPraise the Lord! Praise the Lord!\nLet the people rejoice!\nO come to the Father through Jesus the Son;\nAnd give Him the glory, great things He hath done!", "title": "Praise the Lord! Praise the Lo"}, {"verseTag": "V2", "raw_slide": "O perfect redemption, the purchase of blood!\nTo every believer the promise of God;\nThe vilest offender who truly believes,\nThat moment from Jesus a pardon receives.", "title": "O perfect redemption, the purc"}, {"verseTag": "C1", "raw_slide": "Praise the Lord! Praise the Lord!\nLet the earth hear His voice!\nPraise the Lord! Praise the Lord!\nLet the people rejoice!\nO come to the Father through Jesus the Son;\nAnd give Him the glory, great things He hath done!", "title": "Praise the Lord! Praise the Lo"}, {"verseTag": "V3", "raw_slide": "Great things He hath taught us, great things He hath done,\nAnd great our rejoicing through Jesus the Son:\nBut purer and higher and greater will be\nOur wonder, our worship, when Jesus we see!", "title": "Great things He hath taught us"}, {"verseTag": "C1", "raw_slide": "Praise the Lord! Praise the Lord!\nLet the earth hear His voice!\nPraise the Lord! Praise the Lord!\nLet the people rejoice!\nO come to the Father through Jesus the Son;\nAnd give Him the glory, great things He hath done!", "title": "Praise the Lord! Praise the Lo"}]}}, {"serviceitem": {"header": {"auto_play_slides_once": false, "processor": null, "data": {"verse_order": "V1 V2 V3 V4 V6", "authors": "John Newton", "title": "amazing grace@"}, "theme_overwritten": false, "theme": null, "end_time": 0, "start_time": 0, "media_length": 0, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:46:56\"><properties><titles><title>Amazing Grace</title></titles><verseOrder>v1 v2 v3 v4 v6</verseOrder><authors><author>John Newton</author></authors></properties><lyrics><verse name=\"v1\"><lines>Amazing Grace! how sweet the sound<br/>That saved a wretch like me;<br/>I once was lost, but now am found,<br/>Was blind, but now I see.</lines></verse><verse name=\"v2\"><lines>\u2019Twas grace that taught my heart to fear,<br/>And grace my fears relieved;<br/>How precious did that grace appear,<br/>The hour I first believed!</lines></verse><verse name=\"v3\"><lines>Through many dangers, toils and snares<br/>I have already come;<br/>\u2019Tis grace that brought me safe thus far,<br/>And grace will lead me home.</lines></verse><verse name=\"v4\"><lines>The Lord has promised good to me,<br/>His word my hope secures;<br/>He will my shield and portion be<br/>As long as life endures.</lines></verse><verse name=\"v5\"><lines>Yes, when this heart and flesh shall fail,<br/>And mortal life shall cease,<br/>I shall possess within the veil<br/>A life of joy and peace.</lines></verse><verse name=\"v6\"><lines>When we\u2019ve been there a thousand years,<br/>Bright shining as the sun,<br/>We\u2019ve no less days to sing God\u2019s praise<br/>Than when we first begun.</lines></verse></lyrics></song>", "audit": ["Amazing Grace", ["John Newton"], "", ""], "auto_play_slides_loop": false, "title": "Amazing Grace", "type": 1, "icon": ":/plugins/plugin_songs.png", "name": "songs", "background_audio": [], "notes": "", "from_plugin": false, "plugin": "songs", "will_auto_start": false, "search": "", "timed_slide_interval": 0, "footer": ["Amazing Grace", "John Newton", ""]}, "data": [{"verseTag": "V1", "raw_slide": "Amazing Grace! how sweet the sound\nThat saved a wretch like me;\nI once was lost, but now am found,\nWas blind, but now I see.", "title": "Amazing Grace! how sweet the s"}, {"verseTag": "V2", "raw_slide": "\u2019Twas grace that taught my heart to fear,\nAnd grace my fears relieved;\nHow precious did that grace appear,\nThe hour I first believed!", "title": "\u2019Twas grace that taught my hea"}, {"verseTag": "V3", "raw_slide": "Through many dangers, toils and snares\nI have already come;\n\u2019Tis grace that brought me safe thus far,\nAnd grace will lead me home.", "title": "Through many dangers, toils an"}, {"verseTag": "V4", "raw_slide": "The Lord has promised good to me,\nHis word my hope secures;\nHe will my shield and portion be\nAs long as life endures.", "title": "The Lord has promised good to "}, {"verseTag": "V6", "raw_slide": "When we\u2019ve been there a thousand years,\nBright shining as the sun,\nWe\u2019ve no less days to sing God\u2019s praise\nThan when we first begun.", "title": "When we\u2019ve been there a thousa"}]}}, {"serviceitem": {"header": {"auto_play_slides_once": false, "processor": null, "data": {"verse_order": "V1 V2 V1 V4 V1 V5 V1 V7 V1", "authors": "Cecil F. Alexander", "title": "all things bright and beautiful@"}, "theme_overwritten": false, "theme": null, "end_time": 0, "start_time": 0, "media_length": 0, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:42:02\"><properties><titles><title>All Things Bright and Beautiful</title></titles><verseOrder>v1 v2 v1 v4 v1 v5 v1 v7 v1</verseOrder><authors><author>Cecil F. Alexander</author></authors></properties><lyrics><verse name=\"v1\"><lines>All things bright and beautiful,<br/>All creatures great and small,<br/>All things wise and wonderful,<br/>The Lord God made them all.</lines></verse><verse name=\"v2\"><lines>Each little flower that opens,<br/>Each little bird that sings,<br/>He made their glowing colours,<br/>He made their tiny wings.</lines></verse><verse name=\"v3\"><lines>The rich man in his castle,<br/>The poor man at his gate,<br/>God made them high and lowly,<br/>And ordered their estate.</lines></verse><verse name=\"v4\"><lines>The purple-headed mountain,<br/>The river running by,<br/>The sunset, and the morning<br/>That brightens up the sky.</lines></verse><verse name=\"v5\"><lines>The cold wind in the winter,<br/>The pleasant summer sun,<br/>The ripe fruits in the garden,<br/>He made them every one.</lines></verse><verse name=\"v6\"><lines>The tall trees in the greenwood,<br/>The meadows where we play,<br/>The rushes by the water,<br/>We gather every day.</lines></verse><verse name=\"v7\"><lines>He gave us eyes to see them,<br/>And lips that we might tell<br/>How great is God Almighty,<br/>Who has made all things well.</lines></verse></lyrics></song>", "audit": ["All Things Bright and Beautiful", ["Cecil F. Alexander"], "", ""], "auto_play_slides_loop": false, "title": "All Things Bright and Beautiful", "type": 1, "icon": ":/plugins/plugin_songs.png", "name": "songs", "background_audio": [], "notes": "", "from_plugin": false, "plugin": "songs", "will_auto_start": false, "search": "", "timed_slide_interval": 0, "footer": ["All Things Bright and Beautiful", "Cecil F. Alexander", ""]}, "data": [{"verseTag": "V1", "raw_slide": "All things bright and beautiful,\nAll creatures great and small,\nAll things wise and wonderful,\nThe Lord God made them all.", "title": "All things bright and beautifu"}, {"verseTag": "V2", "raw_slide": "Each little flower that opens,\nEach little bird that sings,\nHe made their glowing colours,\nHe made their tiny wings.", "title": "Each little flower that opens,"}, {"verseTag": "V1", "raw_slide": "All things bright and beautiful,\nAll creatures great and small,\nAll things wise and wonderful,\nThe Lord God made them all.", "title": "All things bright and beautifu"}, {"verseTag": "V4", "raw_slide": "The purple-headed mountain,\nThe river running by,\nThe sunset, and the morning\nThat brightens up the sky.", "title": "The purple-headed mountain,"}, {"verseTag": "V1", "raw_slide": "All things bright and beautiful,\nAll creatures great and small,\nAll things wise and wonderful,\nThe Lord God made them all.", "title": "All things bright and beautifu"}, {"verseTag": "V5", "raw_slide": "The cold wind in the winter,\nThe pleasant summer sun,\nThe ripe fruits in the garden,\nHe made them every one.", "title": "The cold wind in the winter,"}, {"verseTag": "V1", "raw_slide": "All things bright and beautiful,\nAll creatures great and small,\nAll things wise and wonderful,\nThe Lord God made them all.", "title": "All things bright and beautifu"}, {"verseTag": "V7", "raw_slide": "He gave us eyes to see them,\nAnd lips that we might tell\nHow great is God Almighty,\nWho has made all things well.", "title": "He gave us eyes to see them,"}, {"verseTag": "V1", "raw_slide": "All things bright and beautiful,\nAll creatures great and small,\nAll things wise and wonderful,\nThe Lord God made them all.", "title": "All things bright and beautifu"}]}}, {"serviceitem": {"header": {"auto_play_slides_once": false, "processor": null, "data": {"verse_order": "V1 C1 V2 V3 V4 V5 V6", "authors": "Author Unknown", "title": "the first nowell@"}, "theme_overwritten": false, "theme": null, "end_time": 0, "start_time": 0, "media_length": 0, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T09:46:18\"><properties><titles><title>The First Nowell</title></titles><authors><author>Author Unknown</author></authors></properties><lyrics><verse name=\"v1\"><lines>The first nowell the angel did say<br/>Was to certain poor shepherds in fields as they lay;<br/>In fields where they lay keeping their sheep,<br/>On a cold winter\u2019s night that was so deep.</lines></verse><verse name=\"c1\"><lines>Nowell, nowell, nowell, nowell,<br/>Born is the King of Israel!</lines></verse><verse name=\"v2\"><lines>They looked up and saw a star<br/>Shining in the east, beyond them far,<br/>And to the earth it gave great light,<br/>And so it continued both day and night.</lines></verse><verse name=\"v3\"><lines>And by the light of that same star<br/>Three wise men came from country far;<br/>To seek for a King was their intent,<br/>And to follow the star wherever it went.</lines></verse><verse name=\"v4\"><lines>This star drew nigh to the north-west;<br/>Over Bethlehem it took its rest,<br/>And there it did both stop and stay<br/>Right over the place where Jesus lay.</lines></verse><verse name=\"v5\"><lines>Then entered in those wise men three<br/>Full reverently upon their knee,<br/>And offered there in His presence<br/>Their gold, and myrrh, and frankincense.</lines></verse><verse name=\"v6\"><lines>Then let us all with one accord<br/>Sing praises to our heavenly Lord,<br/>That hath made heaven and earth of nought,<br/>And with His blood mankind hath bought.</lines></verse></lyrics></song>", "audit": ["The First Nowell", ["Author Unknown"], "", ""], "auto_play_slides_loop": false, "title": "The First Nowell", "type": 1, "icon": ":/plugins/plugin_songs.png", "name": "songs", "background_audio": [], "notes": "", "from_plugin": false, "plugin": "songs", "will_auto_start": false, "search": "", "timed_slide_interval": 0, "footer": ["The First Nowell", "Author Unknown", ""]}, "data": [{"verseTag": "V1", "raw_slide": "The first nowell the angel did say\nWas to certain poor shepherds in fields as they lay;\nIn fields where they lay keeping their sheep,\nOn a cold winter\u2019s night that was so deep.", "title": "The first nowell the angel did"}, {"verseTag": "C1", "raw_slide": "Nowell, nowell, nowell, nowell,\nBorn is the King of Israel!", "title": "Nowell, nowell, nowell, nowell"}, {"verseTag": "V2", "raw_slide": "They looked up and saw a star\nShining in the east, beyond them far,\nAnd to the earth it gave great light,\nAnd so it continued both day and night.", "title": "They looked up and saw a star"}, {"verseTag": "V3", "raw_slide": "And by the light of that same star\nThree wise men came from country far;\nTo seek for a King was their intent,\nAnd to follow the star wherever it went.", "title": "And by the light of that same "}, {"verseTag": "V4", "raw_slide": "This star drew nigh to the north-west;\nOver Bethlehem it took its rest,\nAnd there it did both stop and stay\nRight over the place where Jesus lay.", "title": "This star drew nigh to the nor"}, {"verseTag": "V5", "raw_slide": "Then entered in those wise men three\nFull reverently upon their knee,\nAnd offered there in His presence\nTheir gold, and myrrh, and frankincense.", "title": "Then entered in those wise men"}, {"verseTag": "V6", "raw_slide": "Then let us all with one accord\nSing praises to our heavenly Lord,\nThat hath made heaven and earth of nought,\nAnd with His blood mankind hath bought.", "title": "Then let us all with one accor"}]}}, {"serviceitem": {"header": {"auto_play_slides_once": false, "processor": null, "data": {"verse_order": "V1 V2 V3", "authors": "Isaac Watts", "title": "joy to the world@"}, "theme_overwritten": false, "theme": null, "end_time": 0, "start_time": 0, "media_length": 0, "capabilities": [2, 1, 5, 8, 9, 13], "xml_version": "<?xml version='1.0' encoding='UTF-8'?>\n<song xmlns=\"http://openlyrics.info/namespace/2009/song\"; version=\"0.8\" createdIn=\"OpenLP 2.2.2\" modifiedIn=\"OpenLP 2.2.2\" modifiedDate=\"2013-09-07T10:23:34\"><properties><titles><title>Joy To the World</title></titles><authors><author>Isaac Watts</author></authors></properties><lyrics><verse name=\"v1\"><lines>Joy to the world! the Lord has come;<br/>Let earth receive her King.<br/>Let every heart prepare Him room,<br/>And heaven and nature sing,<br/>And heaven and nature sing,<br/>And heaven, and heaven and nature sing!</lines></verse><verse name=\"v2\"><lines>Joy to the earth! the Saviour reigns;<br/>Your sweetest songs employ.<br/>While fields and streams and hills and plains<br/>Repeat the sounding joy,<br/>Repeat the sounding joy,<br/>Repeat, repeat the sounding joy!</lines></verse><verse name=\"v3\"><lines>He rules the world with truth and grace,<br/>And makes the nations prove<br/>The glories of His righteousness,<br/>The wonders of His love,<br/>The wonders of His love,<br/>The wonders, the wonders of His love.</lines></verse></lyrics></song>", "audit": ["Joy To the World", ["Isaac Watts"], "", ""], "auto_play_slides_loop": false, "title": "Joy To the World", "type": 1, "icon": ":/plugins/plugin_songs.png", "name": "songs", "background_audio": [], "notes": "", "from_plugin": false, "plugin": "songs", "will_auto_start": false, "search": "", "timed_slide_interval": 0, "footer": ["Joy To the World", "Isaac Watts", ""]}, "data": [{"verseTag": "V1", "raw_slide": "Joy to the world! the Lord has come;\nLet earth receive her King.\nLet every heart prepare Him room,\nAnd heaven and nature sing,\nAnd heaven and nature sing,\nAnd heaven, and heaven and nature sing!", "title": "Joy to the world! the Lord has"}, {"verseTag": "V2", "raw_slide": "Joy to the earth! the Saviour reigns;\nYour sweetest songs employ.\nWhile fields and streams and hills and plains\nRepeat the sounding joy,\nRepeat the sounding joy,\nRepeat, repeat the sounding joy!", "title": "Joy to the earth! the Saviour "}, {"verseTag": "V3", "raw_slide": "He rules the world with truth and grace,\nAnd makes the nations prove\nThe glories of His righteousness,\nThe wonders of His love,\nThe wonders of His love,\nThe wonders, the wonders of His love.", "title": "He rules the world with truth "}]}}]
\ No newline at end of file


Follow ups