Author: bklaas
Date: Fri Apr 30 08:55:34 2010
New Revision: 8757

URL: http://svn.slimdevices.com/jive?rev=8757&view=rev
Log:
Bug: 15827
Description:
Sort media manager menu by weight, then alpha
Push eject item to bottom of media manager menu

Add support in mmOnEjectHanlders for ejectWarningText and ejectWarningText 
conditionals
allows for appended text on the eject confirmation window, e.g. things like 
"This drive is running SBS. Ejecting will stop playback"

Remove subtext line again from Starting Squeezebox Server spinny popup, because 
of bug 16157
Fix improperly dereferenced table in _scDrive() method

Add EN string for SBS drive eject warning

Modified:
    
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerApplet.lua
    
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerMeta.lua
    
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterApplet.lua
    
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterMeta.lua
    
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/strings.txt

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerApplet.lua?rev=8757&r1=8756&r2=8757&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerApplet.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerApplet.lua
 Fri Apr 30 08:55:34 2010
@@ -159,6 +159,8 @@
                        })
                end
        end
+       menu:setComparator(SimpleMenu.itemComparatorWeightAlpha)
+
        window:addWidget(menu)
        self:tieAndShowWindow(window)
        return window
@@ -666,6 +668,7 @@
 
 function mmConfirmEject(self, devName)
        log:info('mmConfirmEject(): ', devName)
+
        local item = self:_getItemFromDevName(devName)
 
        local titleToken   = 'EJECT_CONFIRM'
@@ -696,11 +699,60 @@
                        },
        })
 
-       menu:setHeaderWidget( Textarea("help_text", self:string(confirmToken, 
item and item.devName) ) )
+       local headerTextStrings = {
+               tostring(self:string(confirmToken, devName))
+       }
+       local extraHeaderText = _getExtraHeaderText(self, devName)
+       for k, v in pairs(extraHeaderText) do
+               table.insert(headerTextStrings, v)
+       end
+       local headerText = table.concat(headerTextStrings, "\n")
+       menu:setHeaderWidget( Textarea("help_text", headerText ) )
+       
        window:addWidget(menu)
        self.confirmEjectWindow = window
        self:tieAndShowWindow(window)
        return window
+end
+
+
+function _getExtraHeaderText(self, devName)
+       log:info('compiling ejectWarningText table')
+       local returnTable = {}
+       for k, v in pairs(self.mmOnEjectHandlers) do
+               local insertIt = true
+               if v.ejectWarningText then
+                       if v.ejectWarningTextOnlyIfTrue and 
v.ejectWarningTextOnlyIfFalse then
+                               log:info('needs to return true for 
ejectWarningTextOnlyIfTrue and false for ejectWarningTextOnlyIfFalse to add 
this warning text')
+                               insertIt = 
appletManager:callService(v.ejectWarningTextOnlyIfTrue, devName) 
+                                               and not 
appletManager:callService(v.ejectWarningTextOnlyIfFalse, devName)
+
+                       elseif v.ejectWarningTextOnlyIfTrue then
+                               log:info('ejectWarningTextOnlyIfTrue method 
needs to return true to add this warning text')
+                               insertIt = 
appletManager:callService(v.ejectWarningTextOnlyIfTrue, devName)
+
+                       elseif v.ejectWarningTextOnlyIfFalse then
+                               log:info('ejectTextOnlyIfFalse method needs to 
return false to add this menu item')
+                               insertIt = not 
appletManager:callService(v.ejectTextOnlyIfFalse, devName)
+
+                       else
+                               log:info('no conditional on this eject warning 
text, so add it: ', v.ejectWarningText)
+                       end
+
+                       if insertIt then
+                               log:info('---> add warning text ', 
v.ejectWarningText)
+                               table.insert(returnTable, 
tostring(v.ejectWarningText))
+
+                       else
+                               log:info('---> insertIt says false, so do not 
add ', v.ejectWarningText)
+
+                       end
+
+               end
+
+       end
+       return returnTable
+
 end
 
 

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerMeta.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerMeta.lua?rev=8757&r1=8756&r2=8757&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerMeta.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/MediaManager/MediaManagerMeta.lua
 Fri Apr 30 08:55:34 2010
@@ -43,7 +43,7 @@
                         serviceMethod     = "mmConfirmEject",
                         menuToken         = "EJECT_DRIVE",
                         devNameAsTokenArg = true,
-                       weight            = 10, -- default is 50, so this will 
put it at/near the top
+                       weight            = 1000, -- default is 50, so this 
will put it at/near the bottom
                 }
         )
 

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=8757&r1=8756&r2=8757&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
 Fri Apr 30 08:55:34 2010
@@ -287,10 +287,13 @@
                popup:addWidget(Icon(icon))
                popup:addWidget(Label("text", self:string(text)))
                
-               if (subtext ~= nil) then popup:addWidget(Textarea("subtext", 
self:string(subtext))) end
+               if (subtext ~= nil) then 
+                       popup:addWidget(Textarea("subtext", 
self:string(subtext))) 
+               end
                
                -- don't hide starting SC popup until scan.json file is detected
                if action == 'start' or action == 'restart' then
+
                        local count = 0
                        popup:addTimer(1000,
                                function()
@@ -431,6 +434,7 @@
        if devName == self:_scDrive() then
                log:warn('stopping server pointed to ', devName)
                self:_stopServer()
+
        else
                log:warn('devName ', devName, ' does not equal ', self.SCDrive)
        end
@@ -578,6 +582,8 @@
                        self:_writeSCPrefsFile(devName)
                        break --table is 1 element long, but breaking here 
can't hurt
                end
+               -- XXX re-enable subtext after bug 16157 is fixed
+               --self:_squeezecenterAction("icon_connecting", 
"STARTING_SQUEEZECENTER", "STARTING_SQUEEZECENTER_TEXT", 5000, "start")
                self:_squeezecenterAction("icon_connecting", 
"STARTING_SQUEEZECENTER", nil, 5000, "start")
                return EVENT_CONSUMED
 
@@ -607,6 +613,8 @@
                                callback = function()
                                        log:debug('write prefs.json file to use 
', devName)
                                        self:_writeSCPrefsFile(devName)
+                                       -- XXX re-enable subtext after bug 
16157 is fixed
+                                       
--self:_squeezecenterAction("icon_connecting", "STARTING_SQUEEZECENTER", 
"STARTING_SQUEEZECENTER_TEXT", 5000, "start")
                                        
self:_squeezecenterAction("icon_connecting", "STARTING_SQUEEZECENTER", nil, 
5000, "start")
                                        self:settingsShow()
                                        window:hide()
@@ -808,7 +816,7 @@
 
 function _scDrive(self)
        local prefsData = self:readSCPrefsFile()
-       if prefsData.devName then
+       if prefsData and prefsData.devName then
                return prefsData.devName
        else
                return false

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterMeta.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterMeta.lua?rev=8757&r1=8756&r2=8757&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterMeta.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterMeta.lua
 Fri Apr 30 08:55:34 2010
@@ -55,7 +55,9 @@
        )
        appletManager:callService("mmRegisterOnEjectHandler", 
                {
-               serviceMethod = "mmStopSqueezeCenter"
+               serviceMethod = "mmStopSqueezeCenter",
+               ejectWarningText = 
meta:string('SQUEEZEBOX_SERVER_DISK_EJECT_WARNING'),
+               ejectWarningTextOnlyIfTrue = "isBuiltInSCRunning",
                }
        )
        appletManager:callService("squeezecenterStartupCheck")

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/strings.txt
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/strings.txt?rev=8757&r1=8756&r2=8757&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/strings.txt
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/strings.txt
 Fri Apr 30 08:55:34 2010
@@ -1027,3 +1027,7 @@
 
 SWITCH_MEDIA
        EN      Use %s for Squeezebox Server 
+
+SQUEEZEBOX_SERVER_DISK_EJECT_WARNING
+       EN      Warning: This device is currently running Squeezebox Server. 
All playback from this Squeezebox Server will cease when this drive is ejected.
+

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

Reply via email to