touchy settings UI architecture

Sebastian Kügler sebas at kde.org
Wed Oct 19 21:53:02 UTC 2011


Hey,

Some progress ...

On Friday, October 14, 2011 13:02:19 Marco Martin wrote:
> 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)

I've implemented the basic shell last weekend, and actually got quite far. 
Let's see what's working, and how the whole thing looks like:

* There's a new application, active-settings, much like the browser, 
  imageviewer, about app

* There's also a new plugin type, Active/SettingsModule, this is basically the 
  equivalent of a  KCModule. It consists of a QML package and an optional C++ 
  library derived from the SettingsModule class.

* active-settings (AS) loads a QML package that has the basic shell body, 
  including a listview of the available modules, and an Item which is used to 
  load the actual settings module into, let's call this Settings.qml

* A model with the available modules is exported to Settings.qml which serves 
  as a base for choosing the module to load. This model only has metadata, 
  such as name, description and pluginname

* Settings.qml, when a module is chosen asks the C++ part to look for a plugin 
  library (defined in X-KDE-Library), if such a plugin exists, the C++ part 
  exposes a settings object (e.g. TimeSettings) to the QML part which can be 
  instantiated there. If it doesn't exist, the module is assumed to be QML 
  only.

* There are two examples installed right now, both not functional but showing 
  that the basic plugin loading mechanism works: Time Date and Web Browser    
  settings. The Time and Date thing uses a C++ module, as part of the plugin 
  and exposes a few settings. (Just reading right now, writing not done yet.)

* The web browser settings module is just a more or less empty QML package.

That's roughly it. Of course this means that we now have to write settings 
modules, that the SettingsModule class should probably move into some kind of 
lib, but the basics are in place.

It also struck me that we have no guideline how to set up a UI. Not that I've 
gotten to this yet, but it's probably something we need to work on in the 
future.

Cheers,
-- 
sebas

http://www.kde.org | http://vizZzion.org | GPG Key ID: 9119 0EF9


More information about the Active mailing list