Merge pull request #1004 from sevenrats/new-persondetails-view
New persondetails view
This commit is contained in:
commit
37298339cc
|
@ -29,7 +29,7 @@
|
||||||
<StdDlgTitleArea id="titleArea" />
|
<StdDlgTitleArea id="titleArea" />
|
||||||
<StdDlgContentArea id="contentArea">
|
<StdDlgContentArea id="contentArea">
|
||||||
<StdDlgTextItem id="description"
|
<StdDlgTextItem id="description"
|
||||||
namedTextStyle="secondary" />
|
namedTextStyle="normal" />
|
||||||
</StdDlgContentArea>
|
</StdDlgContentArea>
|
||||||
</children>
|
</children>
|
||||||
</component>
|
</component>
|
|
@ -5,10 +5,7 @@ sub init()
|
||||||
m.btnGrp.observeField("escape", "onButtonGroupEscaped")
|
m.btnGrp.observeField("escape", "onButtonGroupEscaped")
|
||||||
m.favBtn = m.top.findNode("favorite-button")
|
m.favBtn = m.top.findNode("favorite-button")
|
||||||
m.extrasGrp = m.top.findNode("extrasGrp")
|
m.extrasGrp = m.top.findNode("extrasGrp")
|
||||||
m.top.findNode("VertSlider").keyValue = "[[30, 998], [30, 789], [30, 580], [30,371 ], [30, 162]]"
|
|
||||||
m.extrasGrp.opacity = 1.0
|
m.extrasGrp.opacity = 1.0
|
||||||
m.extrasGrp.translation = "[30, 998]"
|
|
||||||
m.dscr.observeField("isTextEllipsized", "onEllipsisChanged")
|
|
||||||
createDialogPallete()
|
createDialogPallete()
|
||||||
m.top.optionsAvailable = false
|
m.top.optionsAvailable = false
|
||||||
end sub
|
end sub
|
||||||
|
@ -17,8 +14,18 @@ sub loadPerson()
|
||||||
item = m.top.itemContent
|
item = m.top.itemContent
|
||||||
itemData = item.json
|
itemData = item.json
|
||||||
m.top.Id = itemData.id
|
m.top.Id = itemData.id
|
||||||
m.top.findNode("Name").Text = itemData.Name
|
name = m.top.findNode("Name")
|
||||||
|
name.Text = itemData.Name
|
||||||
|
name.font.size = 70
|
||||||
if itemData.PremiereDate <> invalid and itemData.PremiereDate <> ""
|
if itemData.PremiereDate <> invalid and itemData.PremiereDate <> ""
|
||||||
|
lifeStringLabel = createObject("rosgnode", "Label")
|
||||||
|
lifeStringLabel.id = "premierDate"
|
||||||
|
lifeStringLabel.font = "font:SmallestBoldSystemFont"
|
||||||
|
lifeStringLabel.height = "100"
|
||||||
|
lifeStringLabel.vertAlign = "bottom"
|
||||||
|
name.vertAlign = "top"
|
||||||
|
name.font.size = 60
|
||||||
|
m.top.findNode("title_rectangle").appendChild(lifeStringLabel)
|
||||||
birthDate = CreateObject("roDateTime")
|
birthDate = CreateObject("roDateTime")
|
||||||
birthDate.FromISO8601String(itemData.PremiereDate)
|
birthDate.FromISO8601String(itemData.PremiereDate)
|
||||||
deathDate = CreateObject("roDatetime")
|
deathDate = CreateObject("roDatetime")
|
||||||
|
@ -39,9 +46,15 @@ sub loadPerson()
|
||||||
end if
|
end if
|
||||||
end if
|
end if
|
||||||
lifeString = lifeString + " * " + tr("Age") + ": " + stri(age)
|
lifeString = lifeString + " * " + tr("Age") + ": " + stri(age)
|
||||||
m.top.findNode("premierDate").Text = lifeString
|
lifeStringLabel.Text = lifeString
|
||||||
end if
|
end if
|
||||||
|
if itemData.Overview <> invalid and itemData.Overview <> ""
|
||||||
m.dscr.text = itemData.Overview
|
m.dscr.text = itemData.Overview
|
||||||
|
else
|
||||||
|
m.dscr.text = tr("Biographical information for this person is not currently available.")
|
||||||
|
m.dscr.horizAlign = "center"
|
||||||
|
m.dscr.vertAlign = "center"
|
||||||
|
end if
|
||||||
if item.posterURL <> invalid and item.posterURL <> ""
|
if item.posterURL <> invalid and item.posterURL <> ""
|
||||||
m.top.findnode("personImage").uri = item.posterURL
|
m.top.findnode("personImage").uri = item.posterURL
|
||||||
else
|
else
|
||||||
|
@ -50,31 +63,21 @@ sub loadPerson()
|
||||||
m.vidsList.callFunc("loadPersonVideos", m.top.Id)
|
m.vidsList.callFunc("loadPersonVideos", m.top.Id)
|
||||||
|
|
||||||
setFavoriteColor()
|
setFavoriteColor()
|
||||||
m.favBtn.setFocus(true)
|
if not m.favBtn.hasFocus() then dscrShowFocus()
|
||||||
end sub
|
|
||||||
|
|
||||||
sub onEllipsisChanged()
|
|
||||||
if m.dscr.isTextEllipsized
|
|
||||||
dscrShowFocus()
|
|
||||||
end if
|
|
||||||
end sub
|
end sub
|
||||||
|
|
||||||
sub dscrShowFocus()
|
sub dscrShowFocus()
|
||||||
if m.dscr.isTextEllipsized
|
|
||||||
m.dscr.setFocus(true)
|
m.dscr.setFocus(true)
|
||||||
m.dscr.opacity = 1.0
|
m.dscr.opacity = 1.0
|
||||||
m.top.findNode("dscrBorder").color = "#d0d0d0ff"
|
m.top.findNode("dscrBorder").color = "#d0d0d0ff"
|
||||||
end if
|
|
||||||
end sub
|
end sub
|
||||||
|
|
||||||
sub onButtonGroupEscaped()
|
sub onButtonGroupEscaped()
|
||||||
key = m.btnGrp.escape
|
key = m.btnGrp.escape
|
||||||
if key = "down"
|
if key = "down"
|
||||||
m.vidsList.setFocus(true)
|
m.dscr.setFocus(true)
|
||||||
m.top.findNode("VertSlider").reverse = false
|
m.dscr.opacity = 1.0
|
||||||
m.top.findNode("pplAnime").control = "start"
|
m.top.findNode("dscrBorder").color = "#d0d0d0ff"
|
||||||
else if key = "up" and m.dscr.isTextEllipsized
|
|
||||||
dscrShowFocus()
|
|
||||||
end if
|
end if
|
||||||
end sub
|
end sub
|
||||||
|
|
||||||
|
@ -82,7 +85,7 @@ function onKeyEvent(key as string, press as boolean) as boolean
|
||||||
if not press then return false
|
if not press then return false
|
||||||
|
|
||||||
if key = "OK"
|
if key = "OK"
|
||||||
if m.dscr.hasFocus() and m.dscr.isTextEllipsized
|
if m.dscr.hasFocus()
|
||||||
createFullDscrDlg()
|
createFullDscrDlg()
|
||||||
return true
|
return true
|
||||||
end if
|
end if
|
||||||
|
@ -95,17 +98,24 @@ function onKeyEvent(key as string, press as boolean) as boolean
|
||||||
end if
|
end if
|
||||||
|
|
||||||
if key = "down"
|
if key = "down"
|
||||||
|
if m.dscr.hasFocus()
|
||||||
|
m.dscr.opacity = 0.6
|
||||||
|
m.top.findNode("dscrBorder").color = "#data202020ff"
|
||||||
|
m.vidsList.setFocus(true)
|
||||||
|
m.top.findNode("VertSlider").reverse = false
|
||||||
|
m.top.findNode("pplAnime").control = "start"
|
||||||
|
return true
|
||||||
|
end if
|
||||||
|
else if key = "up"
|
||||||
if m.dscr.hasFocus()
|
if m.dscr.hasFocus()
|
||||||
m.favBtn.setFocus(true)
|
m.favBtn.setFocus(true)
|
||||||
m.dscr.opacity = 0.6
|
m.dscr.opacity = 0.6
|
||||||
m.top.findNode("dscrBorder").color = "#data202020ff"
|
m.top.findNode("dscrBorder").color = "#data202020ff"
|
||||||
return true
|
return true
|
||||||
end if
|
else if m.vidsList.isInFocusChain() and m.vidsList.itemFocused = 0
|
||||||
else if key = "up"
|
|
||||||
if m.vidsList.isInFocusChain() and m.vidsList.itemFocused = 0
|
|
||||||
m.top.findNode("VertSlider").reverse = true
|
m.top.findNode("VertSlider").reverse = true
|
||||||
m.top.findNode("pplAnime").control = "start"
|
m.top.findNode("pplAnime").control = "start"
|
||||||
m.favBtn.setFocus(true)
|
dscrShowFocus()
|
||||||
return true
|
return true
|
||||||
end if
|
end if
|
||||||
end if
|
end if
|
||||||
|
@ -128,19 +138,13 @@ end sub
|
||||||
|
|
||||||
sub createFullDscrDlg()
|
sub createFullDscrDlg()
|
||||||
dlg = CreateObject("roSGNode", "OverviewDialog")
|
dlg = CreateObject("roSGNode", "OverviewDialog")
|
||||||
dlg.Title = tr("Press 'OK' to Close")
|
dlg.Title = m.top.itemContent.json.Name
|
||||||
dlg.width = 1290
|
dlg.width = 1290
|
||||||
dlg.palette = m.dlgPalette
|
dlg.palette = m.dlgPalette
|
||||||
dlg.overview = [m.dscr.text]
|
dlg.overview = m.dscr.text
|
||||||
m.fullDscrDlg = dlg
|
m.fullDscrDlg = dlg
|
||||||
m.top.getScene().dialog = dlg
|
m.top.getScene().dialog = dlg
|
||||||
border = createObject("roSGNode", "Poster")
|
|
||||||
border.uri = "pkg:/images/hd_focul_9.png"
|
|
||||||
border.blendColor = "#c9c9c9ff"
|
|
||||||
border.width = dlg.width + 6
|
|
||||||
border.height = dlg.height + 6
|
|
||||||
border.translation = [dlg.translation[0] - 3, dlg.translation[1] - 3]
|
|
||||||
border.visible = true
|
|
||||||
end sub
|
end sub
|
||||||
|
|
||||||
sub createDialogPallete()
|
sub createDialogPallete()
|
||||||
|
|
|
@ -7,32 +7,31 @@
|
||||||
</interface>
|
</interface>
|
||||||
<children>
|
<children>
|
||||||
<LayoutGroup id="main_group"
|
<LayoutGroup id="main_group"
|
||||||
layoutdirection="vert" translation="[60, 180]" itemSpacings="[36]">
|
layoutdirection="vert" translation="[60, 180]" itemSpacings="[36]" >
|
||||||
|
<LayoutGroup id="header_group" layoutdirection="horiz" >
|
||||||
|
<LayoutGroup id="title_group" layoutdirection="vert" itemSpacings="[11]" >
|
||||||
|
<Rectangle id="title_rectangle" height="100" width="1426" color="#262626">
|
||||||
|
<Label id="name" font="font:LargeBoldSystemFont" height="100" width="1426" vertAlign="bottom" />
|
||||||
|
</Rectangle>
|
||||||
|
</LayoutGroup>
|
||||||
|
<ButtonGroupHoriz id="buttons" >
|
||||||
|
<Button id="favorite-button" text="Favorite" iconUri="" focusedIconUri="" />
|
||||||
|
</ButtonGroupHoriz>
|
||||||
|
</LayoutGroup>
|
||||||
<LayoutGroup id="personInfoGroup"
|
<LayoutGroup id="personInfoGroup"
|
||||||
layoutDirection="horiz" itemSpacings="[36]">
|
layoutDirection="horiz" itemSpacings="[46]">
|
||||||
<Poster id="personImage"
|
<Poster id="personImage"
|
||||||
width="300" height="450" />
|
width="430" height="645" />
|
||||||
<LayoutGroup id="vertSpacer" layoutDirection="vert" itemSpacings="[24]">
|
<LayoutGroup id="vertSpacer" layoutDirection="vert" itemSpacings="[24]">
|
||||||
<LayoutGroup id="dataGroup>" layoutDirection="vert"
|
<LayoutGroup id="dataGroup>" layoutDirection="vert" translation="[450,180]">
|
||||||
translation="[450,180]">
|
<Rectangle id="dscrBorder" height="645" width="1322" color="0x202020ff" visible="true">
|
||||||
<Label id="name" font="font:MediumBoldSystemFont" height="45" width="1200" />
|
<Rectangle id='dscrRect' translation="[3, 3]" height="639" width="1316" color="0x202020ff">
|
||||||
<label id="premierDate" font="font:SmallestBoldSystemFont" height="48" vertAlign="top" />
|
|
||||||
<Rectangle id="dscrBorder"
|
|
||||||
height="360" width="1422"
|
|
||||||
color="0x202020ff">
|
|
||||||
<Rectangle id='dscrRect' translation="[3, 3]"
|
|
||||||
height="354" width="1416"
|
|
||||||
color="0x202020ff">
|
|
||||||
<Label id="description"
|
<Label id="description"
|
||||||
height="342" width="1380" wrap="true" translation="[18, 15]"
|
height="627" width="1280" wrap="true" translation="[18, 15]"
|
||||||
font="font:SmallestSystemFont" color="#e4e4e4ff" ellipsisText=" ... (-OK- for More)" />
|
font="font:SmallestSystemFont" color="#e4e4e4ff" ellipsisText=" ... (-OK- for More)" />
|
||||||
</Rectangle>
|
</Rectangle>
|
||||||
</Rectangle>
|
</Rectangle>
|
||||||
</LayoutGroup>
|
</LayoutGroup>
|
||||||
<ButtonGroupHoriz id="buttons" >
|
|
||||||
<Button id="favorite-button" text="Favorite"
|
|
||||||
iconUri="" focusedIconUri="" />
|
|
||||||
</ButtonGroupHoriz>
|
|
||||||
</LayoutGroup>
|
</LayoutGroup>
|
||||||
</LayoutGroup>
|
</LayoutGroup>
|
||||||
</LayoutGroup>
|
</LayoutGroup>
|
||||||
|
|
|
@ -59,7 +59,6 @@ sub onAdditionalPartsLoaded()
|
||||||
else
|
else
|
||||||
m.top.rowItemSize = [[234, 396]]
|
m.top.rowItemSize = [[234, 396]]
|
||||||
end if
|
end if
|
||||||
m.top.translation = "[75,10]"
|
|
||||||
|
|
||||||
' Load Cast and Crew and everything else...
|
' Load Cast and Crew and everything else...
|
||||||
m.LoadPeopleTask.peopleList = m.people
|
m.LoadPeopleTask.peopleList = m.people
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
showRowLabel="true"
|
showRowLabel="true"
|
||||||
showRowCounter="true"
|
showRowCounter="true"
|
||||||
visible="true"
|
visible="true"
|
||||||
translation="[12,18]"
|
translation="[75,10]"
|
||||||
itemComponentName="ExtrasItem" />
|
itemComponentName="ExtrasItem" />
|
||||||
<Animation id="pplAnime" duration=".4" repeat="false" >
|
<Animation id="pplAnime" duration=".4" repeat="false" >
|
||||||
<Vector2DFieldInterpolator
|
<Vector2DFieldInterpolator
|
||||||
|
|
|
@ -1021,6 +1021,10 @@
|
||||||
<source>If enabled, the star and community rating for episodes of a TV show will be removed. This is to prevent spoilers of an upcoming good/bad episode.</source>
|
<source>If enabled, the star and community rating for episodes of a TV show will be removed. This is to prevent spoilers of an upcoming good/bad episode.</source>
|
||||||
<translation>If enabled, the star and community rating for episodes of a TV show will be removed. This is to prevent spoilers of an upcoming good/bad episode.</translation>
|
<translation>If enabled, the star and community rating for episodes of a TV show will be removed. This is to prevent spoilers of an upcoming good/bad episode.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Biographical information for this person is not currently available.</source>
|
||||||
|
<translation>Biographical information for this person is not currently available.</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Playback Bitrate Limits</source>
|
<source>Playback Bitrate Limits</source>
|
||||||
<translation>Playback Bitrate Limits</translation>
|
<translation>Playback Bitrate Limits</translation>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user