private void SetActiveClicked(object sender, RoutedEventArgs e) { if (this.disabled) { return; } try { ThreadHelper.ThrowIfNotOnUIThread(); var selectedIndex = this.DisplayedProfiles.SelectedIndex; if (selectedIndex >= 0) { // Can't rely on selected Index to get the item as it doesn't handle headers correctly. ProfileSummary selectedItem = (ProfileSummary)this.DisplayedProfiles.SelectedItem; var selectedProfile = this.SettingsProvider.ActualSettings.ProfilesList.FirstOrDefault(p => p.Name == selectedItem.Name && p.ProjectType == selectedItem.ProjectType); if (!selectedProfile.IsActive) { this.SettingsProvider.ActualSettings.ActiveProfileNames[selectedProfile.ProjectType] = selectedProfile.Name; this.SettingsProvider.Save(); this.SettingsProvider.ActualSettings.RefreshProfilesList(); this.DisplayedProfiles.SelectedIndex = selectedIndex; } } } catch (Exception exc) { SharedRapidXamlPackage.Logger?.RecordException(exc); } }
private void DeleteClicked(object sender, RoutedEventArgs e) { if (this.disabled) { return; } try { ThreadHelper.ThrowIfNotOnUIThread(); if (this.DisplayedProfiles.SelectedIndex >= 0) { ProfileSummary selectedItem = (ProfileSummary)this.DisplayedProfiles.SelectedItem; var selectedProfile = this.SettingsProvider.ActualSettings.ProfilesList[this.DisplayedProfiles.SelectedIndex]; var msgResult = MessageBox.Show( StringRes.Prompt_ConfirmDeleteProfileMessage.WithParams(selectedItem.Name), StringRes.Prompt_ConfirmDeleteProfileTitle, MessageBoxButton.YesNo, MessageBoxImage.Warning); if (msgResult == MessageBoxResult.Yes) { this.SettingsProvider.ActualSettings.Profiles.RemoveAt(this.DisplayedProfiles.SelectedIndex); if (selectedProfile.Name == this.SettingsProvider.ActualSettings.ActiveProfileNames[selectedProfile.ProjectType]) { var firstProfile = this.SettingsProvider.ActualSettings.Profiles .FirstOrDefault(p => p.ProjectTypeDescription == selectedProfile.ProjectType); this.SettingsProvider.ActualSettings.ActiveProfileNames[selectedProfile.ProjectType] = firstProfile?.Name ?? string.Empty; } this.SettingsProvider.Save(); this.SettingsProvider.ActualSettings.RefreshProfilesList(); } } } catch (Exception exc) { SharedRapidXamlPackage.Logger?.RecordException(exc); } }
private void AddClicked(object sender, RoutedEventArgs e) { if (this.disabled) { return; } try { ThreadHelper.ThrowIfNotOnUIThread(); var selectedIndex = this.DisplayedProfiles.SelectedIndex; ProfileSummary selectedItem = (ProfileSummary)this.DisplayedProfiles.SelectedItem; this.SettingsProvider.ActualSettings.Profiles.Add(Profile.CreateNew(selectedItem.ProjectType.AsProjectTypeEnum())); this.SettingsProvider.Save(); this.SettingsProvider.ActualSettings.RefreshProfilesList(); this.DisplayedProfiles.SelectedIndex = selectedIndex; } catch (Exception exc) { SharedRapidXamlPackage.Logger?.RecordException(exc); } }