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

Commit 7e3c299

Browse files
committed
config windows UI improvements
added error icon to scripting dirs that threw an unauthorized access error
1 parent 103e9a5 commit 7e3c299

File tree

2 files changed

+53
-17
lines changed

2 files changed

+53
-17
lines changed

UI/Windows/ConfigWindow.xaml

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@
6868
<Setter Property="Height" Value="2"/>
6969
</Style>
7070

71-
<Image x:Key="ImgAdd" Source="/SPCode;component/Resources/Icons/icon-add.png" Width="16"/>
7271
<Image x:Key="ImgCopy" Source="/SPCode;component/Resources/Icons/icon-duplicate.png" Width="16"/>
7372
<Image x:Key="ImgDelete" Source="/SPCode;component/Resources/Icons/icon-trash.png" Width="16"/>
7473

@@ -85,11 +84,11 @@
8584
<Grid>
8685

8786
<Grid.ColumnDefinitions>
88-
<ColumnDefinition Width="200"/>
87+
<ColumnDefinition Width="250" MaxWidth="800"/>
8988
<ColumnDefinition/>
9089
</Grid.ColumnDefinitions>
9190

92-
<Grid Grid.Column="0" Margin="0,5,0,0">
91+
<Grid Name="SidebarColumn" SizeChanged="SidebarColumn_SizeChanged" Grid.Column="0" Margin="0,5,0,0">
9392

9493
<Grid.RowDefinitions>
9594
<RowDefinition Height="30"/>
@@ -104,9 +103,24 @@
104103
<ColumnDefinition/>
105104
</Grid.ColumnDefinitions>
106105

107-
<Button Name="NewButton" Width="32" VerticalAlignment="Center" Grid.Column="0" Click="NewButton_Click" Content="{StaticResource ImgAdd}"/>
108-
<Button Name="CopyButton" Width="32" Grid.Column="1" Click="CopyButton_Click" Content="{StaticResource ImgCopy}"/>
109-
<Button Name="DeleteButton" Width="32" Grid.Column="2" Click="DeleteButton_Click" Content="{StaticResource ImgDelete}" />
106+
<Button Name="NewButton" MaxWidth="70" Margin="3,0,3,0" Grid.Column="0" Click="NewButton_Click">
107+
<StackPanel Orientation="Horizontal">
108+
<Image Source="/SPCode;component/Resources/Icons/icon-add.png" Width="13"/>
109+
<TextBlock Name="AddButtonText" Text="Add" FontSize="11" Margin="5,0,0,0"/>
110+
</StackPanel>
111+
</Button>
112+
<Button Name="CopyButton" MaxWidth="70" Margin="3,0,3,0" Grid.Column="1" Click="CopyButton_Click">
113+
<StackPanel Orientation="Horizontal">
114+
<Image Source="/SPCode;component/Resources/Icons/icon-duplicate.png" Width="13"/>
115+
<TextBlock Name="CopyButtonText" Text="Copy" FontSize="11" Margin="5,0,0,0"/>
116+
</StackPanel>
117+
</Button>
118+
<Button Name="DeleteButton" MaxWidth="70" Margin="3,0,3,0" Grid.Column="2" Click="DeleteButton_Click">
119+
<StackPanel Orientation="Horizontal">
120+
<Image Source="/SPCode;component/Resources/Icons/icon-trash.png" Width="13"/>
121+
<TextBlock Name="RemoveButtonText" Text="Delete" FontSize="11" Margin="5,0,0,0"/>
122+
</StackPanel>
123+
</Button>
110124

111125
</Grid>
112126

UI/Windows/ConfigWindow.xaml.cs

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ private void LoadConfigToUI(int index)
231231
var c = Program.Configs[index];
232232

233233
C_SMDir.Items.Clear();
234-
c.SMDirectories.ForEach(x => C_SMDir.Items.Add(CreateDirItem(x)));
234+
c.SMDirectories.ForEach(x => C_SMDir.Items.Add(CreateDirItem(x, DirUtils.CanAccess(x))));
235235
C_Name.Text = c.Name;
236236
C_AutoCopy.IsChecked = c.AutoCopy;
237237
C_AutoUpload.IsChecked = c.AutoUpload;
@@ -330,22 +330,18 @@ private void AddSMDirButton_Click(object sender, RoutedEventArgs e)
330330
}
331331

332332
// Test for access permissions and flag as rejected directory if necessary
333-
try
334-
{
335-
Directory.GetAccessControl(dialog.FileName);
336-
}
337-
catch (UnauthorizedAccessException)
333+
var canAccess = DirUtils.CanAccess(dialog.FileName);
334+
if (!canAccess)
338335
{
339336
this.ShowMessageAsync(Translate("PermissionAccessError"),
340-
Translate("PermissionAcessErrorMessage"),
337+
Translate("PermissionAccessErrorMessage"),
341338
MessageDialogStyle.Affirmative, Program.MainWindow.MetroDialogOptions);
342339
}
343-
344340
// Add to dirs of that config
345341
c.SMDirectories.Add(dialog.FileName);
346342

347343
// Add list item
348-
C_SMDir.Items.Add(CreateDirItem(dialog.FileName));
344+
C_SMDir.Items.Add(CreateDirItem(dialog.FileName, canAccess));
349345

350346
NeedsSMDefInvalidation = true;
351347
}
@@ -780,7 +776,7 @@ await this.ShowMessageAsync(Translate("ErrorSavingConfigs"),
780776
/// </summary>
781777
/// <param name="path">Path of the SM Directory to be added</param>
782778
/// <returns>The ListBoxItem that will be added to the SM Directories list</returns>
783-
private ListBoxItem CreateDirItem(string path)
779+
private ListBoxItem CreateDirItem(string path, bool canAccess = false)
784780
{
785781
var item = new ListBoxItem();
786782
var stack = new StackPanel();
@@ -789,20 +785,46 @@ private ListBoxItem CreateDirItem(string path)
789785
{
790786
Text = path
791787
});
788+
if (!canAccess)
789+
{
790+
stack.Children.Add(new Image
791+
{
792+
Source = new BitmapImage(new Uri($"/SPCode;component/Resources/Icons/icon-error.png", UriKind.Relative)),
793+
Width = 16,
794+
Margin = new Thickness(5, 0, 0, 0),
795+
ToolTip = Translate("PermissionAccessError")
796+
});
797+
}
792798
if (File.Exists(Path.Combine(path, Constants.SPCompiler)))
793799
{
794800
stack.Children.Add(new Image
795801
{
796802
Source = new BitmapImage(new Uri($"/SPCode;component/Resources/Icons/icon-pawn.png", UriKind.Relative)),
797803
Width = 16,
798-
Margin = new Thickness(5,0,0,0),
804+
Margin = new Thickness(5, 0, 0, 0),
799805
ToolTip = Translate("SPCompilerFoundHere")
800806
});
801807
}
802808
item.Content = stack;
803809
return item;
804810
}
805811

812+
private void SidebarColumn_SizeChanged(object sender, SizeChangedEventArgs e)
813+
{
814+
if (e.NewSize.Width < 200)
815+
{
816+
AddButtonText.Visibility = Visibility.Collapsed;
817+
CopyButtonText.Visibility = Visibility.Collapsed;
818+
RemoveButtonText.Visibility = Visibility.Collapsed;
819+
}
820+
else
821+
{
822+
AddButtonText.Visibility = Visibility.Visible;
823+
CopyButtonText.Visibility = Visibility.Visible;
824+
RemoveButtonText.Visibility = Visibility.Visible;
825+
}
826+
}
827+
806828
private void Language_Translate()
807829
{
808830
Title = Translate("Configs");

0 commit comments

Comments
 (0)