private async void extractMenuItem(object sender, RoutedEventArgs e) { if (file == null) { return; } List <BarEntry> entries; if ((sender as MenuItem).Tag.ToString() == "Selected") { entries = files.SelectedItems.Cast <BarEntry>().ToList(); } else { entries = file.barFile.BarFileEntrys.ToList(); } if (entries.Count != 0) { string RootPath; ExtractDialog ExtractDialog = new ExtractDialog(file.barFilePath); if (ExtractDialog.ShowDialog() != true) { return; } RootPath = ExtractDialog.Path; mainMenu.IsEnabled = false; tbExtract.Text = "Extracting"; SpinnerExtract.Visibility = Visibility.Visible; bPause.IsEnabled = true; bStop.IsEnabled = true; bRun.IsEnabled = false; bool decompress = ExtractDialog.AutoDecompress; file.extractingState = 0; CancelTokenSource = new CancellationTokenSource(); Token = CancelTokenSource.Token; try { await Task.Run(async() => { await file.saveFiles(entries, RootPath, decompress, Token, ExtractDialog.AutoDDTConversion, ExtractDialog.AutoXMBConversion); }); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } bPause.IsEnabled = false; bStop.IsEnabled = false; bRun.IsEnabled = false; tbExtract.Text = "Extract"; SpinnerExtract.Visibility = Visibility.Collapsed; mainMenu.IsEnabled = true; } }
private async void extractMenuItem(object sender, RoutedEventArgs e) { if (file == null) { return; } mainMenu.IsEnabled = false; tbExtract.Text = "Extracting"; SpinnerExtract.Visibility = Visibility.Visible; List <BarEntry> entries; if ((sender as MenuItem).Tag.ToString() == "Selected") { entries = files.SelectedItems.Cast <BarEntry>().ToList(); } else if ((sender as MenuItem).Tag.ToString() == "List") { entries = new List <BarEntry>(); OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Text files (*.txt)|*.txt"; if (openFileDialog.ShowDialog() == true) { List <string> icons = new List <string>(await File.ReadAllLinesAsync(openFileDialog.FileName)); entries = file.barFile.BarFileEntrys.Where(x => icons.Any(y => x.FileNameWithRoot.ToLower().EndsWith(y.Replace('/', '\\').ToLower()))).ToList(); } } else { entries = file.SourceCollection.Cast <BarEntry>().ToList(); } if (entries.Count != 0) { string RootPath; ExtractDialog ExtractDialog = new ExtractDialog(file.barFilePath); if (ExtractDialog.ShowDialog() == true) { RootPath = ExtractDialog.Path; bPause.IsEnabled = true; bStop.IsEnabled = true; bRun.IsEnabled = false; bool decompress = ExtractDialog.AutoDecompress; file.extractingState = 0; CancelTokenSource = new CancellationTokenSource(); Token = CancelTokenSource.Token; try { await Task.Run(async() => { await file.saveFiles(entries, RootPath, decompress, Token, ExtractDialog.AutoDDTToPNGConversion, ExtractDialog.AutoDDTToTGAConversion, ExtractDialog.AutoXMBConversion, ExtractDialog.OneFolder, ExtractDialog.SavePNGasBMP, ExtractDialog.AutoJSONConversion, ExtractDialog.OverlayColor); }); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } bPause.IsEnabled = false; bStop.IsEnabled = false; bRun.IsEnabled = false; } } tbExtract.Text = "Extract"; SpinnerExtract.Visibility = Visibility.Collapsed; mainMenu.IsEnabled = true; }
private async void extractMenuItem(object sender, RoutedEventArgs e) { if (file == null) { return; } List <BarEntry> entries; if ((sender as MenuItem).Tag.ToString() == "Selected") { entries = files.SelectedItems.Cast <BarEntry>().ToList(); } else { entries = file.barFile.BarFileEntrys.ToList(); } if (entries.Count != 0) { string RootPath; ExtractDialog ExtractDialog = new ExtractDialog(); if (ExtractDialog.ShowDialog() != true) { return; } RootPath = ExtractDialog.Path; mainMenu.IsEnabled = false; tbExtract.Text = "Extracting"; SpinnerExtract.Visibility = Visibility.Visible; bPause.IsEnabled = true; bStop.IsEnabled = true; bRun.IsEnabled = false; bool decompress = ExtractDialog.AutoDecompress; if (file.barFile.barFileHeader.Version > 3 && !ExtractDialog.AutoDecompress) { decompress = MessageBox.Show("Do you want to decompress compressed files? (If you do not decompress them, you will not be able to open and edit these files.)", "Decompress files", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes; } file.extractingState = 0; CancelTokenSource = new CancellationTokenSource(); Token = CancelTokenSource.Token; try { await Task.Run(async() => { await file.saveFiles(entries, RootPath, decompress, Token); }); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } bPause.IsEnabled = false; bStop.IsEnabled = false; bRun.IsEnabled = false; tbExtract.Text = "Extract"; SpinnerExtract.Visibility = Visibility.Collapsed; mainMenu.IsEnabled = true; } }