diff options
author | Marius Ungureanu <marius.ungureanu@xamarin.com> | 2016-01-15 14:24:01 +0300 |
---|---|---|
committer | Marius Ungureanu <marius.ungureanu@xamarin.com> | 2016-01-15 14:24:01 +0300 |
commit | fd387b94d12cda4244df09e2f85e2606e1c0e2d6 (patch) | |
tree | bcf2c04d08ce33678c33b2a1a2b443730063ca1e /main/src/addins/MonoDevelop.GtkCore | |
parent | 4ebeb70f0cdd9e9724080d327e6a8f6168af1e90 (diff) | |
parent | cea70d807fd207467097b7c10d86a6260a6a6958 (diff) |
Merge remote-tracking branch 'origin/master' into roslyn-dark-skin
Diffstat (limited to 'main/src/addins/MonoDevelop.GtkCore')
11 files changed, 69 insertions, 87 deletions
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/GtkDesignerOptionsPanelWidget.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/GtkDesignerOptionsPanelWidget.cs index cce24542b0..41f1b27042 100644 --- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/GtkDesignerOptionsPanelWidget.cs +++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/GtkDesignerOptionsPanelWidget.cs @@ -26,7 +26,7 @@ using System; using MonoDevelop.GtkCore.GuiBuilder; -using Gtk; +using MonoDevelop.Components; using MonoDevelop.Ide.Gui.Dialogs; namespace MonoDevelop.GtkCore.Dialogs @@ -35,7 +35,7 @@ namespace MonoDevelop.GtkCore.Dialogs { GtkDesignerOptionsPanelWidget widget; - public override Widget CreatePanelWidget () + public override Control CreatePanelWidget () { widget = new GtkDesignerOptionsPanelWidget (); widget.AutoSwitchLayout = GuiBuilderService.AutoSwitchGuiLayout; diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs index 4fb717ece7..794b08476b 100644 --- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs +++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs @@ -29,7 +29,8 @@ using Gtk; - + +using MonoDevelop.Components; using MonoDevelop.Core; using MonoDevelop.Projects; using MonoDevelop.Ide.Gui.Dialogs; @@ -121,7 +122,7 @@ namespace MonoDevelop.GtkCore.Dialogs WidgetBuilderOptionPanelWidget widget; - public override Widget CreatePanelWidget() + public override Control CreatePanelWidget() { return (widget = new WidgetBuilderOptionPanelWidget (ConfiguredProject)); } diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs index b122cf3de6..5eae8f19fd 100644 --- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs +++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs @@ -81,7 +81,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder return db != null; } - public IViewContent CreateContent (FilePath fileName, string mimeType, MonoDevelop.Projects.Project ownerProject) + public ViewContent CreateContent (FilePath fileName, string mimeType, MonoDevelop.Projects.Project ownerProject) { excludeThis = true; var db = DisplayBindingService.GetDefaultViewBinding (fileName, mimeType, ownerProject); diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs index 3e16e11f17..ba794c06f8 100644 --- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs +++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs @@ -37,7 +37,7 @@ using MonoDevelop.Components.Commands; using MonoDevelop.DesignerSupport; using Microsoft.CodeAnalysis; using MonoDevelop.Ide; - +using System.Threading.Tasks; namespace MonoDevelop.GtkCore.GuiBuilder { @@ -50,7 +50,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder Stetic.ActionGroupInfo groupInfo; string groupName; - public ActionGroupView (IViewContent content, Stetic.ActionGroupInfo group, GuiBuilderProject project): base (content) + public ActionGroupView (ViewContent content, Stetic.ActionGroupInfo group, GuiBuilderProject project): base (content) { groupName = group.Name; this.project = project; @@ -140,11 +140,11 @@ namespace MonoDevelop.GtkCore.GuiBuilder codeBinder.TargetObject = designer.RootComponent; } - public override void Save (FileSaveInformation fileSaveInformation) + public override async Task Save (FileSaveInformation fileSaveInformation) { string oldBuildFile = GuiBuilderService.GetBuildCodeFileName (project.Project, groupInfo.Name); - base.Save (fileSaveInformation); + await base.Save (fileSaveInformation); if (designer == null) return; @@ -189,8 +189,6 @@ namespace MonoDevelop.GtkCore.GuiBuilder void OnGroupModified (object s, EventArgs a) { - if (designer.Modified) - OnContentChanged (a); IsDirty = designer.Modified; } @@ -204,10 +202,10 @@ namespace MonoDevelop.GtkCore.GuiBuilder codeBinder.UpdateSignal (a.OldSignal, a.Signal); } - void OnBindField (object s, EventArgs args) + async void OnBindField (object s, EventArgs args) { if (designer.SelectedAction != null) { - codeBinder.BindToField (designer.SelectedAction); + await codeBinder.BindToField (designer.SelectedAction); } } } diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs index 6e49af37e2..3076ef4d8d 100644 --- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs +++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs @@ -47,6 +47,7 @@ using MonoDevelop.CSharp.Refactoring; using MonoDevelop.Refactoring; using System.Xml.XPath; using System.IO; +using System.Threading.Tasks; namespace MonoDevelop.GtkCore.GuiBuilder { @@ -212,7 +213,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder } /// Adds a field to the class - public void BindToField (Stetic.Component obj) + public async Task BindToField (Stetic.Component obj) { if (targetObject == null) return; @@ -224,11 +225,11 @@ namespace MonoDevelop.GtkCore.GuiBuilder return; var location = GetSourceLocation(cls); - var doc = IdeApp.Workbench.OpenDocument (location.SourceTree.FilePath, project, true); + var doc = await IdeApp.Workbench.OpenDocument (location.SourceTree.FilePath, project, true); var editor = doc.Editor; if (editor != null) { - CodeGenerationService.AddNewMember (project, cls, cls.Locations.First (), GetFieldCode (cls, obj, name)); + await CodeGenerationService.AddNewMember (project, cls, cls.Locations.First (), GetFieldCode (cls, obj, name)); } } diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs index c08d33c374..2961eb94ca 100644 --- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs +++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs @@ -30,6 +30,7 @@ using System; using System.Linq; using Gtk; +using MonoDevelop.Components; using MonoDevelop.Core; using MonoDevelop.Ide.Gui.Content; using MonoDevelop.Ide.Gui; @@ -37,16 +38,17 @@ using MonoDevelop.Components.Commands; using MonoDevelop.Ide; using System.Collections.Generic; using MonoDevelop.Ide.Editor; +using System.Threading.Tasks; namespace MonoDevelop.GtkCore.GuiBuilder { - public class CombinedDesignView : AbstractViewContent + public class CombinedDesignView : ViewContent { - IViewContent content; + ViewContent content; Gtk.Widget control; List<TabView> tabs = new List<TabView> (); - public CombinedDesignView (IViewContent content) + public CombinedDesignView (ViewContent content) { this.content = content; /* This code causes that chagnes in a version control view always select the source code view. @@ -55,7 +57,6 @@ namespace MonoDevelop.GtkCore.GuiBuilder ShowPage (0); }; }*/ - content.ContentChanged += new EventHandler (OnTextContentChanged); content.DirtyChanged += new EventHandler (OnTextDirtyChanged); CommandRouterContainer crc = new CommandRouterContainer (content.Control, content, true); @@ -87,7 +88,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder public bool HasPage (Gtk.Widget page) { - return tabs.Any (p => p.Control == page); + return tabs.Any (p => p.Control.GetNativeWidget<Gtk.Widget> () == page); } public void RemoveButton (Gtk.Widget page) @@ -108,17 +109,21 @@ namespace MonoDevelop.GtkCore.GuiBuilder ShowPage (0);*/ } - public override MonoDevelop.Projects.Project Project { - get { return base.Project; } - set { - base.Project = value; - content.Project = value; + protected override void OnSetProject (Projects.Project project) + { + base.OnSetProject (project); + content.Project = project; + } + + public override ProjectReloadCapability ProjectReloadCapability { + get { + return content.ProjectReloadCapability; } } - protected override void OnWorkbenchWindowChanged (EventArgs e) + protected override void OnWorkbenchWindowChanged () { - base.OnWorkbenchWindowChanged (e); + base.OnWorkbenchWindowChanged (); content.WorkbenchWindow = WorkbenchWindow; if (WorkbenchWindow != null) { foreach (TabView view in tabs) { @@ -161,7 +166,6 @@ namespace MonoDevelop.GtkCore.GuiBuilder public override void Dispose () { - content.ContentChanged -= new EventHandler (OnTextContentChanged); content.DirtyChanged -= new EventHandler (OnTextDirtyChanged); IdeApp.Workbench.ActiveDocumentChanged -= new EventHandler (OnActiveDocumentChanged); content.Dispose (); @@ -172,19 +176,19 @@ namespace MonoDevelop.GtkCore.GuiBuilder base.Dispose (); } - public override void Load (FileOpenInformation fileOpenInformation) + public override Task Load (FileOpenInformation fileOpenInformation) { ContentName = fileOpenInformation.FileName; - content.Load (ContentName); + return content.Load (ContentName); } - public override Gtk.Widget Control { + public override Control Control { get { return control; } } - public override void Save (FileSaveInformation fileSaveInformation) + public override Task Save (FileSaveInformation fileSaveInformation) { - content.Save (fileSaveInformation); + return content.Save (fileSaveInformation); } public override bool IsDirty { @@ -211,14 +215,9 @@ namespace MonoDevelop.GtkCore.GuiBuilder { } - void OnTextContentChanged (object s, EventArgs args) - { - OnContentChanged (args); - } - void OnTextDirtyChanged (object s, EventArgs args) { - OnDirtyChanged (args); + OnDirtyChanged (); } void OnActiveDocumentChanged (object s, EventArgs args) @@ -231,7 +230,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder { } - public override object GetContent (Type type) + protected override object OnGetContent (Type type) { // if (type == typeof(IEditableTextBuffer)) { // // Intercept the IPositionable interface, since we need to @@ -242,7 +241,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder // return null; // } // - return base.GetContent (type) ?? (content !=null ? content.GetContent (type) : null); + return base.OnGetContent (type) ?? (content !=null ? content.GetContent (type) : null); } public void JumpTo (int line, int column) @@ -255,7 +254,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder } } - class TabView: AbstractBaseViewContent, IAttachableViewContent + class TabView: BaseViewContent { string label; Gtk.Widget content; @@ -266,32 +265,14 @@ namespace MonoDevelop.GtkCore.GuiBuilder this.content = content; } - public override object GetContent (Type type) + protected override object OnGetContent (Type type) { if (type.IsInstanceOfType (Control)) return Control; - return base.GetContent (type); + return base.OnGetContent (type); } - #region IAttachableViewContent implementation - public virtual void Selected () - { - } - - public virtual void Deselected () - { - } - - public virtual void BeforeSave () - { - } - - public virtual void BaseContentChanged () - { - } - #endregion - - public override Widget Control { + public override Control Control { get { return content; } diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderDisplayBinding.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderDisplayBinding.cs index 65cde80d96..c9f93016f6 100644 --- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderDisplayBinding.cs +++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderDisplayBinding.cs @@ -68,7 +68,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder return db != null; } - public IViewContent CreateContent (MonoDevelop.Core.FilePath fileName, string mimeType, Project ownerProject) + public ViewContent CreateContent (MonoDevelop.Core.FilePath fileName, string mimeType, Project ownerProject) { excludeThis = true; var db = DisplayBindingService.GetDefaultViewBinding (fileName, mimeType, ownerProject); diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs index b511d9fd7e..c765892291 100644 --- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs +++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs @@ -168,7 +168,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder } } - public static ActionGroupView OpenActionGroup (Project project, Stetic.ActionGroupInfo group) + public static async Task<ActionGroupView> OpenActionGroup (Project project, Stetic.ActionGroupInfo group) { GuiBuilderProject p = GtkDesignInfo.FromProject (project).GuiBuilderProject ; string file = p != null ? p.GetSourceCodeFile (group) : null; @@ -176,7 +176,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder file = ActionGroupDisplayBinding.BindToClass (project, group); } - Document doc = IdeApp.Workbench.OpenDocument (file, true); + Document doc = await IdeApp.Workbench.OpenDocument (file, true); if (doc != null) { ActionGroupView view = doc.GetContent<ActionGroupView> (); if (view != null) { 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 a472231a22..c0ae7f6a29 100644 --- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs +++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs @@ -38,17 +38,18 @@ using MonoDevelop.Ide.Gui; using MonoDevelop.Ide.Commands; using MonoDevelop.Components.Commands; using MonoDevelop.Projects; -using MonoDevelop.DesignerSupport.Toolbox; +using MonoDevelop.DesignerSupport.Toolbox; using MonoDevelop.DesignerSupport; using Gtk; using Gdk; using MonoDevelop.Ide; using Microsoft.CodeAnalysis; +using System.Threading.Tasks; namespace MonoDevelop.GtkCore.GuiBuilder { - public class GuiBuilderView : CombinedDesignView, ISupportsProjectReload + public class GuiBuilderView : CombinedDesignView { Stetic.WidgetDesigner designer; Stetic.ActionGroupDesigner actionsBox; @@ -63,7 +64,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder string rootName; object designerStatus; - public GuiBuilderView (IViewContent content, GuiBuilderWindow window): base (content) + public GuiBuilderView (ViewContent content, GuiBuilderWindow window): base (content) { rootName = window.Name; @@ -86,14 +87,16 @@ namespace MonoDevelop.GtkCore.GuiBuilder LoadDesigner (); } - ProjectReloadCapability ISupportsProjectReload.ProjectReloadCapability { + public override ProjectReloadCapability ProjectReloadCapability { get { return ProjectReloadCapability.Full; } } - - void ISupportsProjectReload.Update (MonoDevelop.Projects.Project project) + + protected override void OnSetProject (Projects.Project project) { + base.OnSetProject (project); + if (gproject != null && gproject.Project == project) return; @@ -296,21 +299,19 @@ namespace MonoDevelop.GtkCore.GuiBuilder void OnWindowModifiedChanged (object s, EventArgs args) { - if (IsDirty) - OnContentChanged (args); - OnDirtyChanged (args); + OnDirtyChanged (); } - void OnBindWidgetField (object o, EventArgs a) + async void OnBindWidgetField (object o, EventArgs a) { if (designer.Selection != null) - codeBinder.BindToField (designer.Selection); + await codeBinder.BindToField (designer.Selection); } - void OnBindActionField (object o, EventArgs a) + async void OnBindActionField (object o, EventArgs a) { if (actionsBox.SelectedAction != null) - codeBinder.BindToField (actionsBox.SelectedAction); + await codeBinder.BindToField (actionsBox.SelectedAction); } void OnSignalAdded (object sender, Stetic.ComponentSignalEventArgs args) @@ -327,9 +328,9 @@ namespace MonoDevelop.GtkCore.GuiBuilder codeBinder.UpdateSignal (args.OldSignal, args.Signal); } - public override void Save (FileSaveInformation fileSaveInformation) + public override async Task Save (FileSaveInformation fileSaveInformation) { - base.Save (fileSaveInformation); + await base.Save (fileSaveInformation); if (designer == null) return; diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs index 5b0fd87a2f..ad6f2b722b 100644 --- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs +++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs @@ -86,14 +86,14 @@ namespace MonoDevelop.GtkCore.NodeBuilders class ActionGroupCommandHandler: NodeCommandHandler { - public override void ActivateItem () + public override async void ActivateItem () { GuiBuilderWindow w = (GuiBuilderWindow) CurrentNode.GetParentDataItem (typeof(GuiBuilderWindow), false); if (w != null) { if (w.SourceCodeFile == FilePath.Null && !w.BindToClass ()) return; - Document doc = IdeApp.Workbench.OpenDocument (w.SourceCodeFile, true); + Document doc = await IdeApp.Workbench.OpenDocument (w.SourceCodeFile, true); if (doc != null) { GuiBuilderView view = doc.GetContent<GuiBuilderView> (); if (view != null) @@ -103,7 +103,7 @@ namespace MonoDevelop.GtkCore.NodeBuilders else { Project project = (Project) CurrentNode.GetParentDataItem (typeof(Project), false); Stetic.ActionGroupInfo group = (Stetic.ActionGroupInfo) CurrentNode.DataItem; - GuiBuilderService.OpenActionGroup (project, group); + await GuiBuilderService.OpenActionGroup (project, group); } } diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs index c0d692977c..c2710e2cf2 100644 --- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs +++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs @@ -114,13 +114,13 @@ namespace MonoDevelop.GtkCore.NodeBuilders class GladeWindowCommandHandler: NodeCommandHandler { - public override void ActivateItem () + public override async void ActivateItem () { GuiBuilderWindow w = (GuiBuilderWindow) CurrentNode.DataItem; if (w.SourceCodeFile == FilePath.Null && !w.BindToClass ()) return; - Document doc = IdeApp.Workbench.OpenDocument (w.SourceCodeFile, true); + Document doc = await IdeApp.Workbench.OpenDocument (w.SourceCodeFile, true); if (doc != null) { GuiBuilderView view = doc.GetContent<GuiBuilderView> (); if (view != null) |