(2017-04-09, 20:45)Guilouz Wrote: (2017-04-09, 19:20)BobCratchett Wrote: (2017-04-05, 21:35)Guilouz Wrote: Hi all, I have an issue with my Skin.
Explanations : I set 2 widgets for my movies section and 1 widget for my TV Shows section :
After Skin Shortcuts saving settings, I go on on home screen, on my Movies section I have my two widgets, nor problem :
I'm scrolling to TV Shows, I have my widgets, no problem :
But when I go back to Movies, I have lost my secondary widget :
Why ? Any idea ?
I use this code to define widgets :
(2017-04-08, 13:15)Guilouz Wrote: Hi,
This is full debug log :
https://paste.ubuntu.com/24339966/
Full script-skinshortcuts.xml :
https://pastebin.com/Epfh72Z8
Full Home.xml :
https://pastebin.com/GH66rVj2
Thanks for providing some more information
I've reviewed the log but as it doesn't have Skin Shortcuts logging enabled, it doesn't tell me much - the general description you provide suggests, though, that it's both saving the menu items and building the menu correctly.
I've had a look at the script-skinshortcuts.xml and the Home.xml. I'm struggling to see how you define the second widget and which property(s) you're using to decide when to display the second one. If you can highlight that code for me I'll look into it further, but that would be my first guess as to the issue - your visibility condition for the second widget (or potentially the animation) is incorrect.
Yes nor problem with creating or building menu, but this issue is only when I use 'Personal widget' (user can define his widgets), it's ok with my preconfigured widgets.
I use grouplist to show widgets, this is code from Home.xml to show 'Personal widget' :
Code:
<control type="group" id="22000">
<animation effect="slide" end="502,0" time="200" tween="quadratic" easing="out" condition="[Control.HasFocus(9000) | ControlGroup(700).HasFocus] + Skin.HasSetting(HideMainMenuWithWidgets)">Conditional</animation>
<visible>String.IsEqual(Container(9000).ListItem.Property(widget),PersonalWidget)</visible>
<animation effect="fade" end="100" time="200" condition="Skin.HasSetting(no_slide_animations)">Visible</animation>
<animation type="Conditional" condition="String.IsEqual(Container(9000).ListItem.Property(widget),PersonalWidget) + !Skin.HasSetting(no_slide_animations)">
<effect type="fade" start="0" end="100" time="300" tween="sine" delay="300" easing="out" />
<effect type="slide" start="320" end="0" time="400" delay="300" tween="cubic" easing="out" />
</animation>
<animation effect="slide" end="0,35" time="0" condition="!String.IsEmpty(Container(9000).ListItem.Property(HideSubMenu))">Conditional</animation>
<control type="grouplist" id="22001">
<include>WidgetGroupListCommon</include>
<pagecontrol>22010</pagecontrol>
<include content="WidgetListCategoriesBig">
<param name="widget_header" value="$LOCALIZE[31148]"/>
<param name="list_id" value="22900"/>
<param name="visible" value="!Skin.HasSetting(UseSmallerCategories) + String.IsEmpty(Container(9000).ListItem.Property(HideSubMenu))" />
</include>
<include content="WidgetListCategoriesSmall">
<param name="widget_header" value="$LOCALIZE[31148]"/>
<param name="list_id" value="229001"/>
<param name="visible" value="Skin.HasSetting(UseSmallerCategories) + String.IsEmpty(Container(9000).ListItem.Property(HideSubMenu))" />
</include>
<include content="WidgetListPoster">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal1)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal1)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal1)]"/>
<param name="list_id" value="22100"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle1),Posters) | String.IsEmpty(Container(9000).ListItem.Property(WidgetStyle1))"/>
</include>
<include content="WidgetNextAiringEpisodes">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal1)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal1)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal1)]"/>
<param name="list_id" value="221001"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle1),Thumbs) + Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetNextAiringEpisodesBanner">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal1)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal1)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal1)]"/>
<param name="list_id" value="2210011"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle1),Thumbs) + !Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetListSquare">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal1)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal1)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal1)]"/>
<param name="list_id" value="221002"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle1),Squares)"/>
</include>
<include content="WidgetListPoster">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal2)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal2)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal2)]"/>
<param name="list_id" value="22200"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle2),Posters) | String.IsEmpty(Container(9000).ListItem.Property(WidgetStyle2))"/>
</include>
<include content="WidgetNextAiringEpisodes">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal2)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal2)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal2)]"/>
<param name="list_id" value="222001"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle2),Thumbs) + Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetNextAiringEpisodesBanner">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal2)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal2)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal2)]"/>
<param name="list_id" value="2220011"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle2),Thumbs) + !Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetListSquare">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal2)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal2)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal2)]"/>
<param name="list_id" value="222002"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle2),Squares)"/>
</include>
<include content="WidgetListPoster">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal3)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal3)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal3)]"/>
<param name="list_id" value="22300"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle3),Posters) | String.IsEmpty(Container(9000).ListItem.Property(WidgetStyle3))"/>
</include>
<include content="WidgetNextAiringEpisodes">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal3)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal3)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal3)]"/>
<param name="list_id" value="223001"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle3),Thumbs) + Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetNextAiringEpisodesBanner">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal3)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal3)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal3)]"/>
<param name="list_id" value="2230011"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle3),Thumbs) + !Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetListSquare">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal3)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal3)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal3)]"/>
<param name="list_id" value="223002"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle3),Squares)"/>
</include>
<include content="WidgetListPoster">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal4)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal4)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal4)]"/>
<param name="list_id" value="22400"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle4),Posters) | String.IsEmpty(Container(9000).ListItem.Property(WidgetStyle4))"/>
</include>
<include content="WidgetNextAiringEpisodes">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal4)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal4)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal4)]"/>
<param name="list_id" value="224001"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle4),Thumbs) + Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetNextAiringEpisodesBanner">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal4)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal4)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal4)]"/>
<param name="list_id" value="2240011"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle4),Thumbs) + !Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetListSquare">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal4)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal4)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal4)]"/>
<param name="list_id" value="224002"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle4),Squares)"/>
</include>
<include content="WidgetListPoster">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal5)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal5)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal5)]"/>
<param name="list_id" value="22500"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle5),Posters) | String.IsEmpty(Container(9000).ListItem.Property(WidgetStyle5))"/>
</include>
<include content="WidgetNextAiringEpisodes">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal5)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal5)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal5)]"/>
<param name="list_id" value="225001"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle5),Thumbs) + Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetNextAiringEpisodesBanner">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal5)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal5)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal5)]"/>
<param name="list_id" value="2250011"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle5),Thumbs) + !Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetListSquare">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal5)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal5)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal5)]"/>
<param name="list_id" value="225002"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle5),Squares)"/>
</include>
<include content="WidgetListPoster">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal6)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal6)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal6)]"/>
<param name="list_id" value="22600"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle6),Posters) | String.IsEmpty(Container(9000).ListItem.Property(WidgetStyle6))"/>
</include>
<include content="WidgetNextAiringEpisodes">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal6)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal6)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal6)]"/>
<param name="list_id" value="226001"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle6),Thumbs) + Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetNextAiringEpisodesBanner">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal6)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal6)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal6)]"/>
<param name="list_id" value="2260011"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle6),Thumbs) + !Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetListSquare">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal6)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal6)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal6)]"/>
<param name="list_id" value="226002"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle6),Squares)"/>
</include>
<include content="WidgetListPoster">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal7)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal7)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal7)]"/>
<param name="list_id" value="22700"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle7),Posters) | String.IsEmpty(Container(9000).ListItem.Property(WidgetStyle7))"/>
</include>
<include content="WidgetNextAiringEpisodes">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal7)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal7)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal7)]"/>
<param name="list_id" value="227001"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle7),Thumbs) + Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetNextAiringEpisodesBanner">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal7)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal7)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal7)]"/>
<param name="list_id" value="2270011"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle7),Thumbs) + !Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetListSquare">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal7)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal7)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal7)]"/>
<param name="list_id" value="227002"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle7),Squares)"/>
</include>
<include content="WidgetListPoster">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal8)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal8)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal8)]"/>
<param name="list_id" value="22800"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle8),Posters) | String.IsEmpty(Container(9000).ListItem.Property(WidgetStyle8))"/>
</include>
<include content="WidgetNextAiringEpisodes">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal8)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal8)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal8)]"/>
<param name="list_id" value="228001"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle8),Thumbs) + Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetNextAiringEpisodesBanner">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal8)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal8)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal8)]"/>
<param name="list_id" value="2280011"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle8),Thumbs) + !Skin.HasSetting(HomeBanner)"/>
</include>
<include content="WidgetListSquare">
<param name="content_path" value="$INFO[Container(9000).ListItem.Property(widgetPath.personal8)]"/>
<param name="widget_header" value="$INFO[Container(9000).ListItem.Property(widgetName.personal8)]"/>
<param name="widget_target" value="$INFO[Container(9000).ListItem.Property(widgetTarget.personal8)]"/>
<param name="list_id" value="228002"/>
<param name="visible" value="String.Contains(Container(9000).ListItem.Property(WidgetStyle8),Squares)"/>
</include>
</control>
<include content="WidgetScrollbar" condition="Skin.HasSetting(touchmode)">
<param name="scrollbar_id" value="22010"/>
</include>
</control>
I've looked and looked but can't see anything wrong, so it's one of those issues that just needs the time put into it to diagnose it properly.
The first thing I would suggest is to make sure it isn't any problem with this script - in this case it's making sure that the relevant property is set correctly to 'PersonalWidget' when you expect it to be. You can check script-skinshortcuts-includes.xml, or you could add a label showing the value onscreen.
To be perfectly honest, once thats confirmed then its really outside the scope of this thread as the script is doing its job correctly by setting the value so you may well get better assistance in a dedicated thread, as it becomes a more general skin issue, however...
Personally, I'd then be wanting to confirm the visibility and animations are correct. Start with a known-good visibility state (as you have multiple different vis conditions for different user configurations), and comment-out the conditional visibility conditions (so that your controls are always shown.) If it shows correctly then, you know that one or more of your visibility conditions are wrong, and you can work on eliminating each one-by-one.
And then I'd do the same with the animations.
(2017-04-12, 23:16)tomer953 Wrote: (2017-04-12, 04:11)mikeSiLVO Wrote: (2017-04-10, 22:37)tomer953 Wrote: Hey Bob,
since marcel is away for couple of days, i'm wondering maybe you know the answer...
I've been away for a long period of time, and you guys changed the scripts, so now adding shortcuts with my skin isnt working...
http://forum.kodi.tv/showthread.php?tid=...pid2550911
Thank you very much my friend :]
Apologies if I am misunderstanding but why not use the default add shortcut button id="301"?
You already have it hidden in the skin.
Actually? I don't know.
Ive build this dialog long time ago, and can't remember why I used Marcel helper instead of the default.
But im pretty sure that Marcel will know the answer,
So ill try the default botton, but maybe I had a point with the helper implemented.
Thanks
Honestly I'm not that familiar with the Skin Helper Service so, if you don't know what the function did, I'm unlikely to be able to help. Just as a general point, though, Marcelveldt did add a new control recently - 3010 if memory serves but I may well be wrong - which adds a new shortcut and triggers the 'Choose shortcut' dialog. Possibly related?