Review Request: Add a generic mechanism to render solid backgrounds behind plasma frames

David Nolden zwabel+reviewboard at gmail.com
Mon Apr 20 16:21:59 CEST 2009


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/591/
-----------------------------------------------------------

(Updated 2009-04-20 07:21:59.107212)


Review request for Plasma.


Changes
-------

- Use separate settings for the composite case(Prefixed with "composite_")
- Make updating work nicely. Now whenever any of the attributes has changed, all theme users(krunner, plasma, ..) update correctly.


Summary
-------

This allows making transparent themes "solid" in a relatively nice-looking way. My idea is that there would at least a few configurable background-providers: User-chosen solid color(with alpha value), user-chosen pattern(tinted by solid color with alpha-value), solid color autodetected from the background image(to make the colors match).

In this initial implementation, there is one background-provider for a color with an alpha-value. This might also be a nice way to customize themes even if composition is enabled, because it can be used to just reduce the transparency, and tint the theme into a user-chosen direction.

This isn't ready and doesn't have a user-interface, I'm mainly posting this for review to check whether the general approach is accepted.

To try it out, add something like:
frameBackgroundColor=#ff0000
frameBackgroundColorAlpha=255
Into the [Theme] section of the ~/.kde4/share/apps/plasmarc file.

About the implementation:
The main problem is identifying the specific frames that are intended to run as separate windows. I've done that using some simple string-matching, and it worked well in all my tries.


Diffs (updated)
-----

  trunk/KDE/kdelibs/plasma/framesvg.cpp 953288 
  trunk/KDE/kdelibs/plasma/CMakeLists.txt 953288 
  trunk/KDE/kdelibs/plasma/framebackgroundprovider.h PRE-CREATION 
  trunk/KDE/kdelibs/plasma/framebackgroundprovider.cpp PRE-CREATION 
  trunk/KDE/kdelibs/plasma/private/framesvg_p.h 953288 
  trunk/KDE/kdelibs/plasma/svg.cpp 953288 
  trunk/KDE/kdelibs/plasma/theme.h 953288 
  trunk/KDE/kdelibs/plasma/theme.cpp 953288 

Diff: http://reviewboard.kde.org/r/591/diff


Testing
-------


Thanks,

David



More information about the Plasma-devel mailing list