touchy settings UI architecture
Marco Martin
notmart at gmail.com
Fri Oct 14 11:02:19 UTC 2011
Hi all,
one of the things is pretty clear we need for Active 2 is a centralized
settings ui, since systemsettings revealed to be so painful to use on a
touchscreen that is now blacklisted (and 99% of its kcms wouldn't be useful)
so from a purely architectural (ui can be anything) point of view what i had
in mind was:
* the logic of the seetings of a particular thing is done in QObjects: a
setting will correspond to a qproperty
* to start them, let's start with the time and locale kcms, ripping all the ui
out of them, just leaving the config files read/write parts
* the time one reveals the need of specialized qobjects rather than just a
binding over kconfing: it sets the system time and uses policykit for that
* a qobject to write in generic config files could still be written, maybe it
could make possible for some of the config modules being written in pure QML
* configuration ui modules should be plasma packages
(/usr/share/kde4/apps/plasma/packages/*)
* the "outer shell" with tabs that can load different modules is a plasma
package as well
* the settings module logic is a kde c++ plugin, that has all the properties
for config options, plus a property that says the path of the root qml file
extracted from the package
* a kapplication loads the shell package, then, lists config plugins with
sycoca, puts them in a model to be visualized by the shell qml files
* after clicking on a config module icon, the c++ part loads the c++ plugin,
extracts the path of the qml file, slams the parsed qml instance in the main
screen of the config ui (that should be a PageStack component, probably)
is it clear? too complex? i still don't have completely clear if/how loading
config modules that are pure qml, suggestions (and ways to simplify it) are
welcome ;)
Cheers,
Marco Martin
More information about the Active
mailing list