Author: bklaas
Date: Fri May 2 15:26:43 2008
New Revision: 2418
URL: http://svn.slimdevices.com?rev=2418&root=Jive&view=rev
Log:
Bug: 5366
Description: add getMenuItem method to HomeMenu
add function to 'restore to defaults' menu item
add special case items for 'settings' and 'customize home menu' items, which
now require a confirm step
Modified:
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuApplet.lua
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuMeta.lua
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/strings.txt
7.1/trunk/squeezeplay/src/squeezeplay/share/jive/ui/HomeMenu.lua
Modified:
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuApplet.lua
URL:
http://svn.slimdevices.com/7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuApplet.lua?rev=2418&root=Jive&r1=2417&r2=2418&view=diff
==============================================================================
---
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuApplet.lua
(original)
+++
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuApplet.lua
Fri May 2 15:26:43 2008
@@ -30,6 +30,7 @@
local Window = require("jive.ui.Window")
local Popup = require("jive.ui.Popup")
local Textarea = require('jive.ui.Textarea')
+local Framework = require('jive.ui.Framework')
local SimpleMenu = require("jive.ui.SimpleMenu")
local RadioGroup = require("jive.ui.RadioGroup")
@@ -48,42 +49,67 @@
log:info("menu")
local group = RadioGroup()
- local currentSettings = self:getSettings()
+ self.currentSettings = self:getSettings()
-- get the menu table from jiveMain
- local menuTable = jiveMain:getMenuTable()
+ self.menuTable = jiveMain:getMenuTable()
-- get items that have been customized
--local customTable = jiveMain:getCustomTable()
-- get the nodes. these become the choices + hidden
- local nodeTable = jiveMain:getNodeTable()
+ self.nodeTable = jiveMain:getNodeTable()
local homeMenuItems = {}
-- first add an entry for returning everything to defaults
- local menuItem = {
+ table.insert(homeMenuItems,
+ {
text = self:string('CUSTOMIZE_RESTORE_DEFAULTS'),
weight = 1,
callback = function()
self:restoreDefaultsMenu()
end
- }
- table.insert(homeMenuItems, menuItem)
-
- for id, item in pairs(menuTable) do
- if id ~= 'nowhere' and id ~= 'hidden' then
+ }
+ )
+
+ table.insert(homeMenuItems,
+ {
+ text = self:string('SETTINGS'),
+ weight = 100,
+ callback = function()
+ self:warnHide('settings')
+ end
+ }
+ )
+
+ table.insert(homeMenuItems,
+ {
+ text = self:string('CUSTOMIZE_HOME'),
+ weight = 101,
+ callback = function()
+ self:warnHide('appletCustomizeHome')
+ end
+ }
+ )
+
+
+ for id, item in pairs(self.menuTable) do
+ if id ~= 'hidden' and
+ id ~= 'nowhere' and
+ id ~= 'appletCustomizeHome' and
+ id ~= 'settings' then
local selected
local choices = { self:string('CUSTOMIZE_HIDDEN'),
self:string('HOME') }
-- add the item's node to the list of choices if it's not home
or hidden
if item.node ~= 'home' and item.node ~= 'hidden' then
- table.insert(choices,
nodeTable[item.node]['item']['text'])
+ table.insert(choices,
self.nodeTable[item.node]['item']['text'])
end
- if currentSettings[id] and currentSettings[id] == 'hidden' then
+ if self.currentSettings[id] and self.currentSettings[id] ==
'hidden' then
selected = 1
- elseif currentSettings[id] and currentSettings[id] == 'home'
then
+ elseif self.currentSettings[id] and self.currentSettings[id] ==
'home' then
selected = 2
else
selected = #choices
@@ -104,11 +130,8 @@
node = 'home'
self:getSettings()[item.id] =
node
elseif selectedIndex == 3 then
- node = menuTable[id]['node']
+ node =
self.menuTable[id]['node']
self:getSettings()[item.id] =
nil
- end
- -- special case: we want the customize
home applet to move to the home menu when settings is removed
- if item.id == settings and node ==
'hidden' then
end
self:storeSettings()
jiveMain:setNode(item, node)
@@ -128,7 +151,7 @@
window:show()
end
-function restoreDefaultsMenu(self)
+function restoreDefaultsMenu(self, id)
local window = Window("window",
self:string("CUSTOMIZE_RESTORE_DEFAULTS"), 'settingstitle')
local menu = SimpleMenu("menu", {
{
@@ -146,12 +169,12 @@
for id, node in pairs(currentSettings) do
self:getSettings()[id] = nil
-- fetch item by id
- local item = jiveMain:getItemById(id)
+ local item = jiveMain:getMenuItem(id)
-- replace to original node, remove
customNode
jiveMain:setNode(item, item.node)
end
self:storeSettings()
- window:hide()
+ _goHome()
end
},
})
@@ -160,3 +183,74 @@
window:addWidget(menu)
window:show()
end
+
+function warnHide(self, id)
+ local item = self.menuTable[id]
+ local window = Window("window", item.text, 'settingstitle')
+
+ local selected
+ local choices = { self:string('CUSTOMIZE_HIDDEN'), self:string('HOME') }
+
+ -- add the item's (default) node to the list of choices if it's not
home or hidden
+ if item.node ~= 'home' and item.node ~= 'hidden' then
+ table.insert(choices, self.nodeTable[item.node]['item']['text'])
+ end
+
+ if self.currentSettings[id] and self.currentSettings[id] == 'hidden'
then
+ selected = 1
+ elseif self.currentSettings[id] and self.currentSettings[id] == 'home'
then
+ selected = 2
+ else
+ selected = #choices
+ end
+
+ local menuItem = {
+ text = item.text,
+ icon = Choice(
+ "choice",
+ choices,
+ function(object, selectedIndex)
+ local node
+ if selectedIndex == 1 then
+ node = 'hidden'
+ self:getSettings()[item.id] = node
+ elseif selectedIndex == 2 then
+ node = 'home'
+ self:getSettings()[item.id] = node
+ elseif selectedIndex == 3 then
+ node = self.menuTable[id]['node']
+ self:getSettings()[item.id] = nil
+ end
+ self:storeSettings()
+ jiveMain:setNode(item, node)
+ end,
+ selected
+ ),
+ }
+
+ local menu = SimpleMenu("menu", {
+ {
+ text = self:string("CUSTOMIZE_CANCEL"),
+ sound = "WINDOWHIDE",
+ callback = function()
+ window:hide()
+ end
+ },
+ menuItem
+ })
+
+
+ window:addWidget(Textarea("help",
self:string("CUSTOMIZE_HIDDEN_WARNING")))
+ window:addWidget(menu)
+ window:show()
+end
+
+-- goHome
+-- pushes the home window to the top
+function _goHome()
+ local windowStack = Framework.windowStack
+ Framework:playSound("JUMP")
+ while #windowStack > 1 do
+ windowStack[#windowStack - 1]:hide()
+ end
+end
Modified:
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuMeta.lua
URL:
http://svn.slimdevices.com/7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuMeta.lua?rev=2418&root=Jive&r1=2417&r2=2418&view=diff
==============================================================================
---
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuMeta.lua
(original)
+++
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuMeta.lua
Fri May 2 15:26:43 2008
@@ -28,6 +28,6 @@
jiveMain:setCustomNode(id, node)
end
- jiveMain:addItem(self:menuItem('customizeHomeApplet', 'home',
"CUSTOMIZE_HOME", function(applet, ...) applet:menu(...) end, 1))
+ jiveMain:addItem(self:menuItem('appletCustomizeHome', 'settings',
"CUSTOMIZE_HOME", function(applet, ...) applet:menu(...) end))
end
Modified:
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/strings.txt
URL:
http://svn.slimdevices.com/7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/strings.txt?rev=2418&root=Jive&r1=2417&r2=2418&view=diff
==============================================================================
---
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/strings.txt
(original)
+++
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/strings.txt
Fri May 2 15:26:43 2008
@@ -31,3 +31,6 @@
CUSTOMIZE_RESTORE_DEFAULTS_HELP
EN Select "Continue" to remove all custom menu organization
settings
+
+CUSTOMIZE_HIDDEN_WARNING
+ EN Warning: setting this item to 'Hidden' could block your ability
to get back to this applet for further customization.
Modified: 7.1/trunk/squeezeplay/src/squeezeplay/share/jive/ui/HomeMenu.lua
URL:
http://svn.slimdevices.com/7.1/trunk/squeezeplay/src/squeezeplay/share/jive/ui/HomeMenu.lua?rev=2418&root=Jive&r1=2417&r2=2418&view=diff
==============================================================================
--- 7.1/trunk/squeezeplay/src/squeezeplay/share/jive/ui/HomeMenu.lua (original)
+++ 7.1/trunk/squeezeplay/src/squeezeplay/share/jive/ui/HomeMenu.lua Fri May 2
15:26:43 2008
@@ -39,6 +39,10 @@
}
return obj
+end
+
+function getMenuItem(self, id)
+ return self.menuTable[id]
end
function getMenuTable(self)
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins