[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