[Development] QSettings refactor updates
Ziller Eike
Eike.Ziller at theqtcompany.com
Mon Oct 13 17:02:52 CEST 2014
On Oct 13, 2014, at 10:30 AM, Morten Johan Sørvig <morten.sorvig at digia.com> wrote:
>
>> 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.
Ok, right, if it is feasible to wrap such "native settings” in a cross-platform API at all.
So, from my perspective (1) should be able to generate something that users expect from an application they install (on OS X that’s a plist in ~/Library/Preferences),
and (2) is nothing we should aim for (at least not at the moment, and since this seems even conceptionally different on different platforms, I’m not sure that at all).
Br, Eike
--
Eike Ziller, Senior Software Engineer - Digia, Qt
Digia Germany GmbH, Rudower Chaussee 13, D-12489 Berlin
Geschäftsführer: Mika Pälsi, Juha Varelius, Anja Wasenius
Sitz der Gesellschaft: Berlin. Registergericht: Amtsgericht Charlottenburg, HRB 144331 B
More information about the Development
mailing list