diff --git a/Plugins/Wox.Plugin.Program/Languages/de.xaml b/Plugins/Wox.Plugin.Program/Languages/de.xaml
index 0a0f2bbe1e..cfcb43089d 100644
--- a/Plugins/Wox.Plugin.Program/Languages/de.xaml
+++ b/Plugins/Wox.Plugin.Program/Languages/de.xaml
@@ -21,7 +21,6 @@
Maximale Suchtiefe (-1 ist unlimitiert):
Bitte wähle eine Programmquelle
- Willst du wirklich {0} löschen?
Aktualisieren
Wox indexiert nur Datien mit folgenden Endungen:
diff --git a/Plugins/Wox.Plugin.Program/Languages/en.xaml b/Plugins/Wox.Plugin.Program/Languages/en.xaml
index 24aac50383..bd8d080242 100644
--- a/Plugins/Wox.Plugin.Program/Languages/en.xaml
+++ b/Plugins/Wox.Plugin.Program/Languages/en.xaml
@@ -21,7 +21,7 @@
Maximum Search Depth (-1 is unlimited):
Please select a program source
- Are you sure you want to delete {0}?
+ Are you sure you want to delete the selected program sources?
Update
Wox will only index files that end with the following suffixes:
diff --git a/Plugins/Wox.Plugin.Program/Languages/pl.xaml b/Plugins/Wox.Plugin.Program/Languages/pl.xaml
index 6c01edb2b3..bb82ee8d2e 100644
--- a/Plugins/Wox.Plugin.Program/Languages/pl.xaml
+++ b/Plugins/Wox.Plugin.Program/Languages/pl.xaml
@@ -21,7 +21,6 @@
Maksymalna głębokość wyszukiwania (-1 to nieograniczona):
Musisz wybrać katalog programu
- Czy jesteś pewien że chcesz usunąć {0}?
Aktualizuj
Wox będzie indeksował tylko te pliki z podanymi rozszerzeniami:
diff --git a/Plugins/Wox.Plugin.Program/Languages/tr.xaml b/Plugins/Wox.Plugin.Program/Languages/tr.xaml
index 6ea921480d..ef01e29fd1 100644
--- a/Plugins/Wox.Plugin.Program/Languages/tr.xaml
+++ b/Plugins/Wox.Plugin.Program/Languages/tr.xaml
@@ -21,7 +21,6 @@
Maksimum Arama Derinliği (Limitsiz için -1):
İşlem yapmak istediğiniz klasörü seçin.
- {0} klasörünü silmek istediğinize emin misiniz?
Güncelle
Wox yalnızca aşağıdaki uzantılara sahip dosyaları indeksleyecektir:
diff --git a/Plugins/Wox.Plugin.Program/Languages/zh-cn.xaml b/Plugins/Wox.Plugin.Program/Languages/zh-cn.xaml
index cce2b7ac89..f41193095b 100644
--- a/Plugins/Wox.Plugin.Program/Languages/zh-cn.xaml
+++ b/Plugins/Wox.Plugin.Program/Languages/zh-cn.xaml
@@ -21,7 +21,6 @@
最大搜索深度(-1是无限的):
请先选择一项
- 你确定要删除{0}吗?
更新
Wox仅索引下列后缀的文件:
diff --git a/Plugins/Wox.Plugin.Program/Languages/zh-tw.xaml b/Plugins/Wox.Plugin.Program/Languages/zh-tw.xaml
index 631843b2f6..d3c0f18cca 100644
--- a/Plugins/Wox.Plugin.Program/Languages/zh-tw.xaml
+++ b/Plugins/Wox.Plugin.Program/Languages/zh-tw.xaml
@@ -21,7 +21,6 @@
最大搜尋深度(-1是無限的):
請先選擇一項
- 你確定要刪除{0}嗎?
更新
Wox 僅索引下列副檔名的檔案:
diff --git a/Plugins/Wox.Plugin.Program/Views/Commands/ProgramSettingDisplay.cs b/Plugins/Wox.Plugin.Program/Views/Commands/ProgramSettingDisplay.cs
index 3145c6f70e..21bba677a5 100644
--- a/Plugins/Wox.Plugin.Program/Views/Commands/ProgramSettingDisplay.cs
+++ b/Plugins/Wox.Plugin.Program/Views/Commands/ProgramSettingDisplay.cs
@@ -137,7 +137,7 @@ namespace Wox.Plugin.Program.Views.Commands
&& selectedItems.Where(t1 => t1.Enabled && !Main._win32s.Any(x => t1.UniqueIdentifier == x.UniqueIdentifier)).Count() > 0)
return true;
- // Program Sources holds list of user added directories,
+ // ProgramSources holds list of user added directories,
// so when we enable/disable we need to reindex to show/not show the programs
// that are found in those directories.
if (selectedItems.Where(t1 => Main._settings.ProgramSources.Any(x => t1.UniqueIdentifier == x.UniqueIdentifier)).Count() > 0)
diff --git a/Plugins/Wox.Plugin.Program/Views/ProgramSetting.xaml b/Plugins/Wox.Plugin.Program/Views/ProgramSetting.xaml
index c838b49a78..76e34812c1 100644
--- a/Plugins/Wox.Plugin.Program/Views/ProgramSetting.xaml
+++ b/Plugins/Wox.Plugin.Program/Views/ProgramSetting.xaml
@@ -28,7 +28,7 @@
Drop="programSourceView_Drop" >
@@ -63,7 +63,6 @@
-
diff --git a/Plugins/Wox.Plugin.Program/Views/ProgramSetting.xaml.cs b/Plugins/Wox.Plugin.Program/Views/ProgramSetting.xaml.cs
index 24daecd3a8..28d7bd6cc0 100644
--- a/Plugins/Wox.Plugin.Program/Views/ProgramSetting.xaml.cs
+++ b/Plugins/Wox.Plugin.Program/Views/ProgramSetting.xaml.cs
@@ -64,24 +64,12 @@ namespace Wox.Plugin.Program.Views
programSourceView.Items.Refresh();
}
- private void btnDeleteProgramSource_OnClick(object sender, RoutedEventArgs e)
+ private void DeleteProgramSources(List itemsToDelete)
{
- var selectedProgramSource = programSourceView.SelectedItem as Settings.ProgramSource;
- if (selectedProgramSource != null)
- {
- string msg = string.Format(context.API.GetTranslation("wox_plugin_program_delete_program_source"), selectedProgramSource.Location);
-
- if (MessageBox.Show(msg, string.Empty, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
- {
- _settings.ProgramSources.Remove(selectedProgramSource);
- ReIndexing();
- }
- }
- else
- {
- string msg = context.API.GetTranslation("wox_plugin_program_pls_select_program_source");
- MessageBox.Show(msg);
- }
+ itemsToDelete.ForEach(x => _settings.ProgramSources.Remove(x));
+ itemsToDelete.ForEach(x => ProgramSettingDisplayList.Remove(x));
+ ReIndexing();
+
}
private void btnEditProgramSource_OnClick(object sender, RoutedEventArgs e)
@@ -171,7 +159,29 @@ namespace Wox.Plugin.Program.Views
.SelectedItems.Cast()
.ToList();
- if (IsSelectedRowStatusEnabledMoreOrEqualThanDisabled())
+ if (selectedItems.Count() == 0)
+ {
+ string msg = context.API.GetTranslation("wox_plugin_program_pls_select_program_source");
+ MessageBox.Show(msg);
+ return;
+ }
+
+ if (selectedItems
+ .Where(t1 => !_settings
+ .ProgramSources
+ .Any(x => t1.UniqueIdentifier == x.UniqueIdentifier))
+ .Count() == 0)
+ {
+ var msg = string.Format(context.API.GetTranslation("wox_plugin_program_delete_program_source"));
+
+ if (MessageBox.Show(msg, string.Empty, MessageBoxButton.YesNo) == MessageBoxResult.No)
+ {
+ return;
+ }
+
+ DeleteProgramSources(selectedItems);
+ }
+ else if (IsSelectedRowStatusEnabledMoreOrEqualThanDisabled(selectedItems))
{
ProgramSettingDisplayList.SetProgramSourcesStatus(selectedItems, false);
@@ -243,18 +253,28 @@ namespace Wox.Plugin.Program.Views
dataView.Refresh();
}
- private bool IsSelectedRowStatusEnabledMoreOrEqualThanDisabled()
+ private bool IsSelectedRowStatusEnabledMoreOrEqualThanDisabled(List selectedItems)
+ {
+ return selectedItems.Where(x => x.Enabled).Count() >= selectedItems.Where(x => !x.Enabled).Count();
+ }
+
+ private void Row_OnClick(object sender, RoutedEventArgs e)
{
var selectedItems = programSourceView
.SelectedItems.Cast()
.ToList();
- return selectedItems.Where(x => x.Enabled).Count() >= selectedItems.Where(x => !x.Enabled).Count();
- }
+ if (selectedItems
+ .Where(t1 => !_settings
+ .ProgramSources
+ .Any(x => t1.UniqueIdentifier == x.UniqueIdentifier))
+ .Count() == 0)
+ {
+ btnProgramSourceStatus.Content = context.API.GetTranslation("wox_plugin_program_delete");
+ return;
+ }
- private void Row_Click(object sender, RoutedEventArgs e)
- {
- if (IsSelectedRowStatusEnabledMoreOrEqualThanDisabled())
+ if (IsSelectedRowStatusEnabledMoreOrEqualThanDisabled(selectedItems))
{
btnProgramSourceStatus.Content = "Disable";
}