Hey,
I'd like to get in my work on stylesheet support in Plasma, before the feature
freeze
on May, 11th.
Right now, Stylesheet is a standalone class that give you a QString
stylesheet() that
uses Plasma::Theme's colouring and font sizing. This is useful basically
whenever you
want to use non-trivial HTML in your applet (or other Plasma code).
During Tokamak4, Aaron and I sat together to discuss how we want this in Plasma
and
we came to the preliminary conclusion that it'd best be added as a method to
Plasma::Theme, so you basically get QString Plasma::Theme::stylesheet().
Thinking about this, it might be too limited, as I'd like to support custom
stylesheets as well, basically what I have in mind is:
Stylesheet *css = new Plasma::StyleSheet("somecssfile.css");
QString myStyle = css->styleSheet();
connect(css, SIGNAL(styleSheetChanged()), this, SLOT(updateStyleSheet()));
The updater mechanism monitors changes to our CSS file. and makes the app
reload when
the stylesheet changes on disk or when the Plasma theme changes -- very quick
"edit /
test" cycles this way. It currently looks roughly like this:
http://websvn.kde.org/trunk/playground/base/plasma/applets/crystal/stylesheet.h?view=markup
(Merging of course means the usual d-pointer stuff, and of course adding docs,
don't
worry about that just yet.)
The reason to support custom-provided stylesheets would be to make more complex
styles possible, I'm using Stylesheet for example for layouting HTML emails in
Lion
Mail and for a Dashboard in the Crystal applet, both use custom tags. The
Welcome
widget would be another nice example. This thing is part of the Silk stuff I've
been
working on, to provide more visual consistency between "webby" interfaces and
our
native Plasma stuff.
Question: Should I still go with the "add method to Plasma::Theme" approach (I
don't
see how to nicely add support for css files per user in that case), or should I
continue with a separate class, Plasma::StyleSheet?
Thanks for your input,
--
sebas
http://www.kde.org | http://vizZzion.org | GPG Key ID: 9119 0EF9
_______________________________________________
Plasma-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/plasma-devel