For weeks I deal with multiimage artworkbeef about fadelabel control.
I looked at your implementation for ExtraFanart integration and found some problems.
1. It does not work for me, with the button Extra Fanart AB, the extra fanart or fanart will not be hidden. Extra fanart AB is displayed but is below it.
2. Why do you work with Hassetting and not with SkinStrings?
Your implementation:
IncludesTopMenu.xml 2228, 2275
Code:
<control type="radiobutton" id="9437">
<!-- Extra Fanart Movies -->
<include>TopMenuRadioButton</include>
<label>32144</label>
<onclick>Skin.ToggleSetting(artworkbeef_moviesfanart)</onclick>
<selected>Skin.HasSetting(artworkbeef_moviesfanart)</selected>
<visible>Container.Content(movies) + !Skin.HasSetting(trailers)</visible>
</control>
Code:
<control type="radiobutton" id="9438">
<!-- Extra Fanart Movies -->
<include>TopMenuRadioButton</include>
<label>32144</label>
<onclick>Skin.ToggleSetting(artworkbeef_tvshowsfanart)</onclick>
<selected>Skin.HasSetting(artworkbeef_tvshowsfanart)</selected>
<visible>Container.Content(tvshows)</visible>
</control>
includes.xml 2291
Code:
<include name="AB_Fanart">
<control type="multiimage">
<width>100%</width>
<height>100%</height>
<fadetime>4000</fadetime>
<randomize>true</randomize>
<loop>yes</loop>
<imagepath background="true">$VAR[Random_Fanart]</imagepath>
<aspectratio>scale</aspectratio>
</control>
</include>
IncludesVariables.xml 18
Code:
<variable name="Random_Fanart">
<value condition="System.HasAddon(script.artwork.beef) + Skin.HasSetting(artworkbeef_fanart) + !String.IsEmpty(Control.Getlabel(4420))">$INFO[Control.Getlabel(4420)]</value>
</variable>
MyVideoNav.xml 30
Code:
<include>AB_Fanart</include>
<control type="fadelabel" id="4420">
<top>-1000</top>
<width>2560</width>
<height>0</height>
<scrollspeed>20</scrollspeed>
<scrollout>false</scrollout>
<font>Font-LineLabel</font>
<textcolor>white</textcolor>
<randomize>true</randomize>
<pauseatend>5000</pauseatend>
<resetonlabelchange>true</resetonlabelchange>
<label>$INFO[ListItem.Art(fanart)]</label>
<label>$INFO[ListItem.Art(fanart1)]</label>
<label>$INFO[ListItem.Art(fanart2)]</label>
<label>$INFO[ListItem.Art(fanart3)]</label>
<label>$INFO[ListItem.Art(fanart4)]</label>
<label>$INFO[ListItem.Art(fanart5)]</label>
<label>$INFO[ListItem.Art(fanart6)]</label>
<label>$INFO[ListItem.Art(fanart7)]</label>
<label>$INFO[ListItem.Art(fanart8)]</label>
<label>$INFO[ListItem.Art(fanart9)]</label>
<label>$INFO[ListItem.Art(fanart10)]</label>
<label>$INFO[ListItem.Art(fanart11)]</label>
<label>$INFO[ListItem.Art(fanart12)]</label>
<label>$INFO[ListItem.Art(fanart13)]</label>
<label>$INFO[ListItem.Art(fanart14)]</label>
<label>$INFO[ListItem.Art(fanart15)]</label>
<label>$INFO[ListItem.Art(fanart16)]</label>
<label>$INFO[ListItem.Art(fanart17)]</label>
<label>$INFO[ListItem.Art(fanart18)]</label>
<label>$INFO[ListItem.Art(fanart19)]</label>
<label>$INFO[ListItem.Art(fanart20)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart1)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart2)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart3)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart4)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart5)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart6)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart7)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart8)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart9)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart10)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart11)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart12)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart13)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart14)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart15)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart16)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart17)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart18)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart19)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart20)]</label>
</control>
MyVideoNav.xml 287
Code:
<!-- Fanart padrao -->
<control type="image">
<include>WindowBG</include>
<texture background="true">$VAR[value_defaultvideofanart]</texture>
<visible>![Container.Content(genres) | Control.IsVisible(70)] + ![Skin.HasSetting(artworkbeef_moviesfanart) | Skin.HasSetting(artworkbeef_tvshowsfanart)]</visible>
</control>
I am almost sure that this code added in MyVideoNav does not work for me.
+ ![Skin.HasSetting(artworkbeef_moviesfanart) | Skin.HasSetting(artworkbeef_tvshowsfanart)]
What speaks against Extrafanart AB as well as the others to implement? I once tried direct:
IncludesTopMenu.xml
Code:
<control type="radiobutton" id="94100">
<!-- Extra Fanart Movies -->
<include>TopMenuRadioButton</include>
<label>EXTRA FANART (AB)</label>
<onclick>Skin.SetString(moviesfanart,artworkbeef)</onclick>
<selected>String.Contains(skin.string(moviesfanart),artworkbeef)</selected>
<visible>Container.Content(movies) + !Skin.HasSetting(trailers)</visible>
</control>
Code:
<control type="radiobutton" id="94150">
<!-- Extra Fanart TVShows AB -->
<include>TopMenuRadioButton</include>
<label>EXTRA FANART (AB)</label>
<onclick>Skin.SetString(tvshowsfanart,artworkbeef)</onclick>
<selected>String.Contains(skin.string(tvshowsfanart),artworkbeef)</selected>
<visible>Container.Content(tvshows)</visible>
</control>
nothing added in the includes.xml
IncludesVariables.xml
Code:
<variable name="value_videofanart">
<value condition="Container.Content(movies) + String.Contains(Skin.String(moviesfanart),fallback)">$INFO[Skin.String(CustomFallbackMoviesBG)]</value>
<value condition="Container.Content(movies) + String.Contains(Skin.String(moviesfanart),curtains)">special://skin/backgrounds/extras/curtains.jpg</value>
<value condition="Container.Content(movies) + String.Contains(Skin.String(moviesfanart),extra)">$INFO[ListItem.Path]extrafanart/</value>
<value condition="Container.Content(movies) + String.Contains(Skin.String(moviesfanart),artworkbeef)">$INFO[Control.Getlabel(4420)]</value>
<value condition="Container.Content(musicvideos) + String.Contains(Skin.String(musicvideosfanart),fallback)">$INFO[Skin.String(CustomFallbackMusicVideosBG)]</value>
<value condition="Container.Content(musicvideos) + String.Contains(Skin.String(musicvideosfanart),curtains)">special://skin/backgrounds/extras/curtains.jpg</value>
<value condition="Container.Content(musicvideos) + String.Contains(Skin.String(musicvideosfanart),extra)">$INFO[ListItem.Path]extrafanart/</value>
<value condition="Container.Content(tvshows) + String.Contains(Skin.String(tvshowsfanart),fallback)">$INFO[Skin.String(CustomFallbackTVShowsBG)]</value>
<value condition="Container.Content(tvshows) + String.Contains(Skin.String(tvshowsfanart),curtains)">special://skin/backgrounds/extras/curtains.jpg</value>
<value condition="Container.Content(tvshows) + String.Contains(Skin.String(tvshowsfanart),extra)">$INFO[ListItem.Path]extrafanart/</value>
<value condition="Container.Content(tvshows) + String.Contains(Skin.String(tvshowsfanart),artworkbeef)">$INFO[Control.Getlabel(4420)]</value>
<value condition="Container.Content(seasons) + String.Contains(Skin.String(seasonsfanart),fallback)">$INFO[Skin.String(CustomFallbackSeasonsBG)]</value>
<value condition="Container.Content(seasons) + String.Contains(Skin.String(seasonsfanart),curtains)">special://skin/backgrounds/extras/curtains.jpg</value>
<value condition="Container.Content(seasons) + String.Contains(Skin.String(seasonsfanart),extra)">$INFO[ListItem.Path,,extrafanart/]</value>
<value condition="Container.Content(seasons) + String.Contains(Skin.String(seasonsfanart),seasons)">$INFO[ListItem.Path]$INFO[ListItem.Label,,/fanart.jpg]</value>
<value condition="Container.Content(episodes) + String.Contains(Skin.String(episodesfanart),fallback)">$INFO[Skin.String(CustomFallbackEpisodesBG)]</value>
<value condition="Container.Content(episodes) + String.Contains(Skin.String(episodesfanart),curtains)">special://skin/backgrounds/extras/curtains.jpg</value>
<value condition="Container.Content(episodes) + String.Contains(Skin.String(episodesfanart),extra)">$INFO[ListItem.Path,,../extrafanart/]</value>
<value condition="Container.Content(episodes) + String.Contains(Skin.String(episodesfanart),seasons)">$INFO[ListItem.Path,,fanart.jpg]</value>
<value condition="Container.Content(sets) + String.Contains(Skin.String(setsfanart),fallback)">$INFO[Skin.String(CustomFallbackSetsBG)]</value>
<value condition="Container.Content(sets) + String.Contains(Skin.String(setsfanart),curtains)">special://skin/backgrounds/extras/curtains.jpg</value>
<value condition="Container.Content(sets) + String.Contains(Skin.String(setsfanart),extra)">$INFO[ListItem.Path]extrafanart/</value>
<value condition="Container.Content(addons) + String.Contains(Skin.String(programsfanart),fanart)">$INFO[ListItem.Art(fanart)]</value>
<value condition="Container.Content(addons) + String.Contains(Skin.String(programsfanart),fallback)">$INFO[Skin.String(CustomFallbackProgramsBG)]</value>
<value condition="Container.Content(addons) + String.Contains(Skin.String(programsfanart),curtains)">special://skin/backgrounds/extras/curtains.jpg</value>
<!-- MULTI MOD -->
<value>$INFO[ListItem.Art(fanart)]</value>
<!-- MULTI MOD -->
</variable>
MyVideoNav.xml
Code:
<control type="fadelabel" id="4420">
<top>-1000</top>
<width>2560</width>
<height>0</height>
<scrollspeed>20</scrollspeed>
<scrollout>false</scrollout>
<font>Font-LineLabel</font>
<textcolor>white</textcolor>
<randomize>true</randomize>
<pauseatend>5000</pauseatend>
<resetonlabelchange>true</resetonlabelchange>
<label>$INFO[ListItem.Art(fanart)]</label>
<label>$INFO[ListItem.Art(fanart1)]</label>
<label>$INFO[ListItem.Art(fanart2)]</label>
<label>$INFO[ListItem.Art(fanart3)]</label>
<label>$INFO[ListItem.Art(fanart4)]</label>
<label>$INFO[ListItem.Art(fanart5)]</label>
<label>$INFO[ListItem.Art(fanart6)]</label>
<label>$INFO[ListItem.Art(fanart7)]</label>
<label>$INFO[ListItem.Art(fanart8)]</label>
<label>$INFO[ListItem.Art(fanart9)]</label>
<label>$INFO[ListItem.Art(fanart10)]</label>
<label>$INFO[ListItem.Art(fanart11)]</label>
<label>$INFO[ListItem.Art(fanart12)]</label>
<label>$INFO[ListItem.Art(fanart13)]</label>
<label>$INFO[ListItem.Art(fanart14)]</label>
<label>$INFO[ListItem.Art(fanart15)]</label>
<label>$INFO[ListItem.Art(fanart16)]</label>
<label>$INFO[ListItem.Art(fanart17)]</label>
<label>$INFO[ListItem.Art(fanart18)]</label>
<label>$INFO[ListItem.Art(fanart19)]</label>
<label>$INFO[ListItem.Art(fanart20)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart1)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart2)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart3)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart4)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart5)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart6)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart7)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart8)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart9)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart10)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart11)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart12)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart13)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart14)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart15)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart16)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart17)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart18)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart19)]</label>
<label>$INFO[ListItem.Art(tvshow.fanart20)]</label>
</control>
_________
EDIT:
At present, however, there is the problem that sometimes when switching back to Standard Fanart, sometimes it does not even show and everything stays black. I have not yet figured out when it happens. It does not even come back when I reloaded the skin via keymap. Restarting kodi is the only option.
In addition, the very first passages dedicated to DialogVideoInfo.xml have to be adapted to the fanart.
Offtopic: Have you ever noticed that in DialogVideoInfo, when ExtraFanart is enabled, it just blends over the default fanart?
Offtopic:
Code:
<!-- Extra Fanart Seasons -->
<control type="multiimage" id="5021">
<include>InvisibleButton</include>
<imagepath background="true">$INFO[ListItem.Path,,extrafanart/]</imagepath>
<visible>Container.Content(seasons) + String.Contains(skin.string(seasonsfanart),extra)</visible>
</control>
There is no DialogVideoInfo view on Season Level