- Timestamp:
- 03/16/10 17:14:35 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/LocalPluginManager.cs
r3006 r3068 52 52 private void UpdateControl() { 53 53 ClearPluginList(); 54 localPluginsListView.SuppressItemCheckedEvents = true; 54 55 foreach (var plugin in plugins) { 55 56 var item = CreateListViewItem(plugin); … … 61 62 localPluginsListView.Items.Add(item); 62 63 } 64 localPluginsListView.SuppressItemCheckedEvents = false; 63 65 } 64 66 … … 78 80 // checked items are marked for removal 79 81 if (e.Item.Checked) { 80 var plugin = (IPluginDescription)e.Item.Tag; 81 foreach (ListViewItem item in localPluginsListView.Items) { 82 var dep = (IPluginDescription)item.Tag; 83 if (!item.Checked && dep.Dependencies.Contains(plugin)) { 84 item.Checked = true; 82 List<ListViewItem> modifiedItems = new List<ListViewItem>(); 83 foreach (ListViewItem item in localPluginsListView.SelectedItems) { 84 var plugin = (IPluginDescription)item.Tag; 85 modifiedItems.Add(item); 86 // also uncheck all dependent plugins 87 foreach (ListViewItem dependentItem in localPluginsListView.Items) { 88 var dependent = (IPluginDescription)dependentItem.Tag; 89 if (!dependentItem.Checked && (from dep in dependent.Dependencies 90 where dep.Name == plugin.Name 91 where dep.Version == plugin.Version 92 select dep).Any()) { 93 modifiedItems.Add(dependentItem); 94 } 85 95 } 86 96 } 97 localPluginsListView.CheckItems(modifiedItems); 98 } else { 99 List<ListViewItem> modifiedItems = new List<ListViewItem>(); 100 foreach (ListViewItem item in localPluginsListView.SelectedItems) { 101 var plugin = (IPluginDescription)item.Tag; 102 modifiedItems.Add(item); 103 } 104 localPluginsListView.UncheckItems(modifiedItems); 87 105 } 88 106 OnItemChecked(e);
Note: See TracChangeset
for help on using the changeset viewer.