•   
  • 1
  • 10
  • 11
  • 12
  • 13
  • 14(current)
Important -  Skinners: Please test PR13754
(2019-01-25, 08:44)MacGyver Wrote: So it's just me?
Seems like you may be real close to putting out a final release so I'm a little worried that I'm going to have to hide a bunch of stuff to make look right.

You can see it in Estuary if you replace line 253 of Home.xml with:
Code:
<param name="widget_header" value=$INFO[Container(9000).ListItem.Property(widgetType)]/>

You will see that the Addons header is now blank too. Anything in 8000 is unable to see the properties from an object in 9000. 
For this particalur patch, which I could use for debugging, what should the value of the property be if it would work?
Reply
(2019-01-25, 13:20)ksooo Wrote: For this particalur patch, which I could use for debugging, what should the value of the property be if it would work? 

movies, episodes, albums, songs, musicvideos, playlist, pretty much whatever ListItem.Property(widget) should display.

As in:
Code:
    <variable name="GlobalWidgetLabel">
        <value condition="String.IsEqual(Container(9000).ListItem.Property(widgetType), movies)">$INFO[ListItem.Title]$INFO[ListItem.Year, (,)]</value>
        <value condition="String.IsEqual(Container(9000).ListItem.Property(widgetType), episodes)">$INFO[ListItem.TVShowTitle] - $INFO[ListItem.Season]x$INFO[ListItem.Episode,,. ]$INFO[ListItem.Title]</value>
        <value condition="String.IsEqual(Container(9000).ListItem.Property(widgetType), albums)">$INFO[ListItem.Artist] - $INFO[ListItem.Title]$INFO[ListItem.Year, (,)]</value>
        <value condition="String.IsEqual(Container(9000).ListItem.Property(widgetType), songs)">$INFO[ListItem.Artist] - $INFO[ListItem.Title]</value>
        <value condition="String.IsEqual(Container(9000).ListItem.Property(widgetType), musicvideos)">$INFO[ListItem.Artist] - $INFO[ListItem.Title]</value>
        <!-- fixing the playlists content labels -->
        <value condition="String.IsEqual(Container(9000).ListItem.Property(widget), Playlist) + String.IsEmpty(Container(8000).ListItem.TVShowTitle)">$INFO[ListItem.Title]$INFO[ListItem.Year, (,)]</value>
        <value condition="String.IsEqual(Container(9000).ListItem.Property(widget), Playlist) + !String.IsEqual(ListItem.Title, ListItem.TVShowTitle) + !String.IsEmpty(Container(8000).ListItem.TVShowTitle)">$INFO[ListItem.TVShowTitle] - $INFO[ListItem.Season,,x]$INFO[ListItem.Episode,,. ]$INFO[ListItem.Title]</value>
        <!-- default -->
        <value>$INFO[ListItem.Label]</value>
    </variable>

It worked perfectly in Alpha1 and before, then never worked again in Alpha2 and beyond.

If you can point me to some nightlies in between Alpha1 and Alpha2 I'll figure out what commit broke it to give you an exact time.

Thanks for looking into it.
Using two 2820FYKH0 Intel NUCs, a Revo 1600, and a Foxconn NT-330i - All running OpenELEC. :)
Reply
Are you sure there is a property named "widgettype"? I searched both Kodi and Estuary source code for this string - no matches.
Reply
(2019-01-26, 09:45)ksooo Wrote: Are you sure there is a property named "widgettype"? I searched both Kodi and Estuary source code for this string - no matches.
Code:
<visible>[String.IsEqual(Container(9000).ListItem.Property(WidgetType),13) | String.IsEqual(Container(9000).ListItem.Property(WidgetType),1) | String.IsEqual(Container(9000).ListItem.Property(WidgetType),2) | String.IsEqual(Container(9000).ListItem.Property(WidgetType),4) | String.IsEqual(Container(9000).ListItem.Property(WidgetType),5)]</visible>

That is from Aeon Nox 5 (includes_widgets.xml  line 218.  Nebula, Focus, refouc, Mimic, Grid, Adonic, and Metropolis all currently use that property.

Here is a whole bunch of them from github in refocus.

Here is a reference in a thread jurialmunkey is in from 2016 for Artic Zephyr.
Using two 2820FYKH0 Intel NUCs, a Revo 1600, and a Foxconn NT-330i - All running OpenELEC. :)
Reply
Do they use any helper addons etc which Estuary does not use? If I shall dig into this I need something (e.g. a small patch for Estuary) that definitely has to work with Estuary, together with a clear description how to reproduce and test.
Reply
(2019-01-25, 08:44)MacGyver Wrote: So it's just me?
Seems like you may be real close to putting out a final release so I'm a little worried that I'm going to have to hide a bunch of stuff to make look right.

You can see it in Estuary if you replace line 253 of Home.xml with:
Code:
<param name="widget_header" value=$INFO[Container(9000).ListItem.Property(widgetType)]/>

You will see that the Addons header is now blank too. Anything in 8000 is unable to see the properties from an object in 9000. 
 Modify this in Estuary to see it not work.
Using two 2820FYKH0 Intel NUCs, a Revo 1600, and a Foxconn NT-330i - All running OpenELEC. :)
Reply
Not getting a value can have two reasons. First, property not available. Second, bug.

I want to make sure not to waste my time with a patch that CANNOT work with Estuary, because there is no such property in Estuary.
Reply
@MacGyver - I tested this in Krypton and it doesn't work there either.

The posts you linked of Arctic Zephyr show code referencing Container(ID).ListItem.Property(Property) in a control **OUTSIDE** of the itemlayout/focusedlayout of the list.

As I stated before, using Window Properties or referencing other containers has never worked **inside** <itemlayout> or <focusedlayout>
Reply
(2019-01-26, 14:28)jurialmunkey Wrote: @MacGyver - I tested this in Krypton and it doesn't work there either.

The posts you linked of Arctic Zephyr show code referencing Container(ID).ListItem.Property(Property) in a control **OUTSIDE** of the itemlayout/focusedlayout of the list.

As I stated before, using Window Properties or referencing other containers has never worked **inside** <itemlayout> or <focusedlayout>
 It did work in every version prior to 18 Alpha2.

Here is the current Metropolis WIP with the gui version changed to 5.13.0  and running on Kodi 18 Alpha 1.
Image

And here is the same current Metropolis WIP with it set back to 5.14.0 and running on Kodi 18 RC 5.
Image

It has behaved this way since Alpha 2.

It is used in a lot of skins in listviews.

Here is a snipit from Aeon Nox includes_widgets.xml (starting at line 512):
Code:
                <control type="list" id="8000">
                        <left>31</left>
                        <top>31</top>
                        <width>360</width>
                        <height>360</height>
                        <onup>8000</onup>
                        <ondown>8000</ondown>
                        <onleft>9000</onleft>
                        <onright>9000</onright>
                        <onback>9000</onback>
                        <viewtype label="535">list</viewtype>
                        <pagecontrol />
                        <orientation>vertical</orientation>
                        <onclick condition="String.IsEqual(Container(9000).ListItem.Property(WidgetType),13)">$INFO[ListItem.FileNameAndPath]</onclick>
                        <scrolltime tween="quadratic" easing="out">200</scrolltime>
                        <visible>!String.IsEmpty(Container(9000).ListItem.Property(Widget))</visible>
          ...
          ...

Here is a link to Aeon Nox's Github repo with it still in use.


Granted it's not being used in a ltemlayout in Aeon Nox, but other skins may still use it the way Metropolis does.

The not displaying is not the issue, it's that the variable portion doesn't work because of the value not being available.

Here is what this code displays (the default value), because the property is no longer available.
Code:
<variable name="GlobalWidgetLabel">
<value condition="String.IsEqual(Container(9000).ListItem.Property(WidgetType),movies)">$INFO[ListItem.Title]$INFO[ListItem.Year, (,)]</value>
<value condition="String.IsEqual(Container(9000).ListItem.Property(WidgetType),episodes)">$INFO[ListItem.TVShowTitle] - $INFO[ListItem.Season]x$INFO[ListItem.Episode,,. ]$INFO[ListItem.Title]</value>
<value condition="String.IsEqual(Container(9000).ListItem.Property(WidgetType),albums)">$INFO[ListItem.Artist] - $INFO[ListItem.Title]$INFO[ListItem.Year, (,)]</value>
<value condition="String.IsEqual(Container(9000).ListItem.Property(WidgetType),songs)">$INFO[ListItem.Artist] - $INFO[ListItem.Title]</value>
<value condition="String.IsEqual(Container(9000).ListItem.Property(WidgetType),musicvideos)">$INFO[ListItem.Artist] - $INFO[ListItem.Title]</value>
<!-- fixing the playlists content labels -->
<value condition="String.IsEqual(Container(9000).ListItem.Property(widget), Playlist) + String.IsEmpty(Container(8000).ListItem.TVShowTitle)">$INFO[ListItem.Title]$INFO[ListItem.Year, (,)]</value>
<value condition="String.IsEqual(Container(9000).ListItem.Property(widget), Playlist) + !String.IsEqual(ListItem.Title, ListItem.TVShowTitle) + !String.IsEmpty(Container(8000).ListItem.TVShowTitle)">$INFO[ListItem.TVShowTitle] - $INFO[ListItem.Season,,x]$INFO[ListItem.Episode,,. ]$INFO[ListItem.Title]</value>
<!-- default -->
<value>$INFO[ListItem.Label]</value>
</variable>

 Kodi 18 RC 5Image

And as you can see in the Alpha1 example, the same code worked perfectly fine and is formatting the movies with the proper year info.
Image
Using two 2820FYKH0 Intel NUCs, a Revo 1600, and a Foxconn NT-330i - All running OpenELEC. :)
Reply
Again, show me how I can reproduce/test with Estuary. Your patch is not appropriate as there is no property widgettype in Estuary and I don't want to mess around with other skins which introduce tons of additional supporting addons and scripts.
Reply
(2019-01-26, 20:51)ksooo Wrote: Again, show me how I can reproduce/test with Estuary. Your patch is not appropriate as there is no property widgettype in Estuary and I don't want to mess around with other skins which introduce tons of additional supporting addons and scripts.
 I'll see what I can do, I'm not very familiar with Estuary's code.
Using two 2820FYKH0 Intel NUCs, a Revo 1600, and a Foxconn NT-330i - All running OpenELEC. :)
Reply
So I wrote the smallest Home.xml that could show the issue and shoved it into Estuary, what I can say is that you are technically correct. It would appear that a listcontrol does not have access to the properties of another listcontrol. 
However, prior to Alpha 2 conditions inside variables that are used in list controls could. It made it "look" like the list control could use those values, and it worked in everything Alpha 1 and before.

I'm thinking that visibility controls inside list controls also could access them as well, that would make sense for some of the skin issues I see in Metropolis.

It explains why this did work, but no longer does:
Code:
    <variable name="GlobalWidgetLabel">
        <value condition="String.IsEqual(Container(9000).ListItem.Property(widgetType),movies)">$INFO[ListItem.Title]$INFO[ListItem.Year, (,)]</value>
        <value condition="String.IsEqual(Container(9000).ListItem.Property(widgetType), episodes)">$INFO[ListItem.TVShowTitle] - $INFO[ListItem.Season]x$INFO[ListItem.Episode,,. ]$INFO[ListItem.Title]</value>
        <value condition="String.IsEqual(Container(9000).ListItem.Property(widgetType), albums)">$INFO[ListItem.Artist] - $INFO[ListItem.Title]$INFO[ListItem.Year, (,)]</value>
        <value condition="String.IsEqual(Container(9000).ListItem.Property(widgetType), songs)">$INFO[ListItem.Artist] - $INFO[ListItem.Title]</value>
        <value condition="String.IsEqual(Container(9000).ListItem.Property(widgetType), musicvideos)">$INFO[ListItem.Artist] - $INFO[ListItem.Title]</value>
        <!-- fixing the playlists content labels -->
        <value condition="String.IsEqual(Container(9000).ListItem.Property(widget), Playlist) + String.IsEmpty(Container(8000).ListItem.TVShowTitle)">$INFO[ListItem.Title]$INFO[ListItem.Year, (,)]</value>
        <value condition="String.IsEqual(Container(9000).ListItem.Property(widget), Playlist) + !String.IsEqual(ListItem.Title, ListItem.TVShowTitle) + !String.IsEmpty(Container(8000).ListItem.TVShowTitle)">$INFO[ListItem.TVShowTitle] - $INFO[ListItem.Season,,x]$INFO[ListItem.Episode,,. ]$INFO[ListItem.Title]</value>
        <!-- default -->
        <value>$INFO[ListItem.Label]</value>
    </variable>

in this context:
Code:
<control id="8000" type="list">
                <visible>String.IsEqual(Container(9000).ListItem.Property(submenuVisibility),movies)</visible>
                <posx>522</posx>
                <posy>563</posy>
                <width>910</width>
                <height>135</height>
                <onup>8000</onup>
                <ondown>8000</ondown>
                <onleft>9000</onleft>
                <onright>9000</onright>
                <viewtype>list</viewtype>
                <orientation>vertical</orientation>
                <itemlayout width="910" height="27">
                    <control type="label">
                        <posx>10</posx>
                        <posy>-2</posy>
                        <width>500</width>
                        <height>27</height>
                        <align>left</align>
                        <aligny>center</aligny>
                        <font>font14</font>
                        <textcolor>white</textcolor>
                        <label>$VAR[GlobalWidgetLabel]</label>
                        <visible>true</visible>
                    </control>
                </itemlayout>
                <focusedlayout width="910" height="27">
                    <!-- Focus Bar -->
                    <control type="image">
                        <posx>0</posx>
                        <posy>0</posy>
                        <width>510</width>
                        <height>27</height>
                        <aligny>center</aligny>
                        <texture>lists/focus.png</texture>
                        <colordiffuse>blue</colordiffuse>
                        <visible>true</visible>
                    </control>
                    <control type="label">
                        <posx>10</posx>
                        <posy>-2</posy>
                        <width>500</width>
                        <height>27</height>
                        <align>left</align>
                        <aligny>center</aligny>
                        <scrollout>false</scrollout>
                        <pauseatend>600</pauseatend>
                        <scrollspeed>20</scrollspeed>
                        <font>font14</font>
                        <textcolor>white</textcolor>
                       <label>$VAR[GlobalWidgetLabel]</label>
                        <visible>true</visible>
                    </control>
                </focusedlayout>
                <content target="videos">plugin://script.skin.helper.widgets/?action=recent&amp;mediatype=movies&amp;reload=$INFO[Window(home).Property(widgetreload-movies)]</content>
            </control>


Does this make sense? Is this a bug or is it supposed to behave this way. Was the fact that it worked before the error and it has been fixed after Alpha1?

The feature was very useful and I hope that it can work again. (a condition in a variable declaration called from a list control having access to another listcontrol's properties)
Using two 2820FYKH0 Intel NUCs, a Revo 1600, and a Foxconn NT-330i - All running OpenELEC. :)
Reply
FWIW, I agree that it would be useful. The reason you can't do it is for the sake of efficiency:
1547735 (post)
Reply
  •   
  • 1
  • 10
  • 11
  • 12
  • 13
  • 14(current)
 
Thread Rating:
  • 0 Vote(s) - 0 Average



Logout Mark Read Team Forum Stats Members Help
Skinners: Please test PR1375400