Two FixedList/Panel Controls
#1
Hi all

It's been awhile since I've done skinning and it has changed a lot. I'm trying to edit a view in an existing skin to allow for a fixedlist and a panel control to show simultaneously.

The view I like is a fanart banner view which works from a fixedlist. As I still use the parent folder icon I want to display a second "dummy" panel control to show all of the logos of current tv shows. As soon as the fixedlist focusitem moves away from the parent folder icon this panel control is no longer visible.

Effectively this panel control would never get the focus and so really only requires itemlayout.

Is this possible? Or is there a way to display the lists of tv logos without using a list type control?

Cheers,
Enzpol
Reply
#2
You can't have two containers working simultaneously. You need to show the logos with Container(id).ListItemNoWrap(0), Container(id).ListItemNoWrap(1) etc. and animate the list movement with Container(id).OnNext and Container(id).OnPrevious. Look e.g. here how it needs to be done.
Image
Reply
#3
Thanks Black,

That worked 100% Took a bit more coding than I was anticipating but was simple enough by copying groups to the next posy.

I'd love now to randomize the order of the logos. I would believe that would then be a hack of the randomitems script unless you have any other quick ideas.

Again thanks though for the help.
Reply
#4
Do you want to show them on the home screen? That's whats the randomitems script is for... if you want a randomized list in the library, you have to make a smart playlist and set sort by to random.
Image
Reply
#5
I realise I'm resurrecting my old thread, but am looking to upgrade Kodi from Helix to Krypton. This means my edited Ace skin will not work, so back to editing another skin to allow my small preferences.

Obviously 4 years on and many changes, so wondering if two containers will work in library mode now (one is purely a display container)

The modification I have is in the TV menu, I have a panel of 20 logos showing when "Empty" (IsParentFolder) is selected.
I have it currently working in Transparency - Fanart view with the code in pastebin below.
All of the logos are hard coded, but I'm sure there should be an easier way with a panel and/or $PARAM, but would appreciate a heads up on where to look.
This is my current code:
https://pastebin.com/dF3r4LD0

I had tried this, but it doesn't appear to pass the logos as I thought it might:
https://pastebin.com/bA3ThW5D

Any advice, direction would be great.
Reply
#6
If I understand what you want to do correctly, then you could use dynamic content for your clearlogo list by using this as the content tag:
Code:
<content>$INFO[Container.FolderPath]</content>


I just tried this and it seemed to work as far as I understand what you are doing:
Code:
<control type="panel">
    <itemlayout height="100" width="100">
        <control type="image">
            <texture>$INFO[ListItem.Art(clearlogo)]</texture>
        </control>
    </itemlayout>
    <focusedlayout height="100" width="100">
        <control type="image">
            <texture>$INFO[ListItem.Art(clearlogo)]</texture>
        </control>
    </focusedlayout>
    <content>$INFO[Container.FolderPath]</content>
</control>

Obviously you would want to tweak it a lot, but it seems to do what you are trying to do I think
Arctic Fuse - Alpha now available. Support me on Ko-fi.
Reply
#7
Thanks jurialmunkey

Unfortunately, not quite what I was after.

Essentially I'm trying to achieve a 'non-functioning widget' within the TV library screen.
There is still the list control for banners, but when the list control has the "back to parent folder" selected the 'widget' displays all of the logos.
This 'widget' would only display and focused layout and item layout would be the same as a logo wouldn't do anything when clicked.

I have coded it but each logo is statically placed, which means massive recoding if I want to implement this in a different skin - hence trying with a panel container.

This is a screenshot of this display (the banner list is the functional list, with the logos only displayed onparentfolder:
Image

Black advised this wasn't possible back in 2013 which is still possibly the case within the TV library but had hoped it might be possible now.
Reply
#8
That's exactly what the code I posted does. You just need to add a condition to only show the panel control when the parent folder icon is focused

The code I posted is for the additional panel filled with logos. It works exactly like the screenshot you posted. I don't see how it's not what you want...
Arctic Fuse - Alpha now available. Support me on Ko-fi.
Reply
#9
Also make sure you look at my post on a computer - the tapatalk app screws up the code boxes for some reason and you can't see the code properly
Arctic Fuse - Alpha now available. Support me on Ko-fi.
Reply
#10
My apologies jurialmunkey - It has worked!

Thanks for this.
Very simple and a LOT less code than my original.

I've got a feeling I'll be coming back and asking how to:
a. have these listing in alphabetic order
b. have them listing in a random order, and/or
c. have them listing in most recent order.

I assume that the key to this is simply the correct content from a relevant widget container.

But at this stage, it is a bit more research and experimenting.

Cheers.
Reply
#11
Code:
<content sortby="name" sortorder="ascending">$INFO[Container.FolderPath]</content>

Code:
<content sortby="random">$INFO[Container.FolderPath]</content>

Code:
<content sortby="dateadded" sortorder="descending">$INFO[Container.FolderPath]</content>

http://kodi.wiki/view/List_of_built-in_f...rt_methods

http://kodi.wiki/view/Dynamic_List_Content
Arctic Fuse - Alpha now available. Support me on Ko-fi.
Reply
#12
One final thing that I'm now struggling with is how to only display unwatched list items.

The following code isn't working as it displays the unwatched items despite the condition in layout (although the visible tag means the panel shows a gap for these items, unless in focus)

Code:
<itemlayout width="285" height="220" condition="Integer.IsEqual(ListItem.Playcount,0)">
    <control type="image">
       <texture>$INFO[ListItem.Art(clearlogo)]</texture>
       <visible>Integer.IsEqual(ListItem.Playcount,0)</visible> <!-- testing that boolean command is correct -->
    </control>
</itemlayout>
<focusedlayout width="285" height="220" condition="Integer.IsEqual(ListItem.Playcount,0)">
    <control type="image">
       <texture>$INFO[ListItem.Art(clearlogo)]</texture>
    </control>
</focusedlayout>
<content sortby="title" sortorder="ascending">$INFO[Container.FolderPath]</content>

Any help here would be cool.
Reply
#13
@Enzpol -- That won't work because outside of the itemlayout, the ListItem will always refer to the currently focused item in the list. So your condition for whether or not to show the itemlayout is actually checking against whether the focused item has been played, not the item in the itemlayout.

Afaik, what you want isn't possible. Maybe someone else knows a trick for this, but I haven't found one and I was specifically looking for a way to do this last week.

However, if you are happy with just showing the unwatched items first in the list, then you can use the following:
Code:
<content sortby="playcount" sortdirection="descending">$INFO[Container.FolderPath]</content>
Arctic Fuse - Alpha now available. Support me on Ko-fi.
Reply
#14
OK, so possibly back to my static solution - which works, but is a lot of coding for each of 20 icons - particularly if trying to put it into several different skins.

I tried two concurrent sortby, but obviously that doesn't work.
Code:
<content sortby="playcount" sortdirection="descending" sortby="title" sortdirection="ascending">$INFO[Container.FolderPath]</content>

Any reason why the following doesn't work - The way I understand it, it's the same principal as statically putting each content image in place, but places them into a panel.

This doesn't work:
Code:
<itemlayout width="285" height="220">
    <control type="image">
       <texture>$INFO[ListItem.Thumb]</texture>
    </control>
</itemlayout>
<focusedlayout width="285" height="220">
    <control type="image">
       <texture>$INFO[ListItem.Thumb]</texture>
    </control>
</focusedlayout>
<content>
    <item id="1">
         <thumb>$INFO[Container(50).ListItemNoWrap(1).Art(clearlogo)]</thumb>
    </item>
    <item id="2">
         <thumb>$INFO[Container(50).ListItemNoWrap(2).Art(clearlogo)]</thumb>
    </item>
</content>

But this works:
Code:
<control type="group">
        <control type="image">
                        <left>40</left>
                        <top>0</top>
                        <width>245</width>
                        <height>95</height>
                        <thumb>$INFO[Container(50).ListItemNoWrap(1).Art(clearlogo)]</thumb>
         </control>
        <control type="image">
                        <left>325</left>
                        <top>0</top>
                        <width>245</width>
                        <height>95</height>
                        <thumb>$INFO[Container(50).ListItemNoWrap(2).Art(clearlogo)]</thumb>
         </control>
</control>
Reply
#15
Yeah you can't double up sorting methods, but items with the same playcount should be sorted alphabetically by default anyway.

Are you using Leia or Krypton. If its krypton its probably because you don't have an onclick action for your items

i.e.

Code:
<content>
    <item id="1">
         <thumb>$INFO[Container(50).ListItemNoWrap(1).Art(clearlogo)]</thumb>
         <onclick>noop</onclick>
    </item>
</content>
Arctic Fuse - Alpha now available. Support me on Ko-fi.
Reply

Logout Mark Read Team Forum Stats Members Help
Two FixedList/Panel Controls0