(2018-01-27, 20:18)Fenderman Wrote: .....
I made a mod of DialogVideoInfo.xml by myself today and it is finally working after a few hours .
Now my only problem is, that any update will overwrite it again...
Apologies for the mega post ahead.
You can minimise your copy+paste work though.
In Kodi, add-ons are updated by deleting the relevant add-on folder first. Followed by extracting the zip file with the updated add-on.
You could keep a copy of the file(s) modified by you in a separate folder outside the Grid add-on folder. Disable "Auto-update" for the Grid skin. When there's an update available for it, you'll see a circle arrow icon next to the add-on name. After the manual update, you can copy+paste back your mods from the files in the separate folder.
Better still, you could define your mods as xml includes in a Includes_User.xml file
outside the Grid add-on (or Kodi) folder. For each include definition in that file, define the line to include it with as a comment with it (Usage).
And then (after every manual Grid skin update) copy Includes_User.xml into the skin.grid/xml folder (overwriting the empty one from the Grid skin add-on). And then use the include-tag to include your mods at the right spot in the new Grid skin file(s). So each time you copy one file, and then copy+paste single line include tags.
IMO, it's better/easier to copy+paste single include lines. It becomes less of a burden.
If the xml include-tag allowed specifying a path outside the xml folder, you could have saved yourself copying of the Includes_User.xml file.
Example of Includes_User.xml with just 3 include definitions :
To use an include, copy+paste from the comment lines that start with "Usage".
xml:
<?xml version="1.0" encoding="UTF-8"?>
<includes>
<include name="movieinformation_TrailerButton">
<!-- Usage : <include condition="Skin.HasSetting(context.trailer) + !String.IsEmpty(ListItem.Trailer)" file="Includes_User.xml">movieinformation_TrailerButton</include> -->
<control type="button" id="999">
<width min="256">auto</width>
<font>Black-20</font>
<align>center</align>
<label>$LOCALIZE[20410]</label>
<visible>String.IsEqual(ListItem.DBTYPE,movie) + Skin.HasSetting(context.trailer) + !String.IsEmpty(ListItem.Trailer) + ![String.StartsWith(Container.FolderPath,plugin://) + String.Contains(Container.FolderPath,trailer)]</visible>
<texturenofocus/>
<onclick condition="String.StartsWith(ListItem.Trailer,plugin://plugin.video)">RunPlugin($INFO[ListItem.Trailer]&windowedtrailer=1)</onclick>
<onclick>ActivateWindow(1196)</onclick> <!-- Only when using custom_1196-Trailer.xml -->
</control>
</include>
<include name="osd_MiniPlayControls">
<!-- Usage : <include condition="Skin.HasSetting(context.trailer) + !String.IsEmpty(ListItem.Trailer)" file="Includes_User.xml">osd_MiniPlayControls</include> -->
<control type="group">
<width>540</width>
<height>630</height>
<include>fadeinout</include>
<control type="image">
<width>540</width>
<height>90</height>
<texture colordiffuse="ff000000">colorize/100.png</texture>
<aspectratio>stretch</aspectratio>
</control>
<control type="grouplist" id="700">
<itemgap>0</itemgap>
<onleft>700</onleft>
<onright>700</onright>
<orientation>horizontal</orientation>
<!--previous-->
<control type="button" id="703">
<label></label>
<include>osd_PlayerButton</include>
<onclick>PlayerControl(Previous)</onclick>
</control>
<!--rewind-->
<control type="button" id="704">
<label></label>
<include>osd_PlayerButton</include>
<onclick>PlayerControl(Rewind)</onclick>
<enable>Player.SeekEnabled</enable>
</control>
<!--pause-->
<control type="togglebutton" id="705">
<label></label>
<altlabel></altlabel>
<usealttexture>Player.Paused | Player.Forwarding | Player.Rewinding</usealttexture>
<include>osd_PlayerButton</include>
<onclick>PlayerControl(Play)</onclick>
</control>
<!--stop-->
<control type="button" id="706">
<label></label>
<include>osd_PlayerButton</include>
<onclick>PlayerControl(Stop)</onclick>
</control>
<!--forward-->
<control type="button" id="707">
<label></label>
<include>osd_PlayerButton</include>
<onclick>PlayerControl(Forward)</onclick>
<enable>Player.SeekEnabled</enable>
</control>
<!--next-->
<control type="button" id="708">
<label></label>
<include>osd_PlayerButton</include>
<onclick>PlayerControl(Next)</onclick>
</control>
</control>
</control>
</include>
<include name="movieinformation_TrailerModal">
<!-- Usage : <include condition="Skin.HasSetting(context.trailer) + !String.IsEmpty(ListItem.Trailer)" file="Includes_User.xml">movieinformation_TrailerModal</include> -->
<control type="group" id="505">
<top>108</top>
<left>540</left>
<width>1380</width>
<height>810</height>
<visible>
Skin.HasSetting(context.trailer) + !String.IsEmpty(ListItem.Trailer) + Player.HasVideo + !Window.IsVisible(1102) + !Window.IsActive(screensaver) + !Window.IsVisible(home) + !Window.IsVisible(visualisation)
</visible>
<!-- Trailer modal background/placeholder -->
<!-- <control type="image" id="507"> --> <!-- ID was only given for the HasFocus test in the button control. -->
<control type="image">
<aspectratio>stretch</aspectratio>
<width>1380</width>
<height>810</height>
<texture colordiffuse="ff000000">colorize/white.png</texture>
<visible>Player.HasVideo</visible>
</control>
<!-- Trailer modal -->
<control type="videowindow" id="506">
<centertop>405</centertop>
<aspectratio>scale</aspectratio>
<width>1380</width>
<height>776</height>
<visible>Player.HasVideo</visible>
</control>
</control>
<!-- Focus control. -->
<control type="grouplist" id="5200">
<left>0</left>
<top>811</top>
<width>1380</width>
<height>90</height>
<itemgap>0</itemgap>
<orientation>horizontal</orientation>
<align>center</align>
<!-- Hidden and focused button to take over input from DialogVideoInfo.xml -->
<control type="button" id="998">
<width min="256">auto</width>
<font>Black-20</font>
<align>center</align>
<label>Hidden and Focused</label>
<!-- <visible allowhiddenfocus="true">false</visible> -->
<!-- TESTING : Check if this button is focused : -->
<visible allowhiddenfocus="true">Control.HasFocus(998)</visible>
<!-- TESTING : <visible allowhiddenfocus="true">!Control.HasFocus(998)</visible> -->
<!-- TESTING : <visible allowhiddenfocus="true">Control.HasFocus(505) | Control.HasFocus(506) | Control.HasFocus(5200) | Control.HasFocus(507)</visible> -->
<texturenofocus/>
</control>
</control>
</include>
</includes>