diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs index 3cef15a8b4..54d71bf16b 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs @@ -270,29 +270,18 @@ namespace umbraco.controls var dirInfo = new DirectoryInfo(UmbracoContext.Current.Server.MapPath(SystemDirectories.Umbraco + "/images/umbraco")); var fileInfo = dirInfo.GetFiles(); - var spriteFileNames = new List(); - foreach (var iconClass in cms.businesslogic.CMSNode.DefaultIconClasses) - spriteFileNames.Add(IconClassToIconFileName(iconClass)); + var spriteFileNames = CMSNode.DefaultIconClasses.Select(IconClassToIconFileName).ToList(); - var diskFileNames = new List(); - foreach (var file in fileInfo) - diskFileNames.Add(FileNameToIconFileName(file)); + var diskFileNames = fileInfo.Select(FileNameToIconFileName).ToList(); var listOfIcons = new List(); - foreach (var iconClass in cms.businesslogic.CMSNode.DefaultIconClasses) + // .sprNew was never intended to be in the document type editor + foreach (var iconClass in CMSNode.DefaultIconClasses.Where(iconClass => iconClass.Equals(".sprNew", StringComparison.InvariantCultureIgnoreCase) == false)) { - // .sprNew was never intended to be in the document type editor - if (iconClass.ToLowerInvariant() == ".sprNew".ToLowerInvariant()) - continue; - - if (_contentType.IconUrl == iconClass) - { - AddSpriteListItem(iconClass, listOfIcons); - continue; - } - - if (UmbracoSettings.IconPickerBehaviour == IconPickerBehaviour.HideSpriteDuplicates + // Still shows the selected even if we tell it to hide sprite duplicates so as not to break an existing selection + if (_contentType.IconUrl.Equals(iconClass, StringComparison.InvariantCultureIgnoreCase) == false + && UmbracoSettings.IconPickerBehaviour == IconPickerBehaviour.HideSpriteDuplicates && diskFileNames.Contains(IconClassToIconFileName(iconClass))) continue; @@ -305,17 +294,14 @@ namespace umbraco.controls if (file.Name.ToLowerInvariant() == "sprites.png".ToLowerInvariant() || file.Name.ToLowerInvariant() == "sprites_ie6.gif".ToLowerInvariant()) continue; - var listItemValue = this.ResolveClientUrl(SystemDirectories.Umbraco + "/images/umbraco/" + file.Name); - if (_contentType.IconUrl == listItemValue) - { - AddFileListItem(file.Name, listItemValue, listOfIcons); - continue; - } - - if (UmbracoSettings.IconPickerBehaviour == IconPickerBehaviour.HideFileDuplicates + // Still shows the selected even if we tell it to hide file duplicates so as not to break an existing selection + if (_contentType.IconUrl.Equals(file.Name, StringComparison.InvariantCultureIgnoreCase) == false + && UmbracoSettings.IconPickerBehaviour == IconPickerBehaviour.HideFileDuplicates && spriteFileNames.Contains(FileNameToIconFileName(file))) continue; + var listItemValue = ResolveClientUrl(SystemDirectories.Umbraco + "/images/umbraco/" + file.Name); + AddFileListItem(file.Name, listItemValue, listOfIcons); } diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/create/nodetypeTasks.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/create/nodetypeTasks.cs index 569930ad06..07a7c7afd1 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/create/nodetypeTasks.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/create/nodetypeTasks.cs @@ -1,6 +1,8 @@ using System; +using System.Configuration; using System.Data; using System.Web.Security; +using Umbraco.Core; using umbraco.BusinessLogic; using umbraco.DataLayer; using umbraco.BasePages; @@ -43,7 +45,7 @@ namespace umbraco public bool Save() { var dt = cms.businesslogic.web.DocumentType.MakeNew(BusinessLogic.User.GetUser(_userID), Alias.Replace("'", "''")); - dt.IconUrl = "folder.gif"; + dt.IconUrl = UmbracoSettings.IconPickerBehaviour == IconPickerBehaviour.HideFileDuplicates ? ".sprTreeFolder" : "folder.gif"; // Create template? if (ParentID == 1)