Author: bklaas
Date: Mon Mar  1 12:42:35 2010
New Revision: 8608

URL: http://svn.slimdevices.com/jive?rev=8608&view=rev
Log:
Fixed Bug: 15793
Description: remove menu item after unsafe eject. If self.ejectItems table has 
been cleared out of memory, attempt to remove the item from HomeMenu by id 
instead

Modified:
    
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterApplet.lua

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterApplet.lua?rev=8608&r1=8607&r2=8608&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterApplet.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterApplet.lua
 Mon Mar  1 12:42:35 2010
@@ -441,6 +441,9 @@
        -- if devName is still in the self.mountedDevices table, consider this 
an unsafe eject
        if self.mountedDevices and self.mountedDevices[devName] then
                
+               --Bug 15793, remove eject item from menu after bad eject
+               self:_removeEjectDeviceItem(devName)
+
                log:warn('!!! Drive ', self.mountedDevices[devName].deviceName, 
' was unsafely ejected.')
                local window = Window("text_list", 
self:string("DEVICE_REMOVAL_WARNING"))
                window:setAllowScreensaver(false)
@@ -466,6 +469,7 @@
                        log:warn('SqueezeCenter drive was improperly ejected. 
Stopping SqueezeCenter')
                        self:_stopServer(silent)
                end
+
                self.mountedDevices[devName] = nil
                self:getSettings()['mountedDevices'] = self.mountedDevices
                self:storeSettings()
@@ -740,14 +744,16 @@
                jiveMain:removeItem(self.ejectItems[devName])
                self.ejectItems[devName] = nil
        else
-               log:warn('no menu item found for ', devName)
+               -- bug 15739: since self.ejectItems can be freed from memory, 
try to remove the item by the home menu id, which is devName
+               log:warn('attempt to remove item by id: ', devName)
+               jiveMain:removeItemById(devName)
        end
 end
 
 
 function _addEjectDeviceItem(self, devName)
 
-       log:debug('_addEjectDeviceItem()')
+       log:debug('_addEjectDeviceItem(): ', devName)
 
        local item = self.mountedDevices and self.mountedDevices[devName]
 

_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins

Reply via email to