Kodi Community Forum
Release script.skinshortcuts - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Skinning (https://forum.kodi.tv/forumdisplay.php?fid=12)
+---- Forum: Skin helper addons (https://forum.kodi.tv/forumdisplay.php?fid=300)
+---- Thread: Release script.skinshortcuts (/showthread.php?tid=178294)



RE: script.skinshortcuts - tom.as - 2015-01-19

Ok solved. I updated OpenElec and it works. Thanks


RE: script.skinshortcuts - User 224999 - 2015-01-21

(2015-01-19, 15:50)tom.as Wrote: Ok solved. I updated OpenElec and it works. Thanks
OK, great!


RE: script.skinshortcuts - Jeroen - 2015-01-29

*bump*

"customvideonode" isn't working anymore either.

see section 5


(2015-01-14, 12:43)Jeroen Wrote: I use custom groupings in my overrides.xml and following up on a bug report in my skin thread I noticed that

PHP Code:
<content>movie</content>
<
content>tvshow</content>
<
content>musicvideo</content

are no longer working?

<content>movies</content> should contain items like genres, actors, etc.

These are available under

PHP Code:
<content>video</content

but I preferred to split movies and tvshows and that was definitely working before.

(2014-12-20, 11:33)Martijn Wrote: The addon is in repo and it will stay in repo. Needed fixes will done by various people if needed

Can / should this thread be used for bug reports? Or do you advice a different route?



RE: script.skinshortcuts - BigNoid - 2015-01-29

@all: translations, pr's and issues. Please use github repo from either me or phil65 for that.

https://github.com/BigNoid/script.skinshortcuts

https://github.com/phil65/script.skinshortcuts


Thx


RE: script.skinshortcuts - Jeroen - 2015-01-30

(2015-01-29, 18:28)BigNoid Wrote: @all: translations, pr's and issues. Please use github repo from either me or phil65 for that.

https://github.com/BigNoid/script.skinshortcuts

https://github.com/phil65/script.skinshortcuts


Thx

The issues tab is disabled on your and phil's skin shortcuts repo.


RE: script.skinshortcuts - BigNoid - 2015-01-30

Its open now on my repo, thx.


RE: script.skinshortcuts - jurialmunkey - 2015-02-09

I'm having a problem with shared menus (mainmenu group) coming across into my new Arctic skin. It seems that the Titan skin sets a variable for many of the actions - so, of course, when the menu is shared these VARs no longer exist in Arctic and cause the menu items to not work. e.g. for movies Titan sets <onclick>$VAR[MoviesButtonOnClick]</onclick>

Am I correct in assuming that Titan is using the shared menu incorrectly? Or is there something I'm not doing that I should be? What exactly can I do about this? I'm assuming Titan's author needs to be contacted to change the group name being used in Titan to a skin specific one.


RE: script.skinshortcuts - User 224999 - 2015-02-10

(2015-02-09, 04:19)jurialmunkey Wrote: I'm having a problem with shared menus (mainmenu group) coming across into my new Arctic skin. It seems that the Titan skin sets a variable for many of the actions - so, of course, when the menu is shared these VARs no longer exist in Arctic and cause the menu items to not work. e.g. for movies Titan sets <onclick>$VAR[MoviesButtonOnClick]</onclick>

Am I correct in assuming that Titan is using the shared menu incorrectly? Or is there something I'm not doing that I should be? What exactly can I do about this? I'm assuming Titan's author needs to be contacted to change the group name being used in Titan to a skin specific one.

Hmmm, I think this is something I haven't thought about when using skinshortcuts.
You're right I'm using variables for most of the actions because of the whole plex/mediabrowser integrations.

Is there a way to disable the sharing function of skinshortcuts so the menuitems won't get passed to another skin ?

Only changing the groupname won't be enough I'm afraid as the whole mainmenu will be shared across the skins.


RE: script.skinshortcuts - jurialmunkey - 2015-02-10

(2015-02-10, 01:12)marcelveldt Wrote: You're right I'm using variables for most of the actions because of the whole plex/mediabrowser integrations.
Is there a way to disable the sharing function of skinshortcuts so the menuitems won't get passed to another skin ?
Only changing the groupname won't be enough I'm afraid as the whole mainmenu will be shared across the skins.

Yeah, now that I look at it again its not possible to really change the groupname of the mainmenu.
However, couldn't you use overrides? From AdvancedUsage.txt:
Quote:1. Overriding an action

You may wish to override an action in order to provide additional functionality. For example, you could override the default action for Movies (to go to the Movie Title view) to run Cinema Experience instead.

Note, any override will replace the original menu item with one which is only visible when any conditions are met. This means you will also need an override for when the conditions are not met.

<override action="[command]" group="[GroupName]" version="[XBMC Major Version]">
<condition>[Boolean condition]</condition>
<action>[XBMC function]</action>
<override>

[command] - Replace with the action you are overriding
[GroupName] - [Optional] The group that the override applies to, for example "movies". If omitted, the property will be apply to all items which match the action.
[XBMC Major Version] - [Optional] The major XBMC version on which this override will occur, for example "13" for XBMC Gotham
[Boolean condition] - [Optional] Replace with a string that must evaluate to True for the custom action to be run
[XBMC function] - Replace with the action that should be run instead. You may include multiple <action> tags. Omit to run the original command.

<?xml version="1.0" encoding="UTF-8"?>
<overrides>
<override action="ActivateWindow(Videos,MovieTitles,return)">
<condition>!Skin.HasSetting(CinemaExperience) | !System.HasAddon(script.cinema.experience)</condition>
</override>
<override action="ActivateWindow(Videos,MovieTitles,return)">
<condition>Skin.HasSetting(CinemaExperience) + System.HasAddon(script.cinema.experience)</condition>
<action>RunScript(script.cinema.experience,movietitles)</action>
</override>
</overrides>

Please be aware that in the latest revisions of the script, library links - ActivateWindow(Videos,MovieTitles) - have been replaced by video nodes - ActivateWindow(Videos,videodb://movies/titles/). You should ensure any overrides work with both types of link.

IMPORTANT: User choice MUST be respected when overriding actions. That is to say, unless the user specifically gives permission for a shortcut they have chosen to do something else, it should be left alone. If you are overriding the action, it is expected that in most cases you will use a visibility condition - possibly linked to a skin settings - to ensure the user has consented.

Users can also provide an overrides.xml file to override actions in special://profile/



RE: script.skinshortcuts - User 224999 - 2015-02-10

(2015-02-10, 07:29)jurialmunkey Wrote: Yeah, now that I look at it again its not possible to really change the groupname of the mainmenu.
However, couldn't you use overrides? From AdvancedUsage.txt:

That would result in the exact same thing, those overrides will be added to the shortcuts xml code.
It isn't specific per skin. But at least some default items like movies etc. will keep working when switching between skins so I could give it a try.

Isn't there a way to NOT use the sharing function of skinshortcuts ?
I've read the documentation many times and even digged through the code and never figured out how to do that.

The sharing of menus seems fine in the beginning but many skins add their own logic to complete the user experience and that's where the fun starts ;-)

OR: we can agree on some standards to use between the skin that utilize skinshortcuts and make the sharing of menu's actually work.
Maybe create some kind of dictionary to include which all skins can benefit from ?


RE: script.skinshortcuts - Jeroen - 2015-02-10

Using overrides is the proper way to handle this. No they are not skin specific but they at least don't alter the default universal functions. And you can use skin specific shortcuts (advancedusage. text, section 6)

Another option here is to make a node specific to your skin in the management dialog and put all the skin specific things in there.

Being able to share the menus, which does work, is kind of one of the points of the add-on. Trying to make up standards for this isn't the way to go imo.


RE: script.skinshortcuts - User 224999 - 2015-02-10

OK, but as I recall there was a problem with using the overrides for actions, icons and background:
It will be REALLY slow then.

When not using the overrides the script takes 1 or 2 seconds to build the menu, when using one or more overrides for actions or icons it will take several seconds untill minutes on a slow system.

I will do some testing if I can figure out what's causing this.

Would it be a problem if I leave the icon (thumb) still set at a variable ?
I don't know if the other skins use the icon property for the home items ?
I use it for the tiles in Titan skin to show an image.


RE: script.skinshortcuts - jurialmunkey - 2015-02-10

(2015-02-10, 11:32)marcelveldt Wrote:
(2015-02-10, 07:29)jurialmunkey Wrote: Yeah, now that I look at it again its not possible to really change the groupname of the mainmenu.
However, couldn't you use overrides? From AdvancedUsage.txt:

That would result in the exact same thing, those overrides will be added to the shortcuts xml code.
It isn't specific per skin. But at least some default items like movies etc. will keep working when switching between skins so I could give it a try.

Isn't there a way to NOT use the sharing function of skinshortcuts ?
I've read the documentation many times and even digged through the code and never figured out how to do that.

The sharing of menus seems fine in the beginning but many skins add their own logic to complete the user experience and that's where the fun starts ;-)

OR: we can agree on some standards to use between the skin that utilize skinshortcuts and make the sharing of menu's actually work.
Maybe create some kind of dictionary to include which all skins can benefit from ?

It was my understanding that the overrides.xml file was *not* shared (edit, guess I was wrong there). Either way, the overrides will solve a big part of the issue - my problem was that users had menu items that pointed to variables that only existed in Titan. If the overrides are shared then it doesn't matter because at least they point to something so that they work when clicked on from another skin. I can see what you are saying though - for instance, what If I want to use a custom window for something (e.g. hubs in Eminence use custom windows) - or what if I use a background only included in my skin.

I had assumed there was a way to *not* share the menus, but like you, after digging through the documentation I really can't see any possible way. It seems a little irrelevant to be able to set defaults on a per skin basis if we decide on a set of standards - it would be basically the same thing as simply forcing a standard default menu on all skins and we start losing that individual flavour. It would be best if we could just set a flag that indicates whether the menu is to be shared or is skin specific.

EDIT: I see Jeroen has beat me to the punch


RE: script.skinshortcuts - User 224999 - 2015-02-10

(2015-02-10, 11:58)jurialmunkey Wrote: It was my understanding that the overrides.xml file was *not* shared - that only menu groups were. I thought that was the point of the overrides file - to provide skin specific functions like widgets and background etc. Either way, the overrides will solve a big part of the issue - my problem was that users had menu items that pointed to variables that only existed in Titan. If the overrides are shared then it doesn't matter because at least they point to something so that they work when clicked on from another skin. I can see what you are saying though - for instance, what If I want to use a custom window for something (e.g. hubs in Eminence use custom windows).

I had assumed there was a way to *not* share the menus, but like you, after digging through the documentation I really can't see any possible way. It seems a little irrelevant to be able to set defaults on a per skin basis if we decide on a set of standards - it would be basically the same thing as simply forcing a standard default menu on all skins and we start losing that individual flavour. It would be best if we could just set a flag that indicates whether the menu is to be shared or is skin specific.

No, the overrides get written to the xml of the shortcuts so will also be shared across skins.

If anyone knows about a way to NOT share the menus I can consider to use that with Titan.
In the meanwhile I'll start digging around with the overrides for actions and see if that's not going to hit too hard on performance


RE: script.skinshortcuts - jurialmunkey - 2015-02-10

(2015-02-10, 12:01)marcelveldt Wrote: If anyone knows about a way to NOT share the menus I can consider to use that with Titan.
In the meanwhile I'll start digging around with the overrides for actions and see if that's not going to hit too hard on performance

Maybe you could set a skin setting during Startup.xml and then use that as the visibility condition for the Titan specific functions

e.g. in StartUp.xml
Code:
<onunload>Skin.SetBool(TitanShortcuts)</onunload>

overrides example:
Code:
<override action="ActivateWindow(Videos,MovieTitles,return)">
    <condition>!Skin.HasSetting(TitanShortcuts)</condition>
</override>
<override action="ActivateWindow(Videos,MovieTitles,return)">
    <condition>Skin.HasSetting(TitanShortcuts)</condition>
    <action>$VAR[MoviesButtonOnClick]</action>
</override>