← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~googol-hush/openlp/fixes into lp:openlp

 

Andreas Preikschat has proposed merging lp:~googol-hush/openlp/fixes into lp:openlp.

Requested reviews:
  Jonathan Corwin (j-corwin)
  Tim Bentley (trb143)
Related bugs:
  Bug #598393 in OpenLP: "After adding a new image to a selected (image) item in the service manager it is not selected anymore"
  https://bugs.launchpad.net/openlp/+bug/598393
  Bug #719102 in OpenLP: "editing author after editing song causes traceback"
  https://bugs.launchpad.net/openlp/+bug/719102
  Bug #730979 in OpenLP: "Song export crashes"
  https://bugs.launchpad.net/openlp/+bug/730979
  Bug #747206 in OpenLP: "Missing dictionary for spell check prevents program start"
  https://bugs.launchpad.net/openlp/+bug/747206
  Bug #754484 in OpenLP: "Update service from song edit doesn't work after restart"
  https://bugs.launchpad.net/openlp/+bug/754484

For more details, see:
https://code.launchpad.net/~googol-hush/openlp/fixes/+merge/57147

Hello,

- fixed bug #754484

The problem was, that we converted the id to an unicode string, thus the comparison in replaceServiceItem fails. Solution: just convert the id to an integer in the place where we receive the signal.
-- 
https://code.launchpad.net/~googol-hush/openlp/fixes/+merge/57147
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/ui/servicemanager.py'
--- openlp/core/ui/servicemanager.py	2011-04-02 09:53:08 +0000
+++ openlp/core/ui/servicemanager.py	2011-04-11 11:59:24 +0000
@@ -691,9 +691,9 @@
         Called by the SlideController to request a preview item be made live
         and allows the next preview to be updated if relevent.
         """
-        id, row = message.split(u':')
+        uuid, row = message.split(u':')
         for sitem in self.serviceItems:
-            if sitem[u'service_item']._uuid == id:
+            if sitem[u'service_item']._uuid == uuid:
                 item = self.serviceManagerList.topLevelItem(sitem[u'order'] - 1)
                 self.serviceManagerList.setCurrentItem(item)
                 self.makeLive(int(row))
@@ -1021,7 +1021,7 @@
         editId, uuid = message.split(u':')
         for item in self.serviceItems:
             if item[u'service_item']._uuid == uuid:
-                item[u'service_item'].edit_id = editId
+                item[u'service_item'].edit_id = int(editId)
         self.setModified(True)
 
     def replaceServiceItem(self, newItem):

=== modified file 'openlp/plugins/songs/lib/mediaitem.py'
--- openlp/plugins/songs/lib/mediaitem.py	2011-04-02 09:52:32 +0000
+++ openlp/plugins/songs/lib/mediaitem.py	2011-04-11 11:59:24 +0000
@@ -283,19 +283,20 @@
         self.remoteTriggered = None
         self.remoteSong = -1
 
-    def onRemoteEdit(self, songid):
+    def onRemoteEdit(self, message):
         """
         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.
         """
-        log.debug(u'onRemoteEdit %s' % songid)
-        fields = songid.split(u':')
-        valid = self.parent.manager.get_object(Song, fields[1])
+        log.debug(u'onRemoteEdit %s' % message)
+        remote_type, song_id = message.split(u':')
+        song_id = int(song_id)
+        valid = self.parent.manager.get_object(Song, song_id)
         if valid:
-            self.remoteSong = fields[1]
-            self.remoteTriggered = fields[0]
-            self.edit_song_form.loadSong(fields[1], (fields[0] == u'P'))
+            self.remoteSong = song_id
+            self.remoteTriggered = remote_type
+            self.edit_song_form.loadSong(song_id, (remote_type == u'P'))
             self.edit_song_form.exec_()
 
     def onEditClick(self):


Follow ups