From 7b8a0f7c461450c03806a3dae8ce591530470f6d Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sat, 5 Sep 2009 09:29:48 +0000 Subject: [PATCH] Disabled project resources in the python form designer. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@4880 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Project/Src/PythonDesignerLoader.cs | 5 +++++ .../Designer/PythonDesignerLoaderTestFixture.cs | 10 +++++++++- .../Project/Src/DesignerViewContent.cs | 6 +++--- .../Project/Src/Gui/ImageResourceEditorDialog.cs | 15 +++++++++------ .../Project/Src/Services/ImageResourceEditor.cs | 6 +++--- .../Src/Services/ProjectResourceService.cs | 6 ++++++ 6 files changed, 35 insertions(+), 13 deletions(-) diff --git a/src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerLoader.cs b/src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerLoader.cs index 368735a3e2..46c2d2d69e 100644 --- a/src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerLoader.cs +++ b/src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerLoader.cs @@ -47,6 +47,11 @@ namespace ICSharpCode.PythonBinding host.AddService(typeof(ComponentSerializationService), new CodeDomComponentSerializationService((IServiceProvider)host)); host.AddService(typeof(INameCreationService), new XmlDesignerLoader.NameCreationService(host)); host.AddService(typeof(IDesignerSerializationService), new DesignerSerializationService(host)); + + ProjectResourceService projectResourceService = host.GetService(typeof(ProjectResourceService)) as ProjectResourceService; + if (projectResourceService != null) { + projectResourceService.DesignerSupportsProjectResources = false; + } base.BeginLoad(host); } diff --git a/src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/PythonDesignerLoaderTestFixture.cs b/src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/PythonDesignerLoaderTestFixture.cs index 4a7ccc4982..b8578d1e93 100644 --- a/src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/PythonDesignerLoaderTestFixture.cs +++ b/src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/PythonDesignerLoaderTestFixture.cs @@ -61,6 +61,7 @@ namespace PythonBinding.Tests.Designer mockExtenderProviderService = new MockExtenderProviderService(); mockDesignerLoaderHost.AddService(typeof(IExtenderProviderService), mockExtenderProviderService); + mockDesignerLoaderHost.AddService(typeof(ProjectResourceService), new ProjectResourceService(new MockProjectContent())); mockEventBindingService = new MockEventBindingService(); mockDesignerLoaderHost.AddService(typeof(IEventBindingService), mockEventBindingService); @@ -121,7 +122,14 @@ namespace PythonBinding.Tests.Designer DesignerSerializationService service = mockDesignerLoaderHost.GetService(typeof(IDesignerSerializationService)) as DesignerSerializationService; Assert.IsNotNull(service); } - + + [Test] + public void ProjectResourceServiceDesignerDoesNotSupportProjectResources() + { + ProjectResourceService service = mockDesignerLoaderHost.GetService(typeof(ProjectResourceService)) as ProjectResourceService; + Assert.IsFalse(service.DesignerSupportsProjectResources); + } + [Test] public void RootDesignerComponentNameIsMainForm() { diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs index 6b9d4163ca..726f68da48 100644 --- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs +++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs @@ -305,7 +305,7 @@ namespace ICSharpCode.FormsDesigner designSurface.Loading += this.DesignerLoading; designSurface.Loaded += this.DesignerLoaded; designSurface.Flushed += this.DesignerFlushed; - designSurface.Unloading += this.DesingerUnloading; + designSurface.Unloading += this.DesignerUnloading; serviceContainer.AddService(typeof(System.ComponentModel.Design.IMenuCommandService), new ICSharpCode.FormsDesigner.Services.MenuCommandService(this.Control, designSurface)); ICSharpCode.FormsDesigner.Services.EventBindingService eventBindingService = new ICSharpCode.FormsDesigner.Services.EventBindingService(this, designSurface); @@ -404,7 +404,7 @@ namespace ICSharpCode.FormsDesigner designSurface.Loading -= this.DesignerLoading; designSurface.Loaded -= this.DesignerLoaded; designSurface.Flushed -= this.DesignerFlushed; - designSurface.Unloading -= this.DesingerUnloading; + designSurface.Unloading -= this.DesignerUnloading; IComponentChangeService componentChangeService = designSurface.GetService(typeof(IComponentChangeService)) as IComponentChangeService; if (componentChangeService != null) { @@ -492,7 +492,7 @@ namespace ICSharpCode.FormsDesigner Application.DoEvents(); } - void DesingerUnloading(object sender, EventArgs e) + void DesignerUnloading(object sender, EventArgs e) { LoggingService.Debug("Forms designer: DesignerLoader unloading..."); this.unloading = true; diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/ImageResourceEditorDialog.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/ImageResourceEditorDialog.cs index 75325946d4..6b164727c9 100644 --- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/ImageResourceEditorDialog.cs +++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/ImageResourceEditorDialog.cs @@ -38,7 +38,7 @@ namespace ICSharpCode.FormsDesigner.Gui #region Constructors - ImageResourceEditorDialog(IProject project, Type requiredResourceType) + ImageResourceEditorDialog(IProject project, Type requiredResourceType, bool designerSupportsProjectResources) : base() { if (requiredResourceType == null) @@ -56,10 +56,13 @@ namespace ICSharpCode.FormsDesigner.Gui this.importLocalResourceButton.DataBindings.Add("Enabled", this.localResourceRadioButton, "Checked"); this.projectResourcesTreeView.DataBindings.Add("Enabled", this.projectResourceRadioButton, "Checked"); + + this.projectResourceRadioButton.Visible = designerSupportsProjectResources; + this.projectResourcesTreeView.Visible = designerSupportsProjectResources; } public ImageResourceEditorDialog(IProject project, Type requiredResourceType, ProjectResourceInfo projectResource) - : this(project, requiredResourceType) + : this(project, requiredResourceType, true) { if (projectResource == null) throw new ArgumentNullException("projectResource"); @@ -81,8 +84,8 @@ namespace ICSharpCode.FormsDesigner.Gui this.projectTreeScanningBackgroundWorker.RunWorkerAsync(projectResource); } - public ImageResourceEditorDialog(IProject project, Image localResource) - : this(project, typeof(Image)) + public ImageResourceEditorDialog(IProject project, Image localResource, bool designerSupportsProjectResources) + : this(project, typeof(Image), designerSupportsProjectResources) { if (localResource != null) { this.localResourceRadioButton.Checked = true; @@ -94,8 +97,8 @@ namespace ICSharpCode.FormsDesigner.Gui this.projectTreeScanningBackgroundWorker.RunWorkerAsync(); } - public ImageResourceEditorDialog(IProject project, Icon localResource) - : this(project, typeof(Icon)) + public ImageResourceEditorDialog(IProject project, Icon localResource, bool designerSupportsProjectResources) + : this(project, typeof(Icon), designerSupportsProjectResources) { if (localResource != null) { this.localResourceRadioButton.Checked = true; diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/ImageResourceEditor.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/ImageResourceEditor.cs index 91f1131e81..75dc5dd961 100644 --- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/ImageResourceEditor.cs +++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/ImageResourceEditor.cs @@ -85,13 +85,13 @@ namespace ICSharpCode.FormsDesigner.Services IProject project = prs.ProjectContent.Project as IProject; ImageResourceEditorDialog dialog; - if (projectResource != null && Object.ReferenceEquals(projectResource.OriginalValue, value)) { + if (projectResource != null && Object.ReferenceEquals(projectResource.OriginalValue, value) && prs.DesignerSupportsProjectResources) { dialog = new ImageResourceEditorDialog(project, context.PropertyDescriptor.PropertyType, projectResource); } else { if (context.PropertyDescriptor.PropertyType == typeof(Image)) { - dialog = new ImageResourceEditorDialog(project, value as Image); + dialog = new ImageResourceEditorDialog(project, value as Image, prs.DesignerSupportsProjectResources); } else if (context.PropertyDescriptor.PropertyType == typeof(Icon)) { - dialog = new ImageResourceEditorDialog(project, value as Icon); + dialog = new ImageResourceEditorDialog(project, value as Icon, prs.DesignerSupportsProjectResources); } else { throw new InvalidOperationException("ImageResourceEditor called on unsupported property type: " + context.PropertyDescriptor.PropertyType.ToString()); } diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/ProjectResourceService.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/ProjectResourceService.cs index 5a2e5238ab..b5c51c9553 100644 --- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/ProjectResourceService.cs +++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/ProjectResourceService.cs @@ -27,6 +27,7 @@ namespace ICSharpCode.FormsDesigner.Services IProjectContent projectContent; string stringLiteralDelimiter; + bool designerSupportsProjectResources = true; public ProjectResourceService(IProjectContent projectContent) { @@ -47,6 +48,11 @@ namespace ICSharpCode.FormsDesigner.Services } } + public bool DesignerSupportsProjectResources { + get { return designerSupportsProjectResources; } + set { designerSupportsProjectResources = value; } + } + /// /// Gets the string literal delimiter for the current language /// by generating code for a known literal.