Kodi Community Forum
Beta Arctic: Zephyr 2 - Resurrection - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: Skins Support (https://forum.kodi.tv/forumdisplay.php?fid=67)
+---- Forum: Arctic: Zephyr - Reloaded (https://forum.kodi.tv/forumdisplay.php?fid=221)
+---- Thread: Beta Arctic: Zephyr 2 - Resurrection (/showthread.php?tid=362941)



RE: Arctic: Zephyr 2 - Resurrection - heppen - 2021-06-24

(2021-06-24, 13:25)jokero009 Wrote: I honestly don't even remember where she was, but I think it was possible in the place where the widgets are selected in the library at the top) Where else is there a lock for widgets, or you can make a function like "Show additional fanart" right inside the skin settings.  please, if anything .. But I really like this feature Smile
Ahh, now I know and remember. This extra fanart button is gone when we dropped Skin Helper dependency. I'm not sure if it's possible to implement this using some other addons. I will check it.


RE: Arctic: Zephyr 2 - Resurrection - heppen - 2021-06-24

(2021-06-23, 21:10)Solo0815 Wrote: Here is a screenshot of how a PVR-OSD could look like:
https://imgur.com/a/M3wQSqg
- clock, actual time (21:00)
actual program:
- runtime left (+49 min)
- start and endtime (21:00 - 21:50)
- Episodename (Season and Ep-# also, if available)
- start and endtime of next program (21:00 - 21:50)
There is a problem with the progressbar. It should be in highlight-color, but I couldn't manage to do it Sad
If you need sample code, pls let me know.
up should open "info", down should go to to the "channel-switcher"

Hi! Smile
I'm working on this PVR OSD today. This is how it looks like so far: https://imgur.com/MQy9brw
I hope it will be ready to push with today's update in the evening (EU Time) Smile


RE: Arctic: Zephyr 2 - Resurrection - Rijs43 - 2021-06-24

(2021-06-24, 13:51)nfm886 Wrote:
(2021-06-24, 13:10)Rijs43 Wrote:
(2021-06-24, 08:58)nfm886 Wrote: It would look ok but I'm worry about performance. It can be killer-feature on some boxes... I will consider this.

Fully understand and perhaps this can be implemented as an option?

I really believe this will bring more the Netflix environment in the skin.

I will consider this. It won't be that easy to implement I think so lets say I have it on my TODO but a bit far ^^

Great thanks!


RE: Arctic: Zephyr 2 - Resurrection - heppen - 2021-06-24

(2021-06-24, 15:11)Rijs43 Wrote:
(2021-06-24, 13:51)nfm886 Wrote:
(2021-06-24, 13:10)Rijs43 Wrote: Fully understand and perhaps this can be implemented as an option?

I really believe this will bring more the Netflix environment in the skin.

I will consider this. It won't be that easy to implement I think so lets say I have it on my TODO but a bit far ^^

Great thanks!

Probably when I will done PVR OSD and add gradients + new color picker I will play around with that feature Smile


RE: Arctic: Zephyr 2 - Resurrection - heppen - 2021-06-24

(2021-06-23, 21:10)Solo0815 Wrote: Here is a screenshot of how a PVR-OSD could look like:
https://imgur.com/a/M3wQSqg
- clock, actual time (21:00)
actual program:
- runtime left (+49 min)
- start and endtime (21:00 - 21:50)
- Episodename (Season and Ep-# also, if available)
- start and endtime of next program (21:00 - 21:50)
There is a problem with the progressbar. It should be in highlight-color, but I couldn't manage to do it Sad
If you need sample code, pls let me know.
up should open "info", down should go to to the "channel-switcher"

Ok, I manage to do something ^^ 
This is how it looks like in current state: https://imgur.com/a/uYc4EWv
I will push it as soon as you will approve it^^ There is some spots to improve but it should be ready later Smile


RE: Arctic: Zephyr 2 - Resurrection - Logs22 - 2021-06-24

(2021-06-24, 16:34)nfm886 Wrote:
(2021-06-23, 21:10)Solo0815 Wrote: Here is a screenshot of how a PVR-OSD could look like:
https://imgur.com/a/M3wQSqg
- clock, actual time (21:00)
actual program:
- runtime left (+49 min)
- start and endtime (21:00 - 21:50)
- Episodename (Season and Ep-# also, if available)
- start and endtime of next program (21:00 - 21:50)
There is a problem with the progressbar. It should be in highlight-color, but I couldn't manage to do it Sad
If you need sample code, pls let me know.
up should open "info", down should go to to the "channel-switcher"

Ok, I manage to do something ^^ 
This is how it looks like in current state: https://imgur.com/a/uYc4EWv
I will push it as soon as you will approve it^^ There is some spots to improve but it should be ready later Smile
im not the OP but that looks pretty damn good for a kodi pvr haha, love what your doing!


RE: Arctic: Zephyr 2 - Resurrection - heppen - 2021-06-24

(2021-06-24, 16:50)Logs22 Wrote:
(2021-06-24, 16:34)nfm886 Wrote:
(2021-06-23, 21:10)Solo0815 Wrote: Here is a screenshot of how a PVR-OSD could look like:
https://imgur.com/a/M3wQSqg
- clock, actual time (21:00)
actual program:
- runtime left (+49 min)
- start and endtime (21:00 - 21:50)
- Episodename (Season and Ep-# also, if available)
- start and endtime of next program (21:00 - 21:50)
There is a problem with the progressbar. It should be in highlight-color, but I couldn't manage to do it Sad
If you need sample code, pls let me know.
up should open "info", down should go to to the "channel-switcher"

Ok, I manage to do something ^^ 
This is how it looks like in current state: https://imgur.com/a/uYc4EWv
I will push it as soon as you will approve it^^ There is some spots to improve but it should be ready later Smile
im not the OP but that looks pretty damn good for a kodi pvr haha, love what your doing!

Thank you so much for kind words! Smile


RE: Arctic: Zephyr 2 - Resurrection - Rijs43 - 2021-06-24

(2021-06-24, 15:19)nfm886 Wrote:
(2021-06-24, 15:11)Rijs43 Wrote:
(2021-06-24, 13:51)nfm886 Wrote: I will consider this. It won't be that easy to implement I think so lets say I have it on my TODO but a bit far ^^

Great thanks!

Probably when I will done PVR OSD and add gradients + new color picker I will play around with that feature Smile

That sounds sooner than I expect Big Grin


RE: Arctic: Zephyr 2 - Resurrection - Rijs43 - 2021-06-24

Hi,

One other request. In netflix mode you see only one row of widgets. Is it possible to show the next widget under it a little bit of the top? Like Netflix, so not the entire second widget row?

Also when scrolling in a widget row.. is it possible to show at the left a part of the previous poster/ landscape?

Hope this makes sense to you!


RE: Arctic: Zephyr 2 - Resurrection - heppen - 2021-06-24

(2021-06-24, 17:18)Rijs43 Wrote: One other request. In netflix mode you see only one row of widgets. Is it possible to show the next widget under it a little bit of the top? Like Netflix, so not the entire second widget row?

I must test it and see how it will fit. But it's possible to do Smile
 
(2021-06-24, 17:18)Rijs43 Wrote: Also when scrolling in a widget row.. is it possible to show at the left a part of the previous poster/ landscape?
I'm not sure how it could look but maybe you have fixed movement for widgets enabled? If you will disable it you can scroll through it and previous posters will be shown too. 
Ahh.. If it something like this: 
Quote:One other request. In netflix mode you see only one row of widgets. Is it possible to show the next widget under it a little bit of the top? Like Netflix, so not the entire second widget row?
So again, I must see how it will look like ^^

#edit
Hmm... I think it should not look good since there is label which will be visible also with posters: https://imgur.com/8F3VZfp


RE: Arctic: Zephyr 2 - Resurrection - Solo0815 - 2021-06-24

(2021-06-24, 16:34)nfm886 Wrote:
(2021-06-23, 21:10)Solo0815 Wrote: Here is a screenshot of how a PVR-OSD could look like:
https://imgur.com/a/M3wQSqg
- clock, actual time (21:00)
actual program:
- runtime left (+49 min)
- start and endtime (21:00 - 21:50)
- Episodename (Season and Ep-# also, if available)
- start and endtime of next program (21:00 - 21:50)
There is a problem with the progressbar. It should be in highlight-color, but I couldn't manage to do it Sad
If you need sample code, pls let me know.
up should open "info", down should go to to the "channel-switcher"

Ok, I manage to do something ^^ 
This is how it looks like in current state: https://imgur.com/a/uYc4EWv
I will push it as soon as you will approve it^^ There is some spots to improve but it should be ready later Smile
Looks very good!
Here is the sample code for the remaining time:
xml:
<variable name="PVRTimeRemainingMMVar">
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),09)">9m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),08)">8m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),07)">7m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),06)">6m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),05)">5m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),04)">4m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),03)">3m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),02)">2m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),01)">1m</value>
    </variable>
    
    <variable name="PVRTimeRemainingVar">
        <value condition="Integer.IsGreater(PVR.EpgEventRemainingTime(h),0) + Integer.IsGreater(PVR.EpgEventRemainingTime(mm),9)">$INFO[PVR.EpgEventRemainingTime(h),,h]$INFO[PVR.EpgEventRemainingTime(mm),,m]</value>
        <value condition="Integer.IsGreater(PVR.EpgEventRemainingTime(h),0) + Integer.IsLessOrEqual(PVR.EpgEventRemainingTime(mm),9)">$INFO[PVR.EpgEventRemainingTime(h),,h]$VAR[PVRTimeRemainingMMVar]</value>
        <value condition="Integer.IsLessOrEqual(PVR.EpgEventRemainingTime(h),0) + Integer.IsGreater(PVR.EpgEventRemainingTime(mm),9)">$INFO[PVR.EpgEventRemainingTime(mm),,m]</value>
        <value condition="Integer.IsLessOrEqual(PVR.EpgEventRemainingTime(h),0) + Integer.IsLessOrEqual(PVR.EpgEventRemainingTime(mm),9)">$VAR[PVRTimeRemainingMMVar]</value>
        <value>$INFO[PVR.EpgEventRemainingTime(ss)]s</value>
    </variable>

I'm running CoreELEC too, but if I press up or down after "OK", then channel switcher opens.
I can't open "info" on up or down, also not, if I press it 2 times.

and here is some code for the second textline:
xml:
<control type="label">
                    <visible>!String.IsEmpty(VideoPlayer.EpisodeName)</visible>
                    ...
                    <label>$INFO[VideoPlayer.Season,s]$INFO[VideoPlayer.Episode,e, - ]$INFO[VideoPlayer.Episodename]</label>
                </control>
                
                <!-- Time Information -->
                <control type="label">
                    ...
                    <label>+$VAR[PVRTimeRemainingVar]</label>
                </control>



RE: Arctic: Zephyr 2 - Resurrection - Rijs43 - 2021-06-24

(2021-06-24, 17:40)nfm886 Wrote:
(2021-06-24, 17:18)Rijs43 Wrote: One other request. In netflix mode you see only one row of widgets. Is it possible to show the next widget under it a little bit of the top? Like Netflix, so not the entire second widget row?

I must test it and see how it will fit. But it's possible to do Smile

Great pal! Would be really nice to have!
 
(2021-06-24, 17:18)Rijs43 Wrote: Also when scrolling in a widget row.. is it possible to show at the left a part of the previous poster/ landscape?
I'm not sure how it could look but maybe you have fixed movement for widgets enabled? If you will disable it you can scroll through it and previous posters will be shown too. 
Ahh.. If it something like this: 
Quote:One other request. In netflix mode you see only one row of widgets. Is it possible to show the next widget under it a little bit of the top? Like Netflix, so not the entire second widget row?
So again, I must see how it will look like ^^

#edit
Hmm... I think it should not look good since there is label which will be visible also with posters: https://imgur.com/8F3VZfp

You are the expert, so if you believe it will not work than unfortunately that is the case.



RE: Arctic: Zephyr 2 - Resurrection - heppen - 2021-06-24

(2021-06-24, 19:29)Solo0815 Wrote:
(2021-06-24, 16:34)nfm886 Wrote:
(2021-06-23, 21:10)Solo0815 Wrote: Here is a screenshot of how a PVR-OSD could look like:
https://imgur.com/a/M3wQSqg
- clock, actual time (21:00)
actual program:
- runtime left (+49 min)
- start and endtime (21:00 - 21:50)
- Episodename (Season and Ep-# also, if available)
- start and endtime of next program (21:00 - 21:50)
There is a problem with the progressbar. It should be in highlight-color, but I couldn't manage to do it Sad
If you need sample code, pls let me know.
up should open "info", down should go to to the "channel-switcher"

Ok, I manage to do something ^^ 
This is how it looks like in current state: https://imgur.com/a/uYc4EWv
I will push it as soon as you will approve it^^ There is some spots to improve but it should be ready later Smile
Looks very good!
Here is the sample code for the remaining time:
xml:
<variable name="PVRTimeRemainingMMVar">
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),09)">9m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),08)">8m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),07)">7m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),06)">6m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),05)">5m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),04)">4m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),03)">3m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),02)">2m</value>
        <value condition="Integer.IsEqual(PVR.EpgEventRemainingTime(mm),01)">1m</value>
    </variable>
    
    <variable name="PVRTimeRemainingVar">
        <value condition="Integer.IsGreater(PVR.EpgEventRemainingTime(h),0) + Integer.IsGreater(PVR.EpgEventRemainingTime(mm),9)">$INFO[PVR.EpgEventRemainingTime(h),,h]$INFO[PVR.EpgEventRemainingTime(mm),,m]</value>
        <value condition="Integer.IsGreater(PVR.EpgEventRemainingTime(h),0) + Integer.IsLessOrEqual(PVR.EpgEventRemainingTime(mm),9)">$INFO[PVR.EpgEventRemainingTime(h),,h]$VAR[PVRTimeRemainingMMVar]</value>
        <value condition="Integer.IsLessOrEqual(PVR.EpgEventRemainingTime(h),0) + Integer.IsGreater(PVR.EpgEventRemainingTime(mm),9)">$INFO[PVR.EpgEventRemainingTime(mm),,m]</value>
        <value condition="Integer.IsLessOrEqual(PVR.EpgEventRemainingTime(h),0) + Integer.IsLessOrEqual(PVR.EpgEventRemainingTime(mm),9)">$VAR[PVRTimeRemainingMMVar]</value>
        <value>$INFO[PVR.EpgEventRemainingTime(ss)]s</value>
    </variable>

I'm running CoreELEC too, but if I press up or down after "OK", then channel switcher opens.
I can't open "info" on up or down, also not, if I press it 2 times.

and here is some code for the second textline:
xml:
<control type="label">
                    <visible>!String.IsEmpty(VideoPlayer.EpisodeName)</visible>
                    ...
                    <label>$INFO[VideoPlayer.Season,s]$INFO[VideoPlayer.Episode,e, - ]$INFO[VideoPlayer.Episodename]</label>
                </control>
                
                <!-- Time Information -->
                <control type="label">
                    ...
                    <label>+$VAR[PVRTimeRemainingVar]</label>
                </control>
Thanks! I'm not sure if I will push it today. I'm working on gradients atm so want to make done this thing first. Tomorrow after morning should be ok Smile


RE: Arctic: Zephyr 2 - Resurrection - heppen - 2021-06-24

(2021-06-24, 19:32)Rijs43 Wrote:
(2021-06-24, 17:40)nfm886 Wrote:
(2021-06-24, 17:18)Rijs43 Wrote: One other request. In netflix mode you see only one row of widgets. Is it possible to show the next widget under it a little bit of the top? Like Netflix, so not the entire second widget row?

I must test it and see how it will fit. But it's possible to do Smile

Great pal! Would be really nice to have!
 
(2021-06-24, 17:18)Rijs43 Wrote: Also when scrolling in a widget row.. is it possible to show at the left a part of the previous poster/ landscape?
I'm not sure how it could look but maybe you have fixed movement for widgets enabled? If you will disable it you can scroll through it and previous posters will be shown too. 
Ahh.. If it something like this: 
Quote:One other request. In netflix mode you see only one row of widgets. Is it possible to show the next widget under it a little bit of the top? Like Netflix, so not the entire second widget row?
So again, I must see how it will look like ^^

#edit
Hmm... I think it should not look good since there is label which will be visible also with posters: https://imgur.com/8F3VZfp

You are the expert, so if you believe it will not work than unfortunately that is the case.
I would not call "Expert" myself ^^ I'm just newbie who still learning stuff Smile


RE: Arctic: Zephyr 2 - Resurrection - bsoriano - 2021-06-24

(2021-06-24, 13:55)nfm886 Wrote:
(2021-06-24, 13:25)jokero009 Wrote: I honestly don't even remember where she was, but I think it was possible in the place where the widgets are selected in the library at the top) Where else is there a lock for widgets, or you can make a function like "Show additional fanart" right inside the skin settings.  please, if anything .. But I really like this feature Smile
Ahh, now I know and remember. This extra fanart button is gone when we dropped Skin Helper dependency. I'm not sure if it's possible to implement this using some other addons. I will check it.
@"nfm886" , you do not need any addon to implement a "Show Fanart" button in the video info dialog that shows either a single fanart or up to x extra fanarts.  The extra fanarts just need to be loaded into the Kodi db, and named fanartxx.yyy as per the Kodi Matrix documentation.  I do this in Amber today.

Here's what the code for the button could be like.  Obviously, you need to adapt it to the look and layout of your skin.

xml:

<control type="button" id="297" description="Extras">
    <height>90</height>
    <width min="190">auto</width>
    <align>center</align>
    <font>Details</font>
    <label>$LOCALIZE[32135]</label>
    <onclick>SetProperty(fanart,$ESCINFO[ListItem.Art(fanart)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart1,$ESCINFO[ListItem.Art(fanart1)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart2,$ESCINFO[ListItem.Art(fanart2)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart3,$ESCINFO[ListItem.Art(fanart3)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart4,$ESCINFO[ListItem.Art(fanart4)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart5,$ESCINFO[ListItem.Art(fanart5)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart6,$ESCINFO[ListItem.Art(fanart6)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart7,$ESCINFO[ListItem.Art(fanart7)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart8,$ESCINFO[ListItem.Art(fanart8)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart9,$ESCINFO[ListItem.Art(fanart9)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart10,$ESCINFO[ListItem.Art(fanart10)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart11,$ESCINFO[ListItem.Art(fanart11)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart12,$ESCINFO[ListItem.Art(fanart12)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart13,$ESCINFO[ListItem.Art(fanart13)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart14,$ESCINFO[ListItem.Art(fanart14)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart15,$ESCINFO[ListItem.Art(fanart15)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart16,$ESCINFO[ListItem.Art(fanart16)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart17,$ESCINFO[ListItem.Art(fanart17)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart18,$ESCINFO[ListItem.Art(fanart18)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart19,$ESCINFO[ListItem.Art(fanart19)],home)</onclick>
    <onclick condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetProperty(fanart20,$ESCINFO[ListItem.Art(fanart20)],home)</onclick>
    <onclick>ActivateWindow(1126)</onclick>
    <visible>!Skin.HasSetting(KioskMode.Enabled)</visible>
    <visible>!String.IsEmpty(Listitem.DBID)</visible>
</control>

And this is the code for the custom dialog to show the fanart and extra fanart (my apologies for the long code snippet):

xml:

<?xml version="1.0" encoding="utf-8"?>

<window type="dialog" id="1126">

    <animation effect="fade" start="0" end="100" time="400">WindowOpen</animation>
    <animation effect="fade" start="100" end="0" time="300">WindowClose</animation>
    <onload condition="Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetFocus(91506)</onload>
    <onload condition="!Skin.HasSetting(SkinHelper.EnableExtraFanart)">SetFocus(3000)</onload>
    
    <onunload>ClearProperty(fanart,Home)</onunload>
    <onunload>ClearProperty(fanart1,Home)</onunload>
    <onunload>ClearProperty(fanart2,Home)</onunload>
    <onunload>ClearProperty(fanart3,Home)</onunload>
    <onunload>ClearProperty(fanart4,Home)</onunload>
    <onunload>ClearProperty(fanart5,Home)</onunload>
    <onunload>ClearProperty(fanart6,Home)</onunload>
    <onunload>ClearProperty(fanart7,Home)</onunload>
    <onunload>ClearProperty(fanart8,Home)</onunload>
    <onunload>ClearProperty(fanart9,Home)</onunload>
    <onunload>ClearProperty(fanart10,Home)</onunload>
    <onunload>ClearProperty(fanart11,Home)</onunload>
    <onunload>ClearProperty(fanart12,Home)</onunload>
    <onunload>ClearProperty(fanart13,Home)</onunload>
    <onunload>ClearProperty(fanart14,Home)</onunload>
    <onunload>ClearProperty(fanart15,Home)</onunload>
    <onunload>ClearProperty(fanart16,Home)</onunload>
    <onunload>ClearProperty(fanart17,Home)</onunload>
    <onunload>ClearProperty(fanart18,Home)</onunload>
    <onunload>ClearProperty(fanart19,Home)</onunload>
    <onunload>ClearProperty(fanart20,Home)</onunload>
    
    <controls>
    
        <control type="group">
            <visible>!Skin.HasSetting(SkinHelper.EnableExtraFanart)</visible>
            <control type="image">
                <include>Dimensions_Fullscreen</include>
                <aspectratio>scale</aspectratio>
                <texture>colors/black.png</texture>
            </control>
            <control type="image">
                <include>Dimensions_Fullscreen</include>
                <aspectratio>keep</aspectratio>
                <texture>$INFO[Window(home).Property(fanart)]</texture>
            </control>
            <control type="button" id="3000">
                <include>HiddenButton</include>
                <onclick>Action(close)</onclick>
            </control>
        </control>    
        
        <control type="group">
            <visible>Skin.HasSetting(SkinHelper.EnableExtraFanart)</visible>
            <control type="list" id="9105">
                <itemlayout />
                <focusedlayout />
                <posx>-20</posx>
                <posy>-20</posy>
                <width>1</width>
                <height>1</height>
                <content>
                    <item>
                        <label>$INFO[Window(home).Property(fanart)]</label>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart1)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart1))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart2)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart2))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart3)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart3))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart4)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart4))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart5)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart5))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart6)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart6))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart7)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart7))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart8)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart8))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart9)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart9))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart10)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart10))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart11)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart11))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart12)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart12))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart13)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart13))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart14)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart14))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart15)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart15))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart16)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart16))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart17)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart17))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart18)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart18))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart19)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart19))</visible>
                    </item>
                    <item>
                        <label>$INFO[Window(home).Property(fanart20)]</label>
                        <visible>!String.IsEmpty(Window(home).Property(fanart20))</visible>
                    </item>
                </content>
            </control>
            <control type="button" id="91506">
                <include>HiddenButton</include>
                <onleft>Control.Move(9105,-1)</onleft>
                <onright>Control.Move(9105,1)</onright>
                <onclick>Action(Close)</onclick>
            </control>
            <control type="group">
                <animation effect="fade" start="0" end="100" time="350" tween="cubic" easing="inout">Visible</animation>
                <animation effect="fade" start="100" end="0" time="350" tween="cubic" easing="inout">Hidden</animation>
                <visible>Control.HasFocus(91506)</visible>
                <control type="image">
                    <width>1920</width>
                    <height>1080</height>
                    <texture>img/blackdot1.png</texture>
                    <aspectratio>scale</aspectratio>
                </control>
                <control type="image">
                    <aspectratio>keep</aspectratio>
                    <texture background="true">$INFO[Container(9105).ListItem.Label]</texture>
                </control>
                <control type="image">
                    <visible>Container(9105).HasPrevious</visible>
                    <left>0</left>
                    <top>1000</top>
                    <width>34</width>
                    <height>34</height>
                    <texture flipx="false" colordiffuse="$VAR[HighlightColor]">icons/spin-left.png</texture>
                    <animation effect="fade" time="300" start="100" end="0" condition="System.IdleTime(2)">Conditional</animation>
                </control>
                <control type="image">
                    <visible>Container(9105).HasNext</visible>
                    <left>1880</left>
                    <top>1000</top>
                    <width>34</width>
                    <height>34</height>
                    <texture flipx="true" colordiffuse="$VAR[HighlightColor]">icons/spin-left.png</texture>
                    <animation effect="fade" time="300" start="100" end="0" condition="System.IdleTime(2)">Conditional</animation>
                </control>
            </control>
        </control>    
        
    </controls>
</window>


As you can see from the code above, this will display up to 20 extra fanart, as long as they are loaded in the db as fanart1, fanart2, etc.

Regards,

Bart