Skin engine enhancements (themes, guide colors, skin functions, weather settings...) (1 Viewer)

ajp8164

Portal Pro
January 9, 2008
575
1,166
Atlanta, GA
Home Country
United States of America United States of America
Description of the change

  • Mantis 3779 - Parent for all mantis records listed here.
  • Mantis 3310 - Added new control GUIMenuButton. For an explanation see the Menubutton control.
  • Mantis 3309 - Added camera support to aid (primarily) with coverflow perspective. For an explanation see Camera Position.
  • Mantis 3311 - Added new weather settings window (uses GUIMenuButtons from 3310). See Weather Settings for more information.
  • Mantis 3316 - Re implement buttons in MP plugins to make use of the GUIMenuButton. As part of this change other language files need to be updated to match changes made in strings_en.xml.
    Skinners of others skins will be required to make changes to skins to be compatible with this implementation. Please refer to the Default skin for examples.
    The re-implemented buttons are as follows. The legacy/default behavior has been retained in the Default skins.
    • MyVideos - Layout, View
    • MyVideos Playlist - Layout
    • MyMusic - Layout, View
    • MyMusic Playlist - View
    • MyPictures - Layout, View
    • MyTv RecordedTv - Layout, View
    • MyRadio - Layout
    • MyRadio RecordedRadio - Layout, View
  • Mantis 3411 - Added new skin settings functions. For details please see Skin Expressions. All settings are saved to a new SkinSettings.xml file. Each skin may have it's own settings. The following functions are added.
    • Skin.ToggleSetting(setting) - Toggles the skin setting 'setting'. For use with conditional visibility tags containing Skin.HasSetting(setting).
    • Skin.String(string,value) - Returns the user-set skin string, set via the Skin.SetString(name). Allows skinners to have user-customizable labels. This is functionlly equivalent to string.equals() except that the setting name (parameter 'string') is saved to SkinSettings.xml. Only settings used in Skin.X functions are guaranteed to be saved to the xml file.
    • Skin.SetString(string[,value[,kb_prompt]]) - Pops up a keyboard dialog and allows the user to input a string which can be used in a label control elsewhere in the skin via the info tag Skin.String(string). If the value parameter is specified, then the keyboard dialog does not pop up, and the string is set directly. The settings are saved per-skin in SkinSettings.xml.
    • Skin.SetBool(setting) - Sets the skin setting 'setting' to true. For use with the conditional visibility tags containing Skin.HasSetting(setting). The settings are saved per-skin in SkinSettings.xml.
    • Skin.Reset(setting) - Resets the skin setting 'setting'. If 'setting' is a bool setting (ie set via SetBool or ToggleSetting) then the setting is reset to false. If 'setting' is a string (Set via SetString) then it is set to empty.
    • Skin.ResetSettings - Resets all the bool and string skin settings to their defaults; boolean all set to false, strings all set to empty.
  • Mantis 3427 - Add support for skin themes. See Skin Themes for details.
  • Mantis 3460 - Add support for TV Guide genre coloring. See TV Guide for details.
    Skinners of others skins will be required to make changes to skins to be compatible with this implementation.
  • Mantis 3465 - Enhance selected channel positioning logic in TV guide. When entering and exiting TV guide and when switching between channel groups the selected guide channel often gets reset to the top of the guide. When the TV guide has hundreds of channels it's annoying to the user to have to scroll back to the current channel section of the guide. These enhancements attempt to select the current channel when entering the TV guide for the first time or when changing channel groups. If the current channel cannot be selected then the channel at the top of the guide is selected. Also, when selecting a program to record (navigating to the program info window from the guide) returning to the guide resulted in positioning the selection only on the channel button. These enhancements refocus the program in the guide from where the user entered the program info window.
  • Mantis 3505 - Update Default and DefaultWide - Skins updated to work with GUIMenuButton as noted, be compatible with TV guide colorization feature (e.g., genre coloring), and incorporation of Settings > Weather in Settings and Weather windows.
  • Mantis 3520 - Enhance buttons to ignore textXOff "margins" - Positioning text to a desired location using textXOff on several buttons may not be possible given a specific button width and text label width. Using the textXOff shrinks the width of the label and may clip (fade out) the label based on the textXOff value. This feature allows for the positioning of the text using textXOff while preserving the width of the label text. To use simply set the textXOff property hasMargin to "no"; e.g. <textXOff hasMargin="no">20</textXOff>. This implementation is backward compatible. The following controls support this implementation: button, togglebutton, menubutton, spinbutton.
  • Mantis 3566 - TvMiniGuide fix for large numbers of channels - The Tv MiniGuide loads programs (now and next) from the tv database with a query constructed in TvBusinessLayer. The query is a series of select statements in a union to form the result set. On Windows there are several limitations that may prevent the opening of a number of large table simultaneously (see MySQL :: MySQL 5.0 Reference Manual :: E.7.5 Windows Platform Limitations [^]). In the case of the select/union statement for TvMiniGuide each select statement opens the program table; the number of select statements in my tests exceeded 750 (All Channels program group, US directv). A SQL error is presented as the result of the query execution and the result set returned to the Tv MiniGuide is empty resulting in the Tv MiniGuide being filled with "No available information" messages.
    [*]Mantis 3783 - Promote #defines to properties and allow #defines to contain skin expressions - By promoting #defines to be tracked inside MP as properties skin designers will be able to use defines to transfer information from one page to another and to use those values in skin expressions and functions. This is very useful for skin capabilities that provide for user controlled layout changes on a "skin settings" page. Enabling this behavior will significantly reduce the need for skin developers to develop and distribute an MP plugin with their skin (where this decision logic has historically resided); e.g., for modifying the EPG length or home page layout and content. See skin defines documentation.
This is the link to the branch on GitHub so that other devs can get the code and try to help/spot any possible bugs:
Code:
https://github.com/MediaPortal/MediaPortal-1/tree/FEAT-3779-Skin_engine_enhancements
 
Last edited:

ajp8164

Portal Pro
January 9, 2008
575
1,166
Atlanta, GA
Home Country
United States of America United States of America
Re: Skin engine enhancements (themes, guide colors, skin functions, weather settings.

Change log

Version 2012-05-24
  • [enhancement] Added skin settings management from MP Configuration tool. Please see this post.
Version 2012-05-12
  • [rebuild] This branch merged into 1.3.0Alpha_testing
Version 2012-05-04
  • [bugfix] Correct identification of the radio guide group button (which should be a button3part, not a button) allowing it to be rendered.
Version 2012-04-30
  • [enhancement] UPDATE TO YOUR MediaPortal.xml REQUIRED: Switched the genre name separation character from ',' (comma) to '{' (left brace); hopefully that will work well for everyone. If you already have a MediaPortal.xml file with genres mapped you'll have to replace all ',' with '{' between the mapped genres. This change made because of reports that comma's appear in the source EPG genre data (which then conflicted with this implementation).
  • [enhancement] A first time user (who has no settings entries in MediaPortal.xml) will see the Genre Map tab pre-populated with 7 default TV guide genre names, each with default colors. The seven names are Documentary, Kids, Movie, Music, News, Special, Sports. There are no default mappings since mappings depend on the users program genres which come from their EPG provider. The names of these seven default genres are localized strings stored in the appropriate string.xml language file. String indexes are 1250-1256; I'm providing the English strings ;-)
Version 2012-04-26
  • [enhancement] Removed capability that allows SkinSettings.xml to override MediaPortal.xml for tv guide colors. All tv guide colors must be specified in MediaPortal.xml.
  • [enhancement] Added skin theme version compatibility check. The skins theme directory must now contain a file named theme.xml containing version info. The themes version info must match that of the base skin (read out of references.xml). If the skin version check is being ignored (skin compatibility with MP) then the theme version check will also be ignored. Warnings are written to the log if versions do not match.
Version 2012-04-21
  • [reimplementation] Removed properties for tv guide genre color key. Implemented tv guide color key as new controls in tv guide. See TV Guide wiki for details.
  • [bugfix] Corrected problems with saving genre map (to MediaPortal.xml) and associated colors when genres are removed using the Configuration tool.
Version 2012-04-18 rev A
  • [enhancement] Added skin properties to expose genre names and colors. See the TV Guide wiki for details.
Version 2012-04-18
  • [bugfix] Corrected a problem in the logic for caching textures at MediaPortal start up. MediaPortal should start faster with this fix (spending less time in "Caching graphics" at start up).
  • [bugfix] Corrected implementation for loading TV guide colors in the MediaPortal Configuration tool. The Configuration tool now only reads TV guide color information from MediaPortal.xml (even though TV guide colors can be specified in a SkinSettings.xml file - see TV guide wiki page, TV guide configuration section).
Version 2012-04-15
  • [bugfix] Corrected problem which led to partial rendering of the TV guide (problem was caused by loading TV guide genre color settings incorrectly).
Version 2012-04-13
  • [bugfix] Corrected name of genre map section name to be read from MediaPortal.xml. There are a few settings file changes that need to be made. Please review sections "Genre map" and "Genre options" in the TV Guide wiki.
Version 2012-04-11
  • [rebuild] Changes from master merged in (I know I wasn't supposed to merge master to the feature branch but I did this a long time ago, in svn, and so I'm keeping everything up to date).
Version 2012-01-12
  • [bugfix] Completed mapping genre map and color controls in the Configuration tool (they are all working now).
Version 2012-01-11
  • [bugfix] Added missing Configuration tool capability to configure genre mapping and coloring.
Version 2012-01-08
  • [bugfix] Corrected bugs with management of skin settings when the skin is changed from the GUI (settings>general).
  • [bugfix] Corrected problem with loading skin settings from the wrong place.
Version 2012-01-07
  • [bugfix] Fixed bug that caused Default skin TV guide to not load properly (thanks elliottmc!)
Version 2012-01-05 rev A
  • [bugfix] Exposed the settings that enable/disable TV guide coloring from skin xml.
  • Updated the compatible Avalon skin that can be used for testing (previous is overwritten and now obsolete).
Version 2012-01-05
  • [bugfix] Corrected bugs with TV guide icon positioning and button3part handling.
  • Posted a compatible Avalon skin that can be used for testing.
Version 2012-01-03
  • [rebuild] Rebuilt branch from scratch with cherry picked commits. This build is based on master (1.2.2?) as of build time.
Version 2012-01-02
  • [backed out] items with strike through below. Will create add these features later when approved.
Version 2011-12-30
Version 2011-12-29
  • [bugfix] Corrected skin setting functions that were not properly returning value (resulting in unhandled exceptions).
  • [added] Changed skin setting function skin.setbool() to allow for setting a True of False value; now works similar to skin.setstring().
  • [bugfix] Added missing handling of skin.setbool() function in GUIInfoManager.
  • [bugfix] Corrected menu item value assignment in GUIMenuButton.
    [*][improved] GUIMenuButton <binding> now accepts skin expressions (no longer limited to skin properties).
Version 2011-12-28
  • [improved] Re-coded the implementation for handling skin settings; this implementation leverages GUIPropertyManager and GUIExpressionManager to allow skin settings to be used wherever properties and expressions may be used. See updated skin settings documentation.
    [*][added] Enhanced handling of <define> tags for use with skin settings. See skin defines documentation.
  • [added] Added SkinSettings.xml files to Default(Wide) skins. Updated skins for skin settings improvements.
Version 2011-12-18
  • [bugfix] Corrected problems associated with loading theme graphics when the theme graphic cannot be packed (because it's too big) but the base skin graphic is packed. Fix includes saving the list of textures that could not be packed into the skins cache folder in file named "notpackedgfx2.bxml".
  • [added] Button to change themes on Settings > General page for Default(Wide) skins.
  • [added] Added string 90, "Choose Theme", to strings_en.xml.
  • [added] Christmas theme for Default(Wide) skins (this is Harley's Christmas theme recently updated by ysmp; see https://forum.team-mediaportal.com/...-xmas-theme-default-defaultwide-skins-103436/
Version 2011-12-15
  • [added] Initial version
 
Last edited:

ajp8164

Portal Pro
January 9, 2008
575
1,166
Atlanta, GA
Home Country
United States of America United States of America
Re: Skin engine enhancements (themes, guide colors, skin functions, weather settings.

Test build

Version 2012-05-24
Known Issues:
  • You may see the following error text in your error.log; "Exception while attempting to read upgrade xml file Input string was not in a correct format." This is expected and okay. It is because I have modified the Avalon skin version label in the Avalon skin file avalon.version.xml. The Avalon plugin is writing this message to the log. It does not affect the functional use of MP or the Avalon skin (except that you may not be able to make use of Avalon's skin download/upgrade feature (which isn't relevant for this testing anyway).
Testing Required:
  • Switching between skins to make sure skin settings for each skin affect only their own skin.
  • Ensure theme's work; might want to create your own theme (see wiki, or Default skins as example, Default has a Christmas theme on Settings>General window).
  • Need to have each mantis record tested.
Download Version 2012-05-24

You can download this Avalon3779 test skin for testing TV guide coloring, themes and other stuff. See the Readme.txt in the zip file containing the skin.
 
Last edited:

FreakyJ

Retired Team Member
  • Premium Supporter
  • July 25, 2010
    4,024
    1,420
    Home Country
    Germany Germany
    AW: Skin engine enhancements (themes, guide colors, skin functions, weather settings.

    I can't see the genre coloring oO I installed this MP version in a VM and connected to my main HTPC with 1.2.1 and could see the EPG, but without genre coloring oO Do I have to sitch it on? I tried both themes of the default skin and installed Black Glass Nova and PureVision, both sinks worked fine so far :)
     

    ajp8164

    Portal Pro
    January 9, 2008
    575
    1,166
    Atlanta, GA
    Home Country
    United States of America United States of America
    Re: AW: Skin engine enhancements (themes, guide colors, skin functions, weather setti

    I can't see the genre coloring oO I installed this MP version in a VM and connected to my main HTPC with 1.2.1 and could see the EPG, but without genre coloring oO Do I have to sitch it on? I tried both themes of the default skin and installed Black Glass Nova and PureVision, both sinks worked fine so far :)

    Genre coloring is not enabled/setup on any skins (by default). To experience the genre coloring you'll have to modify the skin xml for the skin. Please see TV Guide - MediaPortal Wiki for information on exactly what to do. Basically you'll have to hand edit MediaPortal.xml and ensure you have proper textures available.

    Question for all - if you'd like I can modify Default(Wide) skins to turn on genre coloring and have it be the default state. Who ever manages the Default(Wide) skins may some input ;-)

    Thanks!
     

    mironicus

    Portal Pro
    March 9, 2008
    688
    44
    AW: Skin engine enhancements (themes, guide colors, skin functions, weather settings.

    Could you compile a new version based on 1.22? :)
     

    JacobJust

    MP Donator
  • Premium Supporter
  • September 23, 2006
    131
    46
    51
    Aarhus
    Home Country
    Denmark Denmark
    Re: AW: Skin engine enhancements (themes, guide colors, skin functions, weather setti

    Hi Andy

    I would appreciate if you could provide an example xml that works. I can't seem to get the colors to work. I get new look in guide but no colors.
    I would also like to see the example done on the skin "Avalon" xml (but that is just my personal opinion).
    (i have tried you're build on different skins and some skins are broken(in guide), but others still show as always.)

    But i must say that this feature has been missing for a very long time. Thanks for the work.

    Regards
    Jacob
     

    Users who are viewing this thread

    Top Bottom