Playnite: Rework themming support

Created on 13 Apr 2018  路  11Comments  路  Source: JosefNemec/Playnite

While developing fullscreen mode I've come a cross lot of issue with current themming support and we need to rework it. The main issues are:

  • Even when making small changes to a sub-view (lets say a change to checkboxes only), the whole theme has to be forked.
  • Single file system makes it very hard to maintain
  • Current themes also include data bindings to a data model. This was initially done to make themes more flexible and give them more options to change the behavior. The problem are:

    • It clutters the XAML file a lot

    • Any binding or model changes has to ported to all themes

    • It makes it harder to make changes because theme developer has to keep datacontext structure in mind

  • Any support for configurable themes is nonexistent

The main changes should be:

  • All binding will be defined in code behind and hidden from a theme
  • Split the single file system to a per control/view file system
  • Split UI executable to separate desktop and fullscreen ones
complex_high enhancement

Most helpful comment

I really hate being this guy but is there any news on this?
Full screen improvements depend on this and I really want to get rid of steams big-picture.

All 11 comments

@JosefNemec Hi Josef! Will the fullscreen mode in version 4.6 be able to work with links? (I mean "More" button from Desktop mode)

I'm not sure that full "Edit" option will be there, but everything else from "More" menu should be there.

Single file system makes it very hard to maintain

What about using MergedDictionaries to include files into the main file?

I really hate being this guy but is there any news on this?
Full screen improvements depend on this and I really want to get rid of steams big-picture.

I found this interesting library https://github.com/ammyui/ammyui and i think it can solve the issue

I've had a look at it and don't see how it "solves" this issue, it would just introduce different syntax to UI (that's at the end compiled to XAML anyways). I have this issue mostly done for 5.0 and we are staying with XAML, mostly because now you will be able to easily preview your theme changes in Blend.

Hello, I'm a new Playnite user and first of all thank you for your work and this great program! It really works wonders for people who are using almost every platform out there.

I'm interesting in developing and sharing a theme for Playnite, however the tutorial refers to this issue. Should I instead wait for an imminent release of 5.0 with an updated tutorial?

And furthermore, how flexible is the theming? I'm interested in changing up the UI, I assume changing the positing of menus, icons, buttons, etc. is possible?

There's no tutorial for 4.x themes, I'm not sure what you are referring to, I removed it a while ago because of 5.0 rework. You'll have to wait for 5.0 release for new tutorial.

You will be able to change everything you mention.

Thank you for the quick answer and the information Joseph! Yes, I was referring to the empty page with the removed tutorial which links here. If you could remember to update this issue once the update/tutorial is out so I can start working on the theme as soon as possible it will be awesome!

Furthermore, I know that this is a little off-topic, however I am also interested in contributing a translation for local users who prefer to use in our native language. However, I don't see the language in the list on Crowdin. Should I just contact you there and you'll create the entry?

Yes, contact me on Crowdin about what language you want to add and I'll add it.

Done in 5.1

Was this page helpful?
0 / 5 - 0 ratings