Skip to content

Commit f459715

Browse files
committed
Merge pull request #1737 from Hosch250/release
Make code inspection settings save updated severities
2 parents 249de2d + d69166b commit f459715

File tree

3 files changed

+25
-4
lines changed

3 files changed

+25
-4
lines changed

RetailCoder.VBE/UI/Settings/InspectionSettings.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
<DataGridComboBoxColumn Header="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=SeverityLabelText}"
9191
Width="*"
9292
ItemsSource="{Binding Source={StaticResource Severities}, Converter={StaticResource CodeInspectionSeverityEnumToText}, UpdateSourceTrigger=PropertyChanged}"
93-
SelectedItemBinding="{Binding Path=SeverityLabel, Mode=TwoWay}" />
93+
SelectedItemBinding="{Binding Path=SeverityLabel}" />
9494
</controls:GroupingGrid.Columns>
9595
</controls:GroupingGrid>
9696
</DockPanel>

RetailCoder.VBE/UI/Settings/InspectionSettings.xaml.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
using System.Windows.Controls;
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Windows.Controls;
5+
using Rubberduck.Inspections;
6+
using Rubberduck.Settings;
7+
using Rubberduck.UI.Controls;
8+
using Rubberduck.UI.Settings.Converters;
29

310
namespace Rubberduck.UI.Settings
411
{
@@ -22,8 +29,15 @@ public InspectionSettings(ISettingsViewModel vm) : this()
2229
private void GroupingGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
2330
{
2431
if (e.Cancel || e.EditAction == DataGridEditAction.Cancel) { return; }
32+
33+
var selectedSeverityName = ((ComboBox) e.EditingElement).SelectedItem.ToString();
2534

26-
((InspectionSettingsViewModel) ViewModel).UpdateCollection();
35+
var severities = Enum.GetValues(typeof(CodeInspectionSeverity)).Cast<CodeInspectionSeverity>();
36+
var selectedSeverity = severities.Single(s => RubberduckUI.ResourceManager.GetString("CodeInspectionSeverity_" + s) == selectedSeverityName);
37+
38+
var changedSetting = (CodeInspectionSetting) e.Row.Item;
39+
40+
((InspectionSettingsViewModel) ViewModel).UpdateCollection(changedSetting.Name, selectedSeverity);
2741
}
2842
}
2943
}

RetailCoder.VBE/UI/Settings/InspectionSettingsViewModel.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Collections.Generic;
22
using System.Linq;
33
using System.Windows.Data;
4+
using Rubberduck.Inspections;
45
using Rubberduck.Settings;
56

67
namespace Rubberduck.UI.Settings
@@ -18,9 +19,15 @@ public InspectionSettingsViewModel(Configuration config)
1819
}
1920
}
2021

21-
public void UpdateCollection()
22+
public void UpdateCollection(string name, CodeInspectionSeverity severity)
2223
{
2324
InspectionSettings.CommitEdit();
25+
var changedItem = _inspectionSettings.SourceCollection.Cast<CodeInspectionSetting>().First(f => f.Name == name);
26+
27+
InspectionSettings.Remove(changedItem);
28+
29+
changedItem.Severity = severity;
30+
InspectionSettings.AddNewItem(changedItem);
2431
}
2532

2633
private ListCollectionView _inspectionSettings;

0 commit comments

Comments
 (0)