From 805027ad295baf422b3e14dc28675401b8b5bc97 Mon Sep 17 00:00:00 2001 From: morkt Date: Wed, 30 Jul 2014 09:00:26 +0400 Subject: [PATCH] fixed multiple selected files extraction. --- GarExtract.cs | 16 +++++++++++----- Strings/guiStrings.Designer.cs | 11 ++++++++++- Strings/guiStrings.resx | 5 ++++- Strings/guiStrings.ru-RU.resx | 5 ++++- 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/GarExtract.cs b/GarExtract.cs index a70896f3..af09754f 100644 --- a/GarExtract.cs +++ b/GarExtract.cs @@ -46,7 +46,10 @@ namespace GARbro.GUI { var entry = CurrentDirectory.SelectedItem as EntryViewModel; if (null == entry && !ViewModel.IsArchive) + { + SetStatusText (guiStrings.MsgChooseFiles); return; + } try { if (!ViewModel.IsArchive) @@ -154,12 +157,15 @@ namespace GARbro.GUI private void ExtractFileFromArchive (EntryViewModel entry, string destination) { - var vm = ViewModel as ArchiveViewModel; - var selected = CurrentDirectory.SelectedItems; - IEnumerable file_list = new Entry[0]; - foreach (var e in selected.Cast()) + var view_model = ViewModel; + var selected = CurrentDirectory.SelectedItems.Cast(); + IEnumerable file_list = view_model.GetFiles (selected); + if (!file_list.Any() && entry.Name == "..") + file_list = view_model.GetFiles (view_model); + if (!file_list.Any()) { - file_list = file_list.Concat (vm.GetFiles (e)); + SetStatusText (guiStrings.MsgChooseFiles); + return; } string arc_name = Path.GetFileName (CurrentPath); diff --git a/Strings/guiStrings.Designer.cs b/Strings/guiStrings.Designer.cs index 4f83d735..f5936b60 100644 --- a/Strings/guiStrings.Designer.cs +++ b/Strings/guiStrings.Designer.cs @@ -286,7 +286,7 @@ namespace GARbro.GUI.Strings { } /// - /// Looks up a localized string similar to Extract all files from {0} to. + /// Looks up a localized string similar to Extract files from {0} to. /// public static string LabelExtractAllTo { get { @@ -330,6 +330,15 @@ namespace GARbro.GUI.Strings { } } + /// + /// Looks up a localized string similar to Choose files to extract. + /// + public static string MsgChooseFiles { + get { + return ResourceManager.GetString("MsgChooseFiles", resourceCulture); + } + } + /// /// Looks up a localized string similar to Creating archive {0}. /// diff --git a/Strings/guiStrings.resx b/Strings/guiStrings.resx index a0544461..d2a9a9d6 100644 --- a/Strings/guiStrings.resx +++ b/Strings/guiStrings.resx @@ -193,7 +193,7 @@ Archive options - Extract all files from {0} to + Extract files from {0} to Extract {0} to @@ -330,4 +330,7 @@ Overwrite? Creating archive {0} + + Choose files to extract + \ No newline at end of file diff --git a/Strings/guiStrings.ru-RU.resx b/Strings/guiStrings.ru-RU.resx index cbf1cca5..c9787f56 100644 --- a/Strings/guiStrings.ru-RU.resx +++ b/Strings/guiStrings.ru-RU.resx @@ -190,7 +190,7 @@ Настройки архивирования - Извлечь все файлы из {0} в + Извлечь файлы из {0} в Извлечь {0} в @@ -342,4 +342,7 @@ сценарий + + Выберите файлы для извлечения + \ No newline at end of file