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.
Code:
https://github.com/MediaPortal/MediaPortal-1/tree/FEAT-3779-Skin_engine_enhancements
Last edited: