• 1
  • 11
  • 12
  • 13
  • 14(current)
  • 15
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 a NUC7PJYHN and a 2820FYKH0 Intel NUC running LibreELEC, and two FireTVs.:)
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 a NUC7PJYHN and a 2820FYKH0 Intel NUC running LibreELEC, and two FireTVs.:)
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 a NUC7PJYHN and a 2820FYKH0 Intel NUC running LibreELEC, and two FireTVs.:)
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>
Arctic Fuse - Alpha now available. Support me on Ko-fi.
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 a NUC7PJYHN and a 2820FYKH0 Intel NUC running LibreELEC, and two FireTVs.:)
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 a NUC7PJYHN and a 2820FYKH0 Intel NUC running LibreELEC, and two FireTVs.:)
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 a NUC7PJYHN and a 2820FYKH0 Intel NUC running LibreELEC, and two FireTVs.:)
Reply
FWIW, I agree that it would be useful. The reason you can't do it is for the sake of efficiency:
https://forum.kodi.tv/showthread.php?tid...pid1547735
Arctic Fuse - Alpha now available. Support me on Ko-fi.
Reply
MusicPlayer.Position(n).xyz  appears to return MusicPlayer.xyz (ignores the "position" element).  This worked prior to 13754 (tested 18 A1)
MusicPlayer.Offset(n).UserRating returns MusicPlayer.UserRatng (ignores the "offset" element).  This didn't return anything prior to 13754.  However, MusicPlayer.Offset(n).xyz does work (before and after) for any other infolabel than UserRating (tried a few, not all possible).

scott s.
.
Reply
(2019-04-18, 01:13)scott967 Wrote: MusicPlayer.Position(n).xyz  appears to return MusicPlayer.xyz (ignores the "position" element).  This worked prior to 13754 (tested 18 A1)
MusicPlayer.Offset(n).UserRating returns MusicPlayer.UserRatng (ignores the "offset" element).  This didn't return anything prior to 13754.  However, MusicPlayer.Offset(n).xyz does work (before and after) for any other infolabel than UserRating (tried a few, not all possible).

scott s.
.

@scott967, Has a fix been made for this issue? Would love to see one, as it appears to be an oversight and it greatly improves the application of track ratings for displays/playlists.

Thx in advance for a reply.
Reply
  • 1
  • 11
  • 12
  • 13
  • 14(current)
  • 15

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