Browse Source

Disable delete palette outside local

Krzysztof Krysiński 2 years ago
parent
commit
d8d3509218

+ 6 - 1
src/PixiEditor/Views/Dialogs/PalettesBrowser.xaml.cs

@@ -166,7 +166,7 @@ internal partial class PalettesBrowser : Window
         InitializeComponent();
         InitializeComponent();
         Title = new LocalizedString("PALETTE_BROWSER");
         Title = new LocalizedString("PALETTE_BROWSER");
         Instance = this;
         Instance = this;
-        DeletePaletteCommand = new RelayCommand<Palette>(DeletePalette);
+        DeletePaletteCommand = new RelayCommand<Palette>(DeletePalette, CanDeletePalette);
         ToggleFavouriteCommand = new RelayCommand<Palette>(ToggleFavourite, CanToggleFavourite);
         ToggleFavouriteCommand = new RelayCommand<Palette>(ToggleFavourite, CanToggleFavourite);
         Loaded += async (_, _) =>
         Loaded += async (_, _) =>
         {
         {
@@ -182,6 +182,11 @@ internal partial class PalettesBrowser : Window
         IPreferences.Current.AddCallback(PreferencesConstants.FavouritePalettes, OnFavouritePalettesChanged);
         IPreferences.Current.AddCallback(PreferencesConstants.FavouritePalettes, OnFavouritePalettesChanged);
     }
     }
 
 
+    private bool CanDeletePalette(Palette palette)
+    {
+        return palette != null && palette.Source.GetType() == typeof(LocalPalettesFetcher);
+    }
+
     private void OnFavouritePalettesChanged(object obj)
     private void OnFavouritePalettesChanged(object obj)
     {
     {
         Filtering.Favourites =
         Filtering.Favourites =

+ 11 - 5
src/PixiEditor/Views/UserControls/Palettes/PaletteItem.xaml

@@ -125,20 +125,26 @@
                 </Button>
                 </Button>
             </Border>
             </Border>
             <Border Width="28" Height="28" CornerRadius="2.5"
             <Border Width="28" Height="28" CornerRadius="2.5"
-                    Margin="5 0 0 0" Padding="2">
+                    Margin="5 0 0 0" Padding="2" Name="deleteBorder">
                 <Border.Style>
                 <Border.Style>
                     <Style TargetType="Border">
                     <Style TargetType="Border">
                         <Style.Triggers>
                         <Style.Triggers>
-                            <Trigger Property="IsMouseOver" Value="True">
-                                <Setter Property="Background" Value="Red"/>
-                            </Trigger>
+                            <MultiDataTrigger>
+                                <MultiDataTrigger.Conditions>
+                                    <Condition Binding="{Binding Path=IsEnabled, ElementName=deleteButton}" Value="True"/>
+                                    <Condition Binding="{Binding Path=IsMouseOver, ElementName=deleteBorder}" Value="True"/>
+                                </MultiDataTrigger.Conditions>
+                                <MultiDataTrigger.Setters>
+                                    <Setter Property="Background" Value="Red"/>
+                                </MultiDataTrigger.Setters>
+                            </MultiDataTrigger>
                             <Trigger Property="IsMouseOver" Value="False">
                             <Trigger Property="IsMouseOver" Value="False">
                                 <Setter Property="Background" Value="Transparent"/>
                                 <Setter Property="Background" Value="Transparent"/>
                             </Trigger>
                             </Trigger>
                         </Style.Triggers>
                         </Style.Triggers>
                     </Style>
                     </Style>
                 </Border.Style>
                 </Border.Style>
-                <Button Command="{Binding DeletePaletteCommand, ElementName=paletteItem}"
+                <Button Name="deleteButton" Command="{Binding DeletePaletteCommand, ElementName=paletteItem}"
                         CommandParameter="{Binding ElementName=paletteItem, Path=Palette}"
                         CommandParameter="{Binding ElementName=paletteItem, Path=Palette}"
                 ui:Translator.TooltipKey="DELETE" Width="24" Height="24" Margin="0"
                 ui:Translator.TooltipKey="DELETE" Width="24" Height="24" Margin="0"
                 Style="{StaticResource ToolButtonStyle}" Cursor="Hand">
                 Style="{StaticResource ToolButtonStyle}" Cursor="Hand">