Author: bklaas
Date: Wed Feb 24 12:48:36 2010
New Revision: 8569

URL: http://svn.slimdevices.com/jive?rev=8569&view=rev
Log:
Fixed Bug: 12727
Description: 
add setEnabled() method to Slider class to allow a slider to ignore events when 
Slider:setEnabled(false) is set
disable progress bar slider and change style to white dot in NowPlaying when 
self.player:isTrackSeekable() returns false
enable progress bar slider when isTrackSeekable returns true
add npprogressB_disabled style to other skins so not to throw error

Modified:
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/QVGAlandscapeSkin/QVGAlandscapeSkinApplet.lua
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/QVGAportraitSkin/QVGAportraitSkinApplet.lua
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/WQVGAlargeSkin/WQVGAlargeSkinApplet.lua
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/WQVGAsmallSkin/WQVGAsmallSkinApplet.lua
    7.5/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Slider.lua

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua?rev=8569&r1=8568&r2=8569&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua
 Wed Feb 24 12:48:36 2010
@@ -665,6 +665,22 @@
                showProgressBar = false
        end
 
+       -- if we're shoing a progress bar, make sure the state of the slider 
reflects the ability to seek
+       -- and is disabled when canSeek is false
+       if showProgressBar then
+               local canSeek = self.player:isTrackSeekable()
+               log:debug('canSeek: ', canSeek)
+
+               if canSeek then
+                       -- allow events to the slider
+                       self.progressSlider:setEnabled(true)
+                       self.progressSlider:setStyle('npprogressB')
+               else
+                       -- consume all touches to this slider
+                       self.progressSlider:setEnabled(false)
+                       self.progressSlider:setStyle('npprogressB_disabled')
+               end
+       end
        _updatePosition(self)
 
 end
@@ -1113,7 +1129,6 @@
                        self.gotoElapsed = value
                        self.gotoTimer:restart()
                end)
-
        self.progressBarGroup = Group('npprogress', {
                              elapsed = Label("elapsed", ""),
                              slider = self.progressSlider,

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/QVGAlandscapeSkin/QVGAlandscapeSkinApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/QVGAlandscapeSkin/QVGAlandscapeSkinApplet.lua?rev=8569&r1=8568&r2=8569&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/QVGAlandscapeSkin/QVGAlandscapeSkinApplet.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/QVGAlandscapeSkin/QVGAlandscapeSkinApplet.lua
 Wed Feb 24 12:48:36 2010
@@ -286,6 +286,15 @@
                        border = { 0, 59, 0, 0 },
                        w = WH_FILL,
                        order = { "slider" },
+                       npprogressB = {
+                               w = screenWidth,
+                               align = 'center',
+                               horizontal = 1,
+                               bgImg = s.img.songProgressBackground,
+                               img = s.img.songProgressBar,
+                               h = 15,
+                               padding = { 0, 0, 0, 15 },
+                       }
                },
        
                -- special style for when there shouldn't be a progress bar 
(e.g., internet radio streams)
@@ -294,6 +303,8 @@
                },
        
        })
+
+        s.nowplaying.npprogress.npprogressB_disabled = 
_uses(s.nowplaying.npprogress.npprogressB)
 
        --FIXME: Bug 15030, need way to cycle through NP views on 
Baby/Controller
        s.nowplaying_small_art = _uses(s.nowplaying, {
@@ -312,17 +323,6 @@
        s.nowplaying_small_art.pressed = s.nowplaying_small_art
 
        -- sliders
-       -- FIXME: I'd much rather describe slider style within the s.nowplaying 
window table above, otherwise describing alternative window styles for NP will 
be problematic
-       s.npprogressB = {
-               w = screenWidth,
-               align = 'center',
-                horizontal = 1,
-                bgImg = s.img.songProgressBackground,
-                img = s.img.songProgressBar,
-               h = 15,
-               padding = { 0, 0, 0, 15 },
-       }
-
        s.npvolumeB = { hidden = 1 }
 
        s.icon_photo_loading = _uses(s._icon, {

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/QVGAportraitSkin/QVGAportraitSkinApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/QVGAportraitSkin/QVGAportraitSkinApplet.lua?rev=8569&r1=8568&r2=8569&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/QVGAportraitSkin/QVGAportraitSkinApplet.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/QVGAportraitSkin/QVGAportraitSkinApplet.lua
 Wed Feb 24 12:48:36 2010
@@ -570,6 +570,15 @@
                                font = _boldfont(9),
                                fg = { 0xb3, 0xb3, 0xb3 },
                        },
+                       npprogressB = {
+                               w = WH_FILL,
+                               align = 'center',
+                               border = { 10, 0, 10, 0 },
+                               horizontal = 1,
+                               bgImg = s.img.songProgressBackground,
+                               img = s.img.songProgressBar,
+                               h = 15,
+                       },
                },
        
                -- special style for when there shouldn't be a progress bar 
(e.g., internet radio streams)
@@ -606,16 +615,7 @@
        s.nowplaying_small_art.pressed = s.nowplaying_small_art
 
        -- sliders
-       -- FIXME: I'd much rather describe slider style within the s.nowplaying 
window table above, otherwise describing alternative window styles for NP will 
be problematic
-       s.npprogressB = {
-               w = WH_FILL,
-               align = 'center',
-               border = { 10, 0, 10, 0 },
-                horizontal = 1,
-                bgImg = s.img.songProgressBackground,
-                img = s.img.songProgressBar,
-               h = 15,
-       }
+        s.nowplaying.npprogress.npprogressB_disabled = 
_uses(s.nowplaying.npprogress.npprogressB)
 
        s.npvolumeB = { hidden = 1 }
 

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/WQVGAlargeSkin/WQVGAlargeSkinApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/WQVGAlargeSkin/WQVGAlargeSkinApplet.lua?rev=8569&r1=8568&r2=8569&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/WQVGAlargeSkin/WQVGAlargeSkinApplet.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/WQVGAlargeSkin/WQVGAlargeSkinApplet.lua
 Wed Feb 24 12:48:36 2010
@@ -2315,6 +2315,8 @@
                 },
        })
  
+       s.nowplaying.npprogress.npprogressB_disabled = 
_uses(s.nowplaying.npprogress.npprogressB)
+
        s.nowplaying_art_only = _uses(s.nowplaying, {
 
                 bgImg = nocturneWallpaper,

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/WQVGAsmallSkin/WQVGAsmallSkinApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/WQVGAsmallSkin/WQVGAsmallSkinApplet.lua?rev=8569&r1=8568&r2=8569&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/WQVGAsmallSkin/WQVGAsmallSkinApplet.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/WQVGAsmallSkin/WQVGAsmallSkinApplet.lua
 Wed Feb 24 12:48:36 2010
@@ -741,6 +741,12 @@
                        nil,
                        nil,
                        imgpath .. 
"Song_Progress_Bar/SP_Bar_Touch/tch_progressbar_slider.png"
+       })
+
+       local _songProgressBarDisabled = _loadHTile(self, {
+                       nil,
+                       nil,
+                       imgpath .. 
"Song_Progress_Bar/SP_Bar_Remote/rem_progressbar_slider.png"
        })
 
        local _vizProgressBar = _loadHTile(self, {
@@ -3039,6 +3045,10 @@
        })
 
        -- sliders
+       s.nowplaying.npprogress.npprogressB_disabled = 
_uses(s.nowplaying.npprogress.npprogressB, {
+               img = _songProgressBarDisabled,
+       })
+
        s.npvolumeB = {
                w = volumeBarWidth,
                border = { 5, 3, 5, 0 },

Modified: 7.5/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Slider.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Slider.lua?rev=8569&r1=8568&r2=8569&view=diff
==============================================================================
--- 7.5/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Slider.lua (original)
+++ 7.5/trunk/squeezeplay/src/squeezeplay/share/jive/ui/Slider.lua Wed Feb 24 
12:48:36 2010
@@ -93,7 +93,7 @@
        obj.value = 1
        obj.closure = closure
        obj.dragDoneClosure = dragDoneClosure
-
+       obj.sliderEnabled = true
         obj.irAccel = IRMenuAccel("arrow_up", "arrow_down")
        
 --     obj.dragThreshold = 25
@@ -177,6 +177,23 @@
        self:reDraw()
 end
 
+--[[
+
+=head2 jive.ui.Slider:setEnabled(value)
+
+Toggles the slider as an enabled or disabled widget
+For use in consuming events when the slider is intended to be non-interactive
+
+=cut
+--]]
+function setEnabled(self, enable)
+       if enable then
+               self.sliderEnabled = true
+       else
+               self.sliderEnabled = false
+       end
+end
+
 
 --[[
 
@@ -229,6 +246,11 @@
 
 function _eventHandler(self, event)
        local type = event:getType()
+
+       -- consume events if the slider is disabled
+       if not self.sliderEnabled then
+               return EVENT_CONSUME
+       end
 
        if type == EVENT_SCROLL then
                self:_moveSlider(event:getScroll())

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

Reply via email to