2017-04-13, 14:26
(2017-04-13, 00:23)BobCratchett Wrote:(2017-04-09, 20:45)Guilouz Wrote:(2017-04-09, 19:20)BobCratchett Wrote: 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.
I forgot to mention that this only happens when I put a different number of widgets for each menu item.
OK :
Movies -> Personal Widgets -> 2 widgets
TV Show -> Personal Widgets -> 2 widgets
Problem :
Movies -> Personal Widgets -> 2 widgets
TV Show -> Personal Widgets -> 1 widget
So, I think my animations and visibility are good (it's the same for preconfigured widgets and they working). It's only happens with widgets powered by Skin Shortcuts (Personal Widget).
Try without animations and it's the same.