Bug 3889 - Plist editor usability
Summary: Plist editor usability
Alias: None
Product: Xamarin Studio
Classification: Desktop
Component: iOS add-in ()
Version: Trunk
Hardware: PC Mac OS
: --- normal
Target Milestone: ---
Assignee: Alan McGovern
Depends on:
Reported: 2012-03-13 18:00 UTC by Mikayla Hutchinson [MSFT]
Modified: 2012-04-16 12:04 UTC (History)
1 user (show)

Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.

Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:

Description Mikayla Hutchinson [MSFT] 2012-03-13 18:00:25 UTC
The plist editor is really painful for editing bundle settings, here are some ways we could improve it:

* The +/- button behaviour is weird. You have to click before they even show up. Maybe they should show on hover. Also, clicking on "Add new entry" should add a new entry.

* Editing a key/value should not deselect the row when editing finishes

* We should have a schema and template for bundle settings (plists in a Settings.bundle). See https://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/UserDefaults/Preferences/Preferences.html for the schema.

* We should render summaries for PreferenceSpecifiers items like Xcode does, maybe this could be handled by some kind of format string in the schema.

* Automatically create required children for PreferenceSpecifiers items like Xcode does.

* New children of an array/dictionary should have the type expected by the schema.

* New dictionaries should have the children required by the schema.

* New children of dictionaries should use one of the unused valid keys known to the schema to be valid. It may not be the desired value, but it's more likely to be useful than "newValue".

* The treeview should keep its fold state after adding a new node or editing a value. 

* We should support cut/copy/paste and DnD for rows

* We should have a template for a settings bundle.
Comment 1 Alan McGovern 2012-03-15 13:04:28 UTC
I'm working on this now. I'll update if i have issues with any of the changes (either technical or asthetic issues, though they all seem pretty spot on.
Comment 2 Alan McGovern 2012-03-21 06:51:34 UTC
For keys which are defined by iOS/MacOS, should we make it impossible to add additional non-standard values? For example if there is a key called 'Foo' documented to contain an array of numbers (any combination of 0, 1 and 2), should we make it impossible to add the number 3? Or a string with the value of "String"?

It's trivial to do this, I'm just not sure if we should deliberately limit the user. I think it would be a good idea as putting strings where iOS expects to find only numbers could cause the application to break in unusual ways. If you need custom values, you should use custom keys.
Comment 3 Alan McGovern 2012-04-16 12:04:32 UTC
Things seem to be pretty much complete except for the settings bundle stuff, so I'm going to close this particular bug and open a separate issue detailing what is required for the settings bundle.

I will also open a separate bug for cut/copy/paste as it is still unimplemented.