diff options
Diffstat (limited to 'main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs')
-rw-r--r-- | main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs index 0a33c84717..9193618b35 100644 --- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs +++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs @@ -28,6 +28,7 @@ using System; +using System.Linq; using System.Collections.Generic; using System.ComponentModel; @@ -43,6 +44,7 @@ using MonoDevelop.DesignerSupport; using Gtk; using Gdk; using MonoDevelop.Ide; +using Microsoft.CodeAnalysis; namespace MonoDevelop.GtkCore.GuiBuilder { @@ -90,7 +92,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder } } - void ISupportsProjectReload.Update (Project project) + void ISupportsProjectReload.Update (MonoDevelop.Projects.Project project) { if (gproject != null && gproject.Project == project) return; @@ -101,7 +103,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder CloseDesigner (); CloseProject (); if (project != null) { - GuiBuilderWindow w = GuiBuilderDisplayBinding.GetWindow (this.ContentName); + GuiBuilderWindow w = GuiBuilderDisplayBinding.GetWindow (this.ContentName, project); if (w != null) { AttachWindow (w); if (designerStatus != null) @@ -325,16 +327,16 @@ namespace MonoDevelop.GtkCore.GuiBuilder codeBinder.UpdateSignal (args.OldSignal, args.Signal); } - public override void Save (string fileName) + public override void Save (FileSaveInformation fileSaveInformation) { - base.Save (fileName); + base.Save (fileSaveInformation); if (designer == null) return; string oldBuildFile = GuiBuilderService.GetBuildCodeFileName (gproject.Project, window.RootWidget.Name); - codeBinder.UpdateBindings (fileName); + codeBinder.UpdateBindings (fileSaveInformation.FileName); if (!ErrorMode) { if (designer != null) designer.Save (); @@ -369,12 +371,13 @@ namespace MonoDevelop.GtkCore.GuiBuilder var cls = codeBinder.GetClass (); if (cls == null) return; - foreach (var met in cls.Methods) { - if (met.Name == signal.Handler) { - ShowPage (0); - JumpTo (met.Region.BeginLine, met.Region.BeginColumn); - break; - } + var met = cls + .GetMembers (signal.Handler) + .OfType<IMethodSymbol> () + .FirstOrDefault (); + if (met != null) { + ShowPage (0); + IdeApp.ProjectOperations.JumpToDeclaration (met); } } @@ -490,7 +493,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder if (node.Reference == null) return; - ProjectReference pref; + MonoDevelop.Projects.ProjectReference pref; // If the class name includes an assembly name it means that the // widget is implemented in another assembly, not in the one that @@ -506,16 +509,16 @@ namespace MonoDevelop.GtkCore.GuiBuilder if (asm == null) return; if (gproject.Project.AssemblyContext.GetPackagesFromFullName (asm).Length > 0) { - pref = new ProjectReference (ReferenceType.Package, asm); + pref = new MonoDevelop.Projects.ProjectReference (ReferenceType.Package, asm); } else { asm = gproject.Project.AssemblyContext.GetAssemblyLocation (asm, gproject.Project.TargetFramework); - pref = new ProjectReference (ReferenceType.Assembly, asm); + pref = new MonoDevelop.Projects.ProjectReference (ReferenceType.Assembly, asm); } } else - pref = new ProjectReference (node.ReferenceType, node.Reference); + pref = new MonoDevelop.Projects.ProjectReference (node.ReferenceType, node.Reference); - foreach (ProjectReference pr in gproject.Project.References) { + foreach (var pr in gproject.Project.References) { if (pr.Reference == pref.Reference) return; } |