public void SaveSettings() { try { SettingsManager settingsManager = new ShellSettingsManager(this.ServiceProvider); WritableSettingsStore settingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings); settingsStore.SetBoolean(COLLECTION_GROUP, DISPLAY_ON_BUILD_START, this.PluginSettings.DisplayOnBuildStart); settingsStore.SetBoolean(COLLECTION_GROUP, DISPLAY_ON_SOLUTION_CHANGE, this.PluginSettings.DisplayOnSolutionChange); settingsStore.SetBoolean(COLLECTION_GROUP, DISPLAY_ON_STARTUP, this.PluginSettings.DisplayOnStartup); settingsStore.SetBoolean(COLLECTION_GROUP, OVERRIDE_VS_OUTPUT_WINDOW, this.PluginSettings.OverrideVSOutputWindow); settingsStore.SetBoolean(COLLECTION_GROUP, ENABLE_QUICK_SYNC, this.PluginSettings.EnableQuickSync); CustomColumnInfoCompressor compressor = new CustomColumnInfoCompressor(); string visualContents = compressor.Compress(this.PluginSettings.VisualSettings); settingsStore.SetString(COLLECTION_GROUP, VISUAL_SETTINGS, visualContents); } catch (Exception e) { // Do nothing } }
public void PreLoadSettings(IServiceProvider serviceProvider) { this.ServiceProvider = serviceProvider; SettingsManager settingsManager = new ShellSettingsManager(serviceProvider); WritableSettingsStore settingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings); this.PluginSettings = new ProjectHeroSettings(); if (!settingsStore.CollectionExists(COLLECTION_GROUP)) { settingsStore.CreateCollection(COLLECTION_GROUP); } if (!settingsStore.PropertyExists(COLLECTION_GROUP, DISPLAY_ON_BUILD_START)) { settingsStore.SetBoolean(COLLECTION_GROUP, DISPLAY_ON_BUILD_START, true); } this.PluginSettings.DisplayOnBuildStart = settingsStore.GetBoolean(COLLECTION_GROUP, DISPLAY_ON_BUILD_START, true); if (!settingsStore.PropertyExists(COLLECTION_GROUP, DISPLAY_ON_SOLUTION_CHANGE)) { settingsStore.SetBoolean(COLLECTION_GROUP, DISPLAY_ON_SOLUTION_CHANGE, true); } this.PluginSettings.DisplayOnSolutionChange = settingsStore.GetBoolean(COLLECTION_GROUP, DISPLAY_ON_SOLUTION_CHANGE, true); if (!settingsStore.PropertyExists(COLLECTION_GROUP, DISPLAY_ON_STARTUP)) { settingsStore.SetBoolean(COLLECTION_GROUP, DISPLAY_ON_STARTUP, true); } this.PluginSettings.DisplayOnStartup = settingsStore.GetBoolean(COLLECTION_GROUP, DISPLAY_ON_STARTUP, true); if (!settingsStore.PropertyExists(COLLECTION_GROUP, OVERRIDE_VS_OUTPUT_WINDOW)) { settingsStore.SetBoolean(COLLECTION_GROUP, OVERRIDE_VS_OUTPUT_WINDOW, true); } this.PluginSettings.OverrideVSOutputWindow = settingsStore.GetBoolean(COLLECTION_GROUP, OVERRIDE_VS_OUTPUT_WINDOW, true); if (!settingsStore.PropertyExists(COLLECTION_GROUP, ENABLE_QUICK_SYNC)) { settingsStore.SetBoolean(COLLECTION_GROUP, ENABLE_QUICK_SYNC, false); } this.PluginSettings.EnableQuickSync = settingsStore.GetBoolean(COLLECTION_GROUP, ENABLE_QUICK_SYNC, false); if (!settingsStore.PropertyExists(COLLECTION_GROUP, VISUAL_SETTINGS)) { settingsStore.SetString(COLLECTION_GROUP, VISUAL_SETTINGS, NULL); } else { string visualSettings = settingsStore.GetString(COLLECTION_GROUP, VISUAL_SETTINGS); CustomColumnInfoCompressor decompressor = new CustomColumnInfoCompressor(); List <ColumnInformation> columns = decompressor.Decompress(visualSettings); if (columns != null) { this.PluginSettings.VisualSettings = new List <ColumnInformation>(columns); } } this.IsSettingsLoaded = true; }