System.Windows.Forms.ListView.CheckedListViewItemCollection checkeds = instsListView.CheckedItems;\r
\r
okButton.Enabled = (checkeds != null) && (checkeds.Count > 0);\r
+ \r
+ updateDependeciesIsNeeded();\r
}\r
\r
void InstsListViewContextMenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)\r
{\r
System.Threading.Thread thread = new System.Threading.Thread(\r
new System.Threading.ThreadStart(resolveDependecies));\r
- thread.Start();\r
+ thread.Start(); \r
}\r
\r
/// <summary>\r
\r
requiredInstallations = dependencies;\r
\r
- updateInstsListView();\r
+ if (InvokeRequired) {\r
+ Invoke(new MethodInvoker(updateInstsListView));\r
+ } else {\r
+ updateInstsListView();\r
+ }\r
+ }\r
+ }\r
+ \r
+ private void updateDependeciesIsNeeded()\r
+ {\r
+ List<Package> pkg = new List<Package>();\r
+ foreach (Installation inst in DependeciesResolver.CreateRequiresInstallations(CheckedInstallations, pkgListMan)) {\r
+ pkg.Add(inst.InstalledPackage);\r
+ }\r
+ \r
+ foreach (ListViewItem item in instsListView.Items) {\r
+ if (pkg.IndexOf(((Installation) item.Tag).InstalledPackage) >= 0) {\r
+ item.Checked = true;\r
+ }\r
}\r
}\r
\r