[Development] Notes of the QSetting session at DevDays meeting

cristiano.di-flora at nokia.com cristiano.di-flora at nokia.com
Tue Nov 1 17:43:12 CET 2011


Hi Andreas / all,


I have been at the DevDays in Munich, and unfortunately I was not aware
about this meeting...would have been nice and helpful to join the
discussion there.
I am reading your notes with the QtSystems "hat" and I see a lot of
potential synergy with the QtSystems' Qt Publish&Subscribe API.
Especially when considering the watch and broadcast ideas below, I
immediately think about the ValueSpace abstraction provided by
Publish&Subscribe.
Have you discussed the idea at all at the DevDays? Would it make sense to
plan to add a Dconf backend to P&S?
I have the feeling that you are more interested in adding new back-ends to
Publish&Subscribe, rather than in trying to turn QSettings into something
that will look very close to what the P&S API is about. Of course, since I
have not joined the discussion in person, my feeling is just based on your
notes ;)

I would be more than interested to hear your opinion as well as of all
other people who are interested in this topic.

Cheers,
-Cristiano

________________________________________
Cristiano di Flora, PhD

SW Architect / Technical lead,

Nokia - Qt Software development

Visiokatu 3
33720, Tampere (FINLAND)
________________________________________





On 11/1/11 2:35 AM, "ext Andreas Hartmetz" <ahartmetz at gmail.com> wrote:

>Hi all,
>
>At the DevDays contributors day there was a meeting with interested
>parties from QtDF and the (mostly KDE-related) community about a
>replacement for the scheduled-to-be-removed QSettings. Before the
>meeting I gathered that there is interest in using DConf as the backend,
>so I prepared a list of points related to that.
>During the meeting I edited the list of points, added answers and added
>some new questions that came up.
>
>Here is the list of points, slightly edited after the meeting, for
>reading and further discussion:
>
>QSettings:
>- Group support: cd-like API = bad
>- Suboptimal performance
>- Somewhat wasteful storage format: the fully-qualified name including
>  all parent groups of each entry is serialized for each entry.
>- Limited cascading support (file of same name in some hardcoded path(s))
>- Not conforming to desktop file standard
>
>Replacement requirements:
>- Should have "QSettingsGroup" like KConfigGroup - MUCH less error-prone
>- Good performance (UTF-16 storage? DConf doesn't have that yet)
>- (More) space-efficient storage format
>- Full cascading config support (to support a full desktop environment)
>- Platform storage backend support?
>  Consider same backend on all platforms, then consider offering
>  QWindowsRegistry (+ something for OSX) for native configuration support
>  where applications need it for external reasons.
>- What about DConf?
>  - Needs translators to and from plaintext so the Unix text tools and
>    editors can be used
>  - How are the config files and / or cache files laid out and what do
>    they contain? TODO
>  - Can serialize / synchronize changes via a daemon (desired feature)
>  - Binary UTF8-based encoding
>  - Still need .desktop file access somehow -> TODO QDesktopFile
>- How to watch and broadcast changes, if we want to support
>  "apply immediately" in settings dialogs?
>  - Efficiency (or good high-level API) questionable, just a gut feeling
>    from working on similar stuff.
>    I've looked at some DConf code after the meeting but couldn't figure
>    out how the code worked (for shame).
>    Would have to look harder and look at surrounding code, too.
>  - What about transaction / sync support for atomic changesets?
>    Example: in mail client, when changing hostname: hostname, username,
>    and password should change either all or not at all.
>- Would be very nice to have it good enough to replace KConfig, so for
>  example kDebug could be moved to Inqlude without further dependencies.
>- KConfig code reuse possible?
>  No: QtCore code can't be LGPL, and too many authors for relicensing!
>- Which module should it be in?
>  QtCore, unless very complex, which it shouldn't be
>- Environment & shell expression expansion & immutable flag (Kiosk)?
>  Not sure: looks potentially ugly to support well, but would have to be
>  done manually where it was used.
>
>Cheers,
>Andreas
>_______________________________________________
>Development mailing list
>Development at qt-project.org
>http://lists.qt-project.org/mailman/listinfo/development




More information about the Development mailing list