/// <summary> /// Determines the type of merge to perform, based on the local settings file. /// </summary> /// <param name="settings">The settings file</param> /// <param name="environment">The environment.</param> /// <returns>Returns the merge type.</returns> private static string DetermineMergeType(Settings settings, StyleCopEnvironment environment) { Param.AssertNotNull(settings, "settings"); Param.Ignore(environment); StringProperty mergeTypeProperty = settings.GlobalSettings.GetProperty(SettingsMerger.MergeSettingsFilesProperty) as StringProperty; string mergeType = SettingsMerger.MergeStyleParent; if (mergeTypeProperty != null) { mergeType = mergeTypeProperty.Value; } // If the merge style is set to link but the current environment doesn't support linking, change it to parent. if ((environment == null || !environment.SupportsLinkedSettings) && string.CompareOrdinal(mergeType, SettingsMerger.MergeStyleLinked) == 0) { mergeType = SettingsMerger.MergeStyleParent; } return(mergeType); }
/// <summary> /// Refreshes the merged override state of properties on the page. /// </summary> public void RefreshSettingsOverrideState() { this.writeCacheParentProperty = this.tabControl.ParentSettings == null ? null : this.tabControl.ParentSettings.GlobalSettings.GetProperty(this.writeCachePropertyDescriptor.PropertyName) as BooleanProperty; this.maxViolationCountParentProperty = this.tabControl.ParentSettings == null ? null : this.tabControl.ParentSettings.GlobalSettings.GetProperty(this.maxViolationCountPropertyDescriptor.PropertyName) as IntProperty; this.cultureParentProperty = this.tabControl.ParentSettings == null ? null : this.tabControl.ParentSettings.GlobalSettings.GetProperty(this.culturePropertyDescriptor.PropertyName) as StringProperty; this.violationsAsErrorsParentProperty = this.tabControl.ParentSettings == null ? null : this.tabControl.ParentSettings.GlobalSettings.GetProperty( this.violationsAsErrorsPropertyDescriptor.PropertyName) as BooleanProperty; this.SetBoldState(); }
/// <summary> /// Initializes the page. /// </summary> /// <param name="propertyControl"> /// The tab control object. /// </param> public void Initialize(PropertyControl propertyControl) { Param.AssertNotNull(propertyControl, "propertyControl"); this.tabControl = propertyControl; // Get the merge style setting. StringProperty mergeTypeProperty = this.tabControl.LocalSettings.GlobalSettings.GetProperty(SettingsMerger.MergeSettingsFilesProperty) as StringProperty; string mergeType = mergeTypeProperty == null ? SettingsMerger.MergeStyleParent : mergeTypeProperty.Value; // If the merge style is set to link but the current environment doesn't support linking, change it to parent. if (!this.tabControl.Core.Environment.SupportsLinkedSettings && string.CompareOrdinal(mergeType, SettingsMerger.MergeStyleLinked) == 0) { mergeType = SettingsMerger.MergeStyleParent; this.disableLinking = true; } if (string.CompareOrdinal(mergeType, SettingsMerger.MergeStyleNone) == 0) { this.noMerge.Checked = true; } else if (string.CompareOrdinal(mergeType, SettingsMerger.MergeStyleLinked) == 0) { this.mergeWithLinkedFile.Checked = true; StringProperty linkedSettingsFileProperty = this.tabControl.LocalSettings.GlobalSettings.GetProperty(SettingsMerger.LinkedSettingsProperty) as StringProperty; if (linkedSettingsFileProperty != null && !string.IsNullOrEmpty(linkedSettingsFileProperty.Value)) { // This mode assumes that StyleCop is running in a file-based environment. string linkedSettingsFile = Environment.ExpandEnvironmentVariables(linkedSettingsFileProperty.Value); if (linkedSettingsFile.StartsWith(".", StringComparison.Ordinal)) { linkedSettingsFile = Utils.MakeAbsolutePath(Path.GetDirectoryName(this.tabControl.LocalSettings.Location), linkedSettingsFile); } this.linkedFilePath.Text = linkedSettingsFile; } } else { this.mergeWithParents.Checked = true; } this.EnableDisable(); bool defaultSettings = this.tabControl.LocalSettings.DefaultSettings; // Disable the parent link controls if this is the default settings file. if (defaultSettings) { this.mergeWithParents.Enabled = false; this.editParentSettingsFile.Enabled = false; this.mergeWithLinkedFile.Enabled = false; this.locationLabel.Enabled = false; this.linkedFilePath.Enabled = false; this.browse.Enabled = false; this.editLinkedSettingsFile.Enabled = false; } if (!this.noMerge.Checked && defaultSettings) { this.noMerge.Checked = true; } // Reset the dirty flag to false now. this.dirty = false; this.tabControl.DirtyChanged(); }
/// <summary> /// Initializes the page. /// </summary> /// <param name="propertyControl"> /// The tab control object. /// </param> public void Initialize(PropertyControl propertyControl) { Param.AssertNotNull(propertyControl, "propertyControl"); this.tabControl = propertyControl; // Get the cache setting. this.writeCachePropertyDescriptor = this.tabControl.Core.PropertyDescriptors["WriteCache"] as PropertyDescriptor <bool>; this.writeCacheParentProperty = this.tabControl.ParentSettings == null ? null : this.tabControl.ParentSettings.GlobalSettings.GetProperty(this.writeCachePropertyDescriptor.PropertyName) as BooleanProperty; BooleanProperty mergedWriteCacheProperty = this.tabControl.MergedSettings == null ? null : this.tabControl.MergedSettings.GlobalSettings.GetProperty(this.writeCachePropertyDescriptor.PropertyName) as BooleanProperty; this.enableCache.Checked = mergedWriteCacheProperty == null ? this.writeCachePropertyDescriptor.DefaultValue : mergedWriteCacheProperty.Value; // Max Violation Count this.maxViolationCountPropertyDescriptor = this.tabControl.Core.PropertyDescriptors["MaxViolationCount"] as PropertyDescriptor <int>; this.maxViolationCountParentProperty = this.tabControl.ParentSettings == null ? null : this.tabControl.ParentSettings.GlobalSettings.GetProperty(this.maxViolationCountPropertyDescriptor.PropertyName) as IntProperty; IntProperty mergedMaxViolationCountProperty = this.tabControl.MergedSettings == null ? null : this.tabControl.MergedSettings.GlobalSettings.GetProperty( this.maxViolationCountPropertyDescriptor.PropertyName) as IntProperty; this.maxViolationCountMaskedTextBox.Text = mergedMaxViolationCountProperty == null ? this.maxViolationCountPropertyDescriptor.DefaultValue.ToString(CultureInfo.InvariantCulture) : mergedMaxViolationCountProperty.Value.ToString(CultureInfo.InvariantCulture); // Culture this.culturePropertyDescriptor = this.tabControl.Core.PropertyDescriptors["Culture"] as PropertyDescriptor <string>; this.cultureParentProperty = this.tabControl.ParentSettings == null ? null : this.tabControl.ParentSettings.GlobalSettings.GetProperty(this.culturePropertyDescriptor.PropertyName) as StringProperty; StringProperty mergedCultureProperty = this.tabControl.MergedSettings == null ? null : this.tabControl.MergedSettings.GlobalSettings.GetProperty(this.culturePropertyDescriptor.PropertyName) as StringProperty; this.cultureComboBox.SelectedIndex = this.cultureComboBox.FindStringExact( mergedCultureProperty == null ? this.culturePropertyDescriptor.DefaultValue.ToString(CultureInfo.InvariantCulture) : mergedCultureProperty.Value.ToString(CultureInfo.InvariantCulture)); // Errors As Warnings this.violationsAsErrorsPropertyDescriptor = this.tabControl.Core.PropertyDescriptors["ViolationsAsErrors"] as PropertyDescriptor <bool>; this.violationsAsErrorsParentProperty = this.tabControl.ParentSettings == null ? null : this.tabControl.ParentSettings.GlobalSettings.GetProperty(this.violationsAsErrorsPropertyDescriptor.PropertyName) as BooleanProperty; BooleanProperty mergedViolationsAsErrorsProperty = this.tabControl.MergedSettings == null ? null : this.tabControl.MergedSettings.GlobalSettings.GetProperty( this.violationsAsErrorsPropertyDescriptor.PropertyName) as BooleanProperty; this.violationsAsErrorsCheckBox.Checked = mergedViolationsAsErrorsProperty == null ? this.violationsAsErrorsPropertyDescriptor.DefaultValue : mergedViolationsAsErrorsProperty.Value; this.SetBoldState(); // Reset the dirty flag to false now. this.dirty = false; this.tabControl.DirtyChanged(); }