diff options
author | Michael Hutchinson <m.j.hutchinson@gmail.com> | 2011-11-15 19:50:37 +0400 |
---|---|---|
committer | Michael Hutchinson <m.j.hutchinson@gmail.com> | 2011-11-15 20:00:16 +0400 |
commit | 21762fd150143378373ff71dcfa7b20c9ff8d1a9 (patch) | |
tree | c26b20d968d47ec02bffef7404bb62e3cedfc108 /main/src/addins/MonoDevelop.MacDev | |
parent | 058ff59b3b35af180aef4fc5ebe1cb0819435088 (diff) | |
parent | 9a0bcf3d0eb0ebe2940313b65a6e734c97da83cd (diff) |
Merge remote-tracking branch 'origin/master' into macgtk
Conflicts:
main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/CustomPropertiesWidget.cs
Diffstat (limited to 'main/src/addins/MonoDevelop.MacDev')
4 files changed, 41 insertions, 50 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 5b9f7d0c5b..fb6a86a48e 100644 --- a/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/CustomPropertiesWidget.cs +++ b/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/CustomPropertiesWidget.cs @@ -38,6 +38,8 @@ namespace MonoDevelop.MacDev.PlistEditor [System.ComponentModel.ToolboxItem(true)] public partial class CustomPropertiesWidget : VBox, IPListDisplayWidget { + const string AddKeyNode = "Add new entry"; + TreeStore treeStore = new TreeStore (typeof(string), typeof (PObject)); Gtk.ListStore keyStore = new ListStore (typeof (string), typeof (PListScheme.Key)); Gtk.ListStore valueStore = new ListStore (typeof (string), typeof (string)); @@ -204,12 +206,7 @@ namespace MonoDevelop.MacDev.PlistEditor class CellRendererButton : CellRenderer { Gdk.Pixbuf pixbuf; - - public bool Collapsed { - get; - set; - } - + public CellRendererButton (Gdk.Pixbuf pixbuf) { this.pixbuf = pixbuf; @@ -243,7 +240,7 @@ namespace MonoDevelop.MacDev.PlistEditor protected override void Render (Gdk.Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags) { - if (Collapsed) + if (!Visible) return; int x = cell_area.X + 1; int y = cell_area.Y + 1; @@ -302,6 +299,10 @@ namespace MonoDevelop.MacDev.PlistEditor renderer.Sensitive = true; renderer.Text = key != null && ShowDescriptions ? GettextCatalog.GetString (key.Description) : id; }); + treeview.AppendColumn (col); + + var iconSize = IconSize.Menu; + col = new TreeViewColumn { MinWidth = 25, Resizable = true, Sizing = Gtk.TreeViewColumnSizing.Autosize }; var removeRenderer = new CellRendererButton (ImageService.GetPixbuf ("gtk-remove", IconSize.Menu)); removeRenderer.Clicked += delegate { @@ -315,47 +316,39 @@ namespace MonoDevelop.MacDev.PlistEditor }; col.PackEnd (removeRenderer, false); col.SetCellDataFunc (removeRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { - removeRenderer.Collapsed = !treeview.Selection.IterIsSelected (iter); + removeRenderer.Visible = treeview.Selection.IterIsSelected (iter) && !AddKeyNode.Equals (treeStore.GetValue (iter, 0)); }); var addRenderer = new CellRendererButton (ImageService.GetPixbuf ("gtk-add", IconSize.Menu)); addRenderer.Clicked += delegate { - Gtk.TreeIter iter; - bool hasSelection = treeview.Selection.GetSelected (out iter); - PObject obj = null; - if (hasSelection) - obj = (PObject)treeStore.GetValue (iter, 1); - if (obj == null) + Gtk.TreeIter iter = Gtk.TreeIter.Zero; + if (!treeview.Selection.GetSelected (out iter)) return; - var newObj = new PString (""); - PObject parent = obj.Parent; - if (parent is PArray) { - var arr = (PArray)parent; + PObject obj = null; + if (treeStore.IterParent (out iter, iter)) + obj = (PObject) treeStore.GetValue (iter, 1); + obj = obj ?? nsDictionary; + + var newObj = new PString (""); + if (obj is PArray) { + var arr = (PArray) obj; arr.Add (newObj); - return; - } - - var dict = parent as PDictionary; - if (dict == null) - return; - - string name = "newNode"; - while (dict.ContainsKey (name)) - name += "_"; - if (obj == null) { + } else if (obj is PDictionary) { + string name = "newNode"; + var dict = (PDictionary) obj; + while (dict.ContainsKey (name)) + name += "_"; dict.Add (name ,newObj); } else { - dict.InsertAfter (obj.Key, name, newObj); + return; } }; col.PackEnd (addRenderer, false); col.SetCellDataFunc (addRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { - addRenderer.Collapsed = !treeview.Selection.IterIsSelected (iter); + addRenderer.Visible = treeview.Selection.IterIsSelected (iter) && AddKeyNode.Equals (treeStore.GetValue (iter, 0)); }); - - treeview.AppendColumn (col); treeview.RowExpanded += delegate(object o, RowExpandedArgs args) { @@ -487,13 +480,13 @@ namespace MonoDevelop.MacDev.PlistEditor Dictionary<PObject, Gtk.TreeIter> iterTable = new Dictionary<PObject, Gtk.TreeIter> (); - void SetNoEntries (Gtk.TreeIter iter) + void AddCreateNewEntry (Gtk.TreeIter iter) { if (iter.Equals (TreeIter.Zero)) { - treeStore.AppendValues (GettextCatalog.GetString ("No entries"), null); + treeStore.AppendValues (GettextCatalog.GetString (AddKeyNode), null); return; } - treeStore.AppendValues (iter, GettextCatalog.GetString ("No entries"), null); + treeStore.AppendValues (iter, GettextCatalog.GetString (AddKeyNode), null); } void AddToTree (Gtk.TreeStore treeStore, Gtk.TreeIter iter, PDictionary dict) @@ -509,8 +502,7 @@ namespace MonoDevelop.MacDev.PlistEditor if (expandedObjects.Contains (item.Value)) treeview.ExpandRow (treeStore.GetPath (subIter), true); } - if (dict.Count == 0) - SetNoEntries (iter); + AddCreateNewEntry (iter); if (!rebuildArrays.Contains (dict)) { rebuildArrays.Add (dict); @@ -548,9 +540,8 @@ namespace MonoDevelop.MacDev.PlistEditor if (expandedObjects.Contains (item)) treeview.ExpandRow (treeStore.GetPath (subIter), true); } - - if (arr.Count == 0) - SetNoEntries (iter); + + AddCreateNewEntry (iter); if (!rebuildArrays.Contains (arr)) { rebuildArrays.Add (arr); diff --git a/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/ImageChooser.cs b/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/ImageChooser.cs index a86e687d72..6370bce99d 100644 --- a/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/ImageChooser.cs +++ b/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/ImageChooser.cs @@ -200,9 +200,9 @@ namespace MonoDevelop.MacDev.PlistEditor cr.Translate (imgAlloc.X, imgAlloc.Y); using (var layout = new Pango.Layout (PangoContext)) { - layout.SetText (GettextCatalog.GetString ("No image")); + layout.SetText (string.Format ("({0}x{1})", displaySize.Width, displaySize.Height)); - layout.Width = (int)((imgAlloc.Width - 20) * Pango.Scale.PangoScale); + layout.Width = (int)((imgAlloc.Width - 16) * Pango.Scale.PangoScale); layout.Wrap = Pango.WrapMode.WordChar; layout.Alignment = Pango.Alignment.Center; int pw, ph; diff --git a/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs b/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs index 9e0d10ba85..d4a29b9bfa 100644 --- a/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs +++ b/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectProjectInfo.cs @@ -81,6 +81,11 @@ namespace MonoDevelop.MacDev.ObjCIntegration cliTypes.Clear (); foreach (var type in infoService.GetRegisteredObjects (dom)) { + if (objcTypes.ContainsKey (type.ObjCName)) { + var other = objcTypes[type.ObjCName]; + throw new ArgumentException (string.Format ("Multiple types ({0} and {1}) registered with the same Objective-C name: {2}", type.CliName, other.CliName, type.ObjCName)); + } + objcTypes.Add (type.ObjCName, type); cliTypes.Add (type.CliName, type); } diff --git a/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedContent.cs b/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedContent.cs index d62cc6a8e7..a1bc4b6e64 100644 --- a/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedContent.cs +++ b/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedContent.cs @@ -57,18 +57,13 @@ namespace MonoDevelop.MacDev.XcodeSyncing public override void SyncOut (XcodeSyncContext context) { - FilePath target = context.ProjectDir.Combine (targetRelative); + var target = context.ProjectDir.Combine (targetRelative); var dir = target.ParentDirectory; if (!Directory.Exists (dir)) Directory.CreateDirectory (dir); if (File.Exists (target)) File.Delete (target); - try { - var result = Mono.Unix.Native.Syscall.link (source, target); - Mono.Unix.UnixMarshal.ThrowExceptionForLastErrorIf (result); - } catch { - File.Copy (source, target); - } + File.Copy (source, target); context.UpdateSyncTime (targetRelative); } |