View Issue Details

IDProjectCategoryView StatusLast Update
0018315MediaMonkey 5Skinning frameworkpublic2021-09-23 21:14
Reporterdrakinite Assigned To 
PriorityurgentSeverityfeatureReproducibilityN/A
Status closedResolutionreopened 
Product Version5.0.2 
Target Version5.1Fixed in Version5.0.2 
Summary0018315: Enable configurable options for Skins
DescriptionProposed feature, to enable 0017316 and 0017880:

In order to make it easy for skin developers to add configurable settings to their skins, and to make it easy for users to change those settings without repeatedly reloading the software, we should add configuration panels inside the Tools > Options > Skin menu.
Proposed specifications:
1) Skins, just like other addons, can include a config.js and config.html inside.
2) In the Skin options panel, when a new skin is selected:
  a) If the skin has a config.js, the config panel will appear below the list of skins, inside a fieldset, with the skin's name as a title.
  b) If the selected skin is changed, the config panel will be saved in memory and hidden, so that the user's changes are not lost.
3) If the Cancel button is pressed, as normal, nothing will happen.
4) If the Save button is pressed, whether the skin is changed or not, the active config panel (i.e. no hidden config panels) will save, then the UI will restart if necessary.

A screenshot example of what this proposed feature would look like has been attached.
Additional InformationTicket 2570
TagsNo tags attached.
Fixed in build2505

Relationships

related to 0017316 closeddrakinite Allow customization of Monkey Groove skin highlight color 
related to 0017548 closedpetr Switching skins on one install causes all other installs to also change skin 

Activities

drakinite

2021-09-19 00:57

developer  

drakinite

2021-09-19 00:58

developer   ~0064747

Assigning to Rusty for feedback on the proposed functionality.

rusty

2021-09-20 15:57

administrator   ~0064767

To summarize some offline discussions re. the high level vision:
- We should be able to clearly describe upfront which aspects of a skin require a new skin vs which are configurable within a skin
- For items configurable within a skin, there must be mechanisms to ensure that attributes chosen won't lock the user out of their UI by making it invisible
- The feature should make the process of creating a skin into a software development project. i.e. to grow a vibrant skinning community, MM skins should not require software development skills.

drakinite

2021-09-21 17:31

developer   ~0064784

Feature added in build 2504.

drakinite

2021-09-22 13:50

developer   ~0064821

Added the ability to remove values in the setLessValues function, in 2505.

drakinite

2021-09-22 15:09

developer   ~0064822

Inconsistency (regression?) found on build 2504 when changing settings while switching skins, related to https://www.ventismedia.com/mantis/view.php?id=17548#c61946.

To reproduce:
1) Load Monkey Groove first ( to make sure there is now a precompiledLess_Monkey Groove_Desktop.css ) in your temp folder
2) Switch to a different skin (e.g. Metro M)
3) Either:
- In Options > Skin, switch to Monkey Groove and select a different highlight color (e.g. red)
or
- run setLessValues({warningColor: 'red'}, 'Monkey Groove');
4) Switch to Monkey Groove
After Monkey Groove loads, the highlight color will still be the same as it was before.
If you then run reloadLess() in the console, the correct color will appear. So this is not an issue with the runtime LESS variables, but with the precompiled cached CSS.

petr

2021-09-22 18:55

developer   ~0064827

Fixed

lowlander

2021-09-23 21:14

developer   ~0064855

Verified on 2505 with steps provided.