Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan McGovern <alan.mcgovern@gmail.com>2012-03-27 17:52:06 +0400
committerAlan McGovern <alan.mcgovern@gmail.com>2012-03-29 22:04:47 +0400
commit630e8aefc8a01c02e4d1dcbba75de09ff11a6393 (patch)
treeae3dcba9ba85f52b5d2fe59b674fc663df1bda2a
parentbe2dbedf0e99256854d5951974ffb031a49804a3 (diff)
[MacDev] Rewrite some of the renders so they use PListScheme items properly
We can now tell *exactly* what created a value so we can properly detect when its Type should be rendered. We can also properly detect the identifier and description for many more keys and tell when something should be editable or not.
-rw-r--r--main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/CustomPropertiesWidget.cs46
1 files changed, 20 insertions, 26 deletions
diff --git a/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/CustomPropertiesWidget.cs b/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/CustomPropertiesWidget.cs
index 529ae96933..d16462c26d 100644
--- a/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/CustomPropertiesWidget.cs
+++ b/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/CustomPropertiesWidget.cs
@@ -325,49 +325,43 @@ namespace MonoDevelop.MacDev.PlistEditor
}
}
};
-
+
propRenderer.Edited += delegate(object o, EditedArgs args) {
TreeIter iter;
+ string newText = args.NewText;
if (!treeStore.GetIterFromString (out iter, args.Path))
return;
- var pObject = (PObject)treeStore.GetValue (iter, 1);
- if (pObject == null)
- return;
- string newText = args.NewText;
- var key = Parent != null? Scheme.GetKey (pObject.Parent.Key) : null;
+
+ var obj = (PObject)treeStore.GetValue (iter, 1);
+ var key = (PListScheme.SchemaItem) treeStore.GetValue (iter, 2);
if (key != null) {
- foreach (var val in key.Values) {
- if (newText == val.Description) {
- newText = val.Identifier;
- break;
- }
- }
+ var value = key.Values.FirstOrDefault (v => v.Description == newText || v.Identifier == newText);
+ if (value != null)
+ newText = value.Identifier;
}
- pObject.SetValue (newText);
+ obj.SetValue (newText);
};
treeview.AppendColumn (GettextCatalog.GetString ("Value"), propRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) {
var renderer = (CellRendererCombo)cell;
var obj = (PObject)tree_model.GetValue (iter, 1);
- if (obj == null) {
+ var key = (PListScheme.SchemaItem) tree_model.GetValue (iter, 2) ?? PListScheme.Key.Empty;
+
+ renderer.Sensitive = !(obj is PDictionary || obj is PArray || obj is PData);
+ renderer.Editable = renderer.Sensitive;
+ if (obj == null || !renderer.Sensitive) {
renderer.Editable = false;
renderer.Text = "";
return;
}
-
- renderer.Sensitive = !(obj is PDictionary || obj is PArray || obj is PData);
-
+
if (ShowDescriptions) {
- var value = (string) tree_model.GetValue (iter, 0) ?? "";
- var key = (PListScheme.SchemaItem) tree_model.GetValue (iter, 2) ?? PListScheme.Key.Empty;
-
- foreach (PListScheme.SchemaItem v in key.Values) {
- if (v.Identifier == value) {
- renderer.Text = v.Description ?? v.Identifier;
- break;
- }
+ var value = (string) tree_model.GetValue (iter, 0);
+ var item = key.Values.FirstOrDefault (v => v.Identifier == value);
+ if (item != null) {
+ renderer.Text = item.Description ?? item.Identifier;
+ return;
}
- return;
}
switch (obj.TypeString) {