Skip to content
This repository was archived by the owner on Sep 11, 2023. It is now read-only.

Commit d55cbf1

Browse files
committed
test change configs asynchronously
1 parent 818ea66 commit d55cbf1

File tree

1 file changed

+37
-33
lines changed

1 file changed

+37
-33
lines changed

UI/MainWindow/MainWindowConfigHandler.cs

Lines changed: 37 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Linq;
22
using System.Text;
3+
using System.Threading.Tasks;
34
using System.Windows;
45
using System.Windows.Controls;
56
using System.Windows.Media;
@@ -43,74 +44,77 @@ private void EditItem_Click(object sender, RoutedEventArgs e)
4344
RestoreMainWindow();
4445
}
4546

46-
private void Item_Click(object sender, RoutedEventArgs e)
47+
private async void Item_Click(object sender, RoutedEventArgs e)
4748
{
4849
var name = (string)((MenuItem)sender).Header;
49-
ChangeConfig(name);
50+
await ChangeConfig(name);
5051
LoggingControl.LogAction($"Changed to config \"{name}\".", 2);
5152
}
5253

5354
/// <summary>
5455
/// Changes to the specified config.
5556
/// </summary>
5657
/// <param name="index">The config index to change to</param>
57-
public void ChangeConfig(int index)
58+
public async Task ChangeConfig(int index)
5859
{
5960
if (index < 0 || index >= Program.Configs.Count)
6061
{
6162
return;
6263
}
6364

64-
Program.Configs[index].LoadSMDef();
65-
66-
if (Program.Configs[index].RejectedPaths.Any())
65+
await Dispatcher.InvokeAsync(() =>
6766
{
68-
var sb = new StringBuilder();
69-
sb.Append("SPCode was unauthorized to access the following directories to parse their includes: \n");
70-
foreach (var path in Program.Configs[index].RejectedPaths)
67+
Program.Configs[index].LoadSMDef();
68+
69+
if (Program.Configs[index].RejectedPaths.Any())
7170
{
72-
sb.Append($" - {path}\n");
73-
}
71+
var sb = new StringBuilder();
72+
sb.Append("SPCode was unauthorized to access the following directories to parse their includes: \n");
73+
foreach (var path in Program.Configs[index].RejectedPaths)
74+
{
75+
sb.Append($" - {path}\n");
76+
}
7477

75-
LoggingControl.LogAction(sb.ToString());
76-
}
78+
LoggingControl.LogAction(sb.ToString());
79+
}
7780

78-
var name = Program.Configs[index].Name;
79-
for (var i = 0; i < ConfigMenu.Items.Count - 2; ++i)
80-
{
81-
((MenuItem)ConfigMenu.Items[i]).IsChecked = name == (string)((MenuItem)ConfigMenu.Items[i]).Header;
82-
}
81+
var name = Program.Configs[index].Name;
82+
for (var i = 0; i < ConfigMenu.Items.Count - 2; ++i)
83+
{
84+
((MenuItem)ConfigMenu.Items[i]).IsChecked = name == (string)((MenuItem)ConfigMenu.Items[i]).Header;
85+
}
8386

84-
Program.SelectedConfig = index;
85-
Program.OptionsObject.Program_SelectedConfig = Program.Configs[Program.SelectedConfig].Name;
87+
Program.SelectedConfig = index;
88+
Program.OptionsObject.Program_SelectedConfig = Program.Configs[Program.SelectedConfig].Name;
8689

87-
var editors = GetAllEditorElements();
88-
if (editors != null)
89-
{
90-
foreach (var editor in editors)
90+
var editors = GetAllEditorElements();
91+
if (editors != null)
9192
{
92-
editor.LoadAutoCompletes();
93-
editor.editor.SyntaxHighlighting = new AeonEditorHighlighting();
94-
editor.InvalidateVisual();
93+
foreach (var editor in editors)
94+
{
95+
editor.LoadAutoCompletes();
96+
editor.editor.SyntaxHighlighting = new AeonEditorHighlighting();
97+
editor.InvalidateVisual();
98+
}
9599
}
96-
}
97100

98-
OBDirList.ItemsSource = Program.Configs[index].SMDirectories;
99-
OBDirList.Items.Refresh();
100-
OBDirList.SelectedIndex = 0;
101+
OBDirList.ItemsSource = Program.Configs[index].SMDirectories;
102+
OBDirList.Items.Refresh();
103+
OBDirList.SelectedIndex = 0;
104+
});
101105
}
102106

103107
/// <summary>
104108
/// Overload of ChangeConfig to take the name of the config.
105109
/// </summary>
106110
/// <param name="name">Name of the config to change to.</param>
107-
private void ChangeConfig(string name)
111+
private async Task ChangeConfig(string name)
108112
{
109113
for (var i = 0; i < Program.Configs.Count; ++i)
110114
{
111115
if (Program.Configs[i].Name == name)
112116
{
113-
ChangeConfig(i);
117+
await ChangeConfig(i);
114118
return;
115119
}
116120
}

0 commit comments

Comments
 (0)