Make search sort options work

This commit is contained in:
Nick Bisby 2019-03-17 19:17:54 -05:00
parent 3658f0b77f
commit 7195d59c95
No known key found for this signature in database
GPG Key ID: F6E0C4E6D0B5EB36
3 changed files with 61 additions and 5 deletions

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8" ?>
<component name="OptionsData" extends="ContentNode">
<interface>
<field id="base_title" type="string" />
<field id="choices" type="stringarray" />
<field id="config_key" type="string" />
<field id="value_index" type="integer" />
<field id="value" type="string" onChange="update_title" />
<function name="cycle" />
</interface>
<script type="text/brightscript" uri="pkg:/source/config.brs" />
<script type="text/brightscript">
<![CDATA[
sub init()
m.top.value_index = 0
end sub
sub update_title()
for i=0 to m.top.choices.count() - 1
if m.top.choices[i] = m.top.value
m.top.value_index = i
exit for
end if
end for
m.top.title = m.top.base_title + ": " + m.top.value
print m.top.value_index
end sub
sub cycle()
max_opt = m.top.choices.count()
i = m.top.value_index + 1
while i >= max_opt
i = i - max_opt
end while
m.top.value_index = i
m.top.value = m.top.choices[m.top.value_index]
set_user_setting(m.top.config_key, m.top.value)
end sub
]]>
</script>
</component>

View File

@ -40,8 +40,7 @@
options = m.top.options options = m.top.options
row = m.top.findNode("fieldList") row = m.top.findNode("fieldList")
row.removeChildren(row.getChildren(-1, 0)) row.clear()
row.appendChildren(options) row.appendChildren(options)
end sub end sub
@ -52,6 +51,11 @@
m.top.visible = false m.top.visible = false
m.top.escape = true m.top.escape = true
return true return true
else if key = "OK"
list = m.top.findNode("panelList")
data = list.content.getChild(list.itemFocused)
data.callFunc("cycle")
return true
end if end if
return false return false

View File

@ -171,16 +171,24 @@ sub ShowMovieOptions(library)
sidepanel = scene.findNode("options") sidepanel = scene.findNode("options")
movie_options = [ movie_options = [
{"title": "Sort Field", {"title": "Sort Field",
"base_title": "Sort Field",
"key": "movie_sort_field", "key": "movie_sort_field",
"values": ["blah", "this", "that"]}, "default": "DateCreated",
"values": ["DateCreated", "PremiereDate", "SortName"]},
{"title": "Sort Order", {"title": "Sort Order",
"base_title": "Sort Order",
"key": "movie_sort_order", "key": "movie_sort_order",
"values": ["blah", "this", "that"]} "default": "Descending",
"values": ["Descending", "Ascending"]}
] ]
new_options = [] new_options = []
for each opt in movie_options for each opt in movie_options
o = CreateObject("roSGNode", "ContentNode") o = CreateObject("roSGNode", "OptionsData")
o.title = opt.title o.title = opt.title
o.choices = opt.values
o.base_title = opt.base_title
o.config_key = opt.key
o.value = get_user_setting(opt.key, opt.default)
new_options.append([o]) new_options.append([o])
end for end for
sidepanel.options = new_options sidepanel.options = new_options