Kaynağa Gözat

checking adjustments

Krzysztof Krysiński 3 ay önce
ebeveyn
işleme
35c6772e6a

+ 8 - 1
src/PixiEditor.Extensions.Runtime/ExtensionLoader.cs

@@ -14,10 +14,11 @@ public class ExtensionLoader
 
     public string[] PackagesPath { get; }
     public string UnpackedExtensionsPath { get; }
-    
+
     public ExtensionServices Services { get; set; }
 
     private WasmRuntime.WasmRuntime _wasmRuntime = new WasmRuntime.WasmRuntime();
+    private HashSet<string> loadedExtensions = new HashSet<string>();
 
     public ExtensionLoader(string[] packagesPaths, string unpackedExtensionsPath)
     {
@@ -96,6 +97,11 @@ public class ExtensionLoader
         try
         {
             ExtensionMetadata metadata = ExtractMetadata(extZip);
+            if (loadedExtensions.Contains(metadata.UniqueName))
+            {
+                return null; // Already loaded
+            }
+
             if (IsDifferentThanCached(metadata, extension))
             {
                 UnpackExtension(extZip, metadata);
@@ -230,6 +236,7 @@ public class ExtensionLoader
         var extension = LoadExtensionEntry(entry, metadata);
         extension.Load();
         LoadedExtensions.Add(extension);
+        loadedExtensions.Add(metadata.UniqueName);
         return extension;
     }
 

+ 1 - 1
src/PixiEditor/ViewModels/SubViewModels/AdditionalContent/AdditionalContentViewModel.cs

@@ -12,5 +12,5 @@ internal class AdditionalContentViewModel : ViewModelBase
 
     public bool IsFoundersPackAvailable => AdditionalContentProvider != null
                                             && AdditionalContentProvider.IsContentOwned("PixiEditor.FoundersPack")
-                                            && ViewModelMain.Current.ExtensionsSubViewModel.ExtensionLoader.LoadedExtensions.Any(x => x.Metadata.UniqueName == "PixiEditor.SupporterPack");
+                                            && ViewModelMain.Current.ExtensionsSubViewModel.ExtensionLoader.LoadedExtensions.Any(x => x.Metadata.UniqueName == "PixiEditor.FoundersPack");
 }

+ 2 - 2
src/PixiEditor/Views/Windows/HelloTherePopup.axaml

@@ -89,7 +89,7 @@
                                 </Style>
                             </StackPanel.Styles>
                             <Button Command="{xaml:Command Name=PixiEditor.FoundersPack:Workspaces.Browse}"
-                                    IsVisible="{xaml:CommandExists Name=PixiEditor.FoundersPack:Workspaces.Browse}"
+                                    IsVisible="{Binding Path=FileViewModel.Owner.AdditionalContentSubViewModel.IsFoundersPackAvailable, FallbackValue=False, RelativeSource={RelativeSource FindAncestor, AncestorType=windows:HelloTherePopup}}"
                                     Name="workspacesButton"
                                     MinWidth="150" Margin="10, 0"
                                     ui:Translator.Key="PixiEditor.FoundersPack:BROWSE_TEMPLATES" />
@@ -97,7 +97,7 @@
                                     Background="{DynamicResource ThemeAccentBrush2}"
                                     ui:Translator.Key="EXAMPLE_FILES"
                                     Margin="10, 0" MinWidth="150"
-                                    Classes.fullWidth="{Binding ElementName=workspacesButton, Path=!IsEffectivelyVisible}"
+                                    Classes.fullWidth="{Binding !FileViewModel.Owner.AdditionalContentSubViewModel.IsFoundersPackAvailable, FallbackValue=False, RelativeSource={RelativeSource FindAncestor, AncestorType=windows:HelloTherePopup}}"
                                     Command="{Binding SetShowAllBetaExamplesCommand, RelativeSource={RelativeSource AncestorType=windows:HelloTherePopup}}"
                                     CommandParameter="{x:True}" />
                         </StackPanel>