[Development] QSettings refactor updates

Morten Johan Sørvig morten.sorvig at digia.com
Mon Oct 13 10:30:20 CEST 2014


> On 10 Oct 2014, at 13:27, Ziller Eike <Eike.Ziller at theqtcompany.com> wrote:
> 
> 
> On Oct 10, 2014, at 11:48 AM, Morten Johan Sørvig <morten.sorvig at digia.com> wrote:
> 
>>> 
>>>> Mac people: do we need access to plist files?
>>> 
>>> Plist is the format for application and other settings on OS X, and there are native tools for nicely editing these. Ini is highly alien on OS X.
>>> So, I’d answer yes.
>> 
>> On the other hand, git uses the ini file format for the config files also on OS X.
> 
> git is a command line tool, and used by a very specific audience.
> 
>> I see this as two separate use cases: 
>> 1) Cross-platform API for managing application settings.
> 
> We regularly have people which complain that Qt Creator application settings do not follow platform convention on OS X, because they do not find a qt creator plist in ~/Library/Preferences, or actually there is one that contains some settings coming from Qt (NSNavLastRootDirectory, PMPrintingExpandedState...., some WebKit stuff, and a few more), but not the actual application settings.
> 
>> 2) API for reading native settings, following the conventions of the platform
> 
> What kind of native settings are you thinking about here (on OS X)?

If I may re-state my point it is that OS X settings is more than the Plist file format: NSUserDefaults has special behaviors for sandboxing, iCloud sync, the iOS Settings app, etc. Perhaps the best way to use NSUserDefaults from a Qt app is QUrl::toNSURL() and QString::toNSString() (i.e. enable it don’t wrap it).

In that light supporting ini+json only is a project with a well-defined small scope. Creating a class that wraps the native  settings is a much larger project.

Morten


More information about the Development mailing list