diff --git a/FModel/FModel.csproj b/FModel/FModel.csproj index f2f0483b..ee9ea0e7 100644 --- a/FModel/FModel.csproj +++ b/FModel/FModel.csproj @@ -130,7 +130,7 @@ - + diff --git a/FModel/MainWindow.xaml b/FModel/MainWindow.xaml index c91d3aab..0b5f7e10 100644 --- a/FModel/MainWindow.xaml +++ b/FModel/MainWindow.xaml @@ -179,17 +179,11 @@ - - - - - - diff --git a/FModel/MainWindow.xaml.cs b/FModel/MainWindow.xaml.cs index 405e2a4d..050d585b 100644 --- a/FModel/MainWindow.xaml.cs +++ b/FModel/MainWindow.xaml.cs @@ -47,7 +47,6 @@ namespace FModel private async void OnClosing(object sender, CancelEventArgs e) { - Updater.CheckForUpdate(); Globals.gNotifier.Dispose(); Tasks.TokenSource?.Dispose(); DiscordIntegration.Dispose(); @@ -69,6 +68,7 @@ namespace FModel FModel_MI_Assets_GoTo.ItemsSource = MenuItems.customGoTos; FModel_AssetsPathTree.ItemsSource = SortedTreeviewVm.gameFilesPath.ChildrensView; + if (!Properties.Settings.Default.SkipVersion) Updater.CheckForUpdate(); DebugHelper.WriteUserSettings(); Folders.CheckWatermarks(); @@ -180,10 +180,23 @@ namespace FModel } else { FWindows.GetOpenedWindow(Properties.Resources.AudioPlayer).Focus(); } } - private void FModel_MI_Assets_Export_Click(object sender, RoutedEventArgs e) + private async void FModel_MI_Assets_Export_Click(object sender, RoutedEventArgs e) { if (FModel_AssetsList.HasItems && FModel_AssetsList.SelectedIndex >= 0 && FModel_AssetsList.SelectedItem is ListBoxViewModel selectedItem) - Assets.Export(selectedItem.PakEntry, false); + { + bool autoExport = FModel_AssetsList.SelectedItems.Count > 1; + if (!autoExport) Assets.Export(selectedItem.PakEntry, false); // manual export if one + else + { + bool ret = Properties.Settings.Default.AutoExport; + Properties.Settings.Default.AutoExport = autoExport; + + await Assets.GetUserSelection(FModel_AssetsList.SelectedItems); // auto export if multiple + + Properties.Settings.Default.AutoExport = ret; + Properties.Settings.Default.Save(); + } + } else Globals.gNotifier.ShowCustomMessage(Properties.Resources.Error, Properties.Resources.NoDataToExport); } private void FModel_MI_Assets_Save_Click(object sender, RoutedEventArgs e) => AvalonEditVm.avalonEditViewModel.Save(false); @@ -266,10 +279,6 @@ namespace FModel } else { FWindows.GetOpenedWindow(Properties.Resources.AboutF).Focus(); } } - private void FModel_MI_Help_Updates_Click(object sender, RoutedEventArgs e) - { - Updater.CheckForUpdate(); - } #endregion #region TREEVIEW @@ -414,8 +423,15 @@ namespace FModel AvalonEditVm.avalonEditViewModel.Save(false); else // extract (aka display) and save { - await Assets.GetUserSelection(FModel_AssetsList.SelectedItems); - AvalonEditVm.avalonEditViewModel.Save(false); + bool autoSave = FModel_AssetsList.SelectedItems.Count > 1; + bool ret = Properties.Settings.Default.AutoSave; + + Properties.Settings.Default.AutoSave = autoSave; + await Assets.GetUserSelection(FModel_AssetsList.SelectedItems); // auto save if multiple + if (!autoSave) AvalonEditVm.avalonEditViewModel.Save(false); // manual save if one + + Properties.Settings.Default.AutoSave = ret; + Properties.Settings.Default.Save(); } } else Globals.gNotifier.ShowCustomMessage(Properties.Resources.Error, Properties.Resources.NoDataToSave); diff --git a/FModel/Properties/Resources.Designer.cs b/FModel/Properties/Resources.Designer.cs index 142a975d..be14d3e9 100644 --- a/FModel/Properties/Resources.Designer.cs +++ b/FModel/Properties/Resources.Designer.cs @@ -462,15 +462,6 @@ namespace FModel.Properties { } } - /// - /// Recherche une chaîne localisée semblable à Check For Updates. - /// - public static string CheckForUpdates { - get { - return ResourceManager.GetString("CheckForUpdates", resourceCulture); - } - } - /// /// Recherche une chaîne localisée semblable à Chinese (Simplified). /// @@ -1654,6 +1645,15 @@ namespace FModel.Properties { } } + /// + /// Recherche une chaîne localisée semblable à Maybe Later. + /// + public static string MaybeLater { + get { + return ResourceManager.GetString("MaybeLater", resourceCulture); + } + } + /// /// Recherche une chaîne localisée semblable à MB. /// @@ -2352,6 +2352,15 @@ namespace FModel.Properties { } } + /// + /// Recherche une chaîne localisée semblable à Skip this Version. + /// + public static string SkipThisVersion { + get { + return ResourceManager.GetString("SkipThisVersion", resourceCulture); + } + } + /// /// Recherche une chaîne localisée semblable à Spanish. /// diff --git a/FModel/Properties/Resources.fr-FR.resx b/FModel/Properties/Resources.fr-FR.resx index 1d44991a..b0002484 100644 --- a/FModel/Properties/Resources.fr-FR.resx +++ b/FModel/Properties/Resources.fr-FR.resx @@ -822,7 +822,10 @@ C'est maintenant le logiciel gratuit le plus utilisé pour leak sur Fortnite. Un fichier .PAK chiffré a été trouvé. Afin de le déchiffrer, veuillez spécifier une clé de chiffrement AES fonctionnelle - - Vérifier les Mises à Jour + + Peut être plus tard + + + Ignorer cette version \ No newline at end of file diff --git a/FModel/Properties/Resources.resx b/FModel/Properties/Resources.resx index 3835957c..213e9591 100644 --- a/FModel/Properties/Resources.resx +++ b/FModel/Properties/Resources.resx @@ -1075,7 +1075,10 @@ It's now the most used free software to leak on Fortnite. An encrypted .PAK file has been found. In order to decrypt it, please specify a working AES encryption key - - Check For Updates + + Maybe Later + + + Skip this Version \ No newline at end of file diff --git a/FModel/Properties/Settings.Designer.cs b/FModel/Properties/Settings.Designer.cs index 286cc008..00c91a47 100644 --- a/FModel/Properties/Settings.Designer.cs +++ b/FModel/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace FModel.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.5.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.6.0.0")] public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -502,5 +502,17 @@ namespace FModel.Properties { this["ChallengeBannerSecondaryColor"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool SkipVersion { + get { + return ((bool)(this["SkipVersion"])); + } + set { + this["SkipVersion"] = value; + } + } } } diff --git a/FModel/Properties/Settings.cs b/FModel/Properties/Settings.cs index 0e686efa..fa4f7834 100644 --- a/FModel/Properties/Settings.cs +++ b/FModel/Properties/Settings.cs @@ -32,6 +32,7 @@ namespace FModel.Properties } } + Default.SkipVersion = false; // just in case Default.UpdateSettings = false; // just in case Default.Save(); } diff --git a/FModel/Properties/Settings.settings b/FModel/Properties/Settings.settings index 70b738c8..9dd4d6e9 100644 --- a/FModel/Properties/Settings.settings +++ b/FModel/Properties/Settings.settings @@ -53,9 +53,9 @@ - - 0.5 - + + 0.5 + False @@ -68,15 +68,15 @@ [{"Header":"Cosmetics","DirectoryPath":"FortniteGame/Content/Athena/Items/Cosmetics/"},{"Header":"Challenges","DirectoryPath":"FortniteGame/Content/Athena/Items/ChallengeBundles/"},{"Header":"Emotes [Audio]","DirectoryPath":"FortniteGame/Content/Athena/Sounds/Emotes/"},{"Header":"Music Packs [Audio]","DirectoryPath":"FortniteGame/Content/Athena/Sounds/MusicPacks/"},{"Header":"Weapons","DirectoryPath":"FortniteGame/Content/Athena/Items/Weapons/"},{"Header":"Strings","DirectoryPath":"FortniteGame/Content/Localization/"}] - - 0 - + + 0 + 0 - - 0 - + + 0 + 0 @@ -122,5 +122,8 @@ 2848A3 + + False + \ No newline at end of file diff --git a/FModel/Utils/Updater.cs b/FModel/Utils/Updater.cs index f86da3ef..e037e49a 100644 --- a/FModel/Utils/Updater.cs +++ b/FModel/Utils/Updater.cs @@ -41,14 +41,19 @@ namespace FModel.Utils MessageBoxResult dialogResult = DarkMessageBoxHelper.ShowYesNoCancel( string.Format(Properties.Resources.UpdateAvailableConfirm, args.CurrentVersion, args.InstalledVersion), Properties.Resources.UpdateAvailable, - Properties.Resources.YesShowChangelog, - Properties.Resources.Yes, - Properties.Resources.No); + Properties.Resources.YesShowChangelog, // Yes + Properties.Resources.MaybeLater, // No + Properties.Resources.SkipThisVersion); // Cancel if (dialogResult == MessageBoxResult.Yes) Process.Start(new ProcessStartInfo { FileName = args.ChangelogURL, UseShellExecute = true }); + if (dialogResult == MessageBoxResult.Cancel) + { + Properties.Settings.Default.SkipVersion = true; + Properties.Settings.Default.Save(); + } - if (dialogResult == MessageBoxResult.Yes || dialogResult == MessageBoxResult.No || dialogResult == MessageBoxResult.OK) + if (dialogResult == MessageBoxResult.Yes || dialogResult == MessageBoxResult.OK) { try { diff --git a/FModel/Windows/ImagesMerger/ImagesMerger.xaml b/FModel/Windows/ImagesMerger/ImagesMerger.xaml index 8cd456a2..289d0ee0 100644 --- a/FModel/Windows/ImagesMerger/ImagesMerger.xaml +++ b/FModel/Windows/ImagesMerger/ImagesMerger.xaml @@ -68,7 +68,7 @@