foreach (Installation inst in installations) {\r
Package pkg = inst.InstalledPackage;\r
\r
+ string[] itemData = new string[instsListView.Columns.Count];\r
+ itemData[nameColumnHeader.Index] = pkg.Name;\r
+ \r
Package curPkg = null;\r
if (pkgListMan != null) { \r
- curPkg = pkgListMan.InstalledPkgList.GetPackageForName(pkg.Name);\r
- if (curPkg == null) curPkg = pkgListMan.SystemInstalledPkgList.GetPackageForName(pkg.Name);\r
+ curPkg = pkgListMan.InstalledPkgList.GetPackageForName(pkg.Name) ??\r
+ pkgListMan.SystemInstalledPkgList.GetPackageForName(pkg.Name);\r
}\r
- string curVersion = (curPkg == null)? "-" : curPkg.Version;\r
+ itemData[versionColumnHeader.Index] = pkg.Version;\r
+ itemData[currentVersionColumnHeader.Index] = (curPkg != null)? curPkg.Version : "-";\r
+ \r
+ itemData[instOptsColumnHeader.Index] = inst.Silent? "\83T\83C\83\8c\83\93\83g" : string.Empty;\r
\r
- ListViewItem item = new ListViewItem(new string[]{pkg.Name, pkg.Version, curVersion});\r
+ ListViewItem item = new ListViewItem(itemData);\r
item.Tag = inst;\r
item.ToolTipText = pkg.Summary;\r
item.Checked = true;\r
\r
void InstsListViewContextMenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)\r
{\r
- System.Windows.Forms.ListView.CheckedIndexCollection coll = instsListView.CheckedIndices;\r
- selectAllPackagesStripMenuItem.Enabled = coll.Count < instsListView.Items.Count;\r
- unselectAllPackagesStripMenuItem.Enabled = coll.Count > 0;\r
+ System.Windows.Forms.ListView.CheckedIndexCollection chkIdxes = instsListView.CheckedIndices;\r
+ System.Windows.Forms.ListView.SelectedIndexCollection selIdxes = instsListView.SelectedIndices;\r
+ \r
+ silentInstallStripMenuItem.Visible = selIdxes.Count > 0;\r
+ if (selIdxes.Count > 0) {\r
+ Installation inst0th = ((Installation) instsListView.Items[selIdxes[0]].Tag);\r
+ bool bChecked = inst0th.Silent;\r
+ bool bEnabled = (inst0th.IsSupportsSilent && (!inst0th.SupportsSilentOnly));\r
+ silentInstallStripMenuItem.Checked = bChecked;\r
+ silentInstallStripMenuItem.Enabled = bEnabled;\r
+ \r
+ for (int i = 1; i < selIdxes.Count; i++) {\r
+ Installation inst = ((Installation) instsListView.Items[selIdxes[i]].Tag);\r
+ \r
+ if ( (bChecked != inst.Silent) ||\r
+ (bEnabled != (inst.IsSupportsSilent && (!inst.SupportsSilentOnly))) ) {\r
+ silentInstallStripMenuItem.CheckState = CheckState.Indeterminate;\r
+ silentInstallStripMenuItem.Enabled = false;\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ instListToolStripSeparator.Visible = selIdxes.Count > 0;\r
+ \r
+ \r
+ selectAllInstsStripMenuItem.Enabled = chkIdxes.Count < instsListView.Items.Count;\r
+ unselectAllInstsStripMenuItem.Enabled = chkIdxes.Count > 0;\r
+ }\r
+ \r
+ void SilentInstallStripMenuItemClick(object sender, EventArgs e)\r
+ {\r
+ bool silent = ! silentInstallStripMenuItem.Checked;\r
+ foreach (ListViewItem item in instsListView.CheckedItems) {\r
+ ((Installation) item.Tag).Silent = silent;\r
+ }\r
+ updateInstsListView();\r
}\r
\r
void SelectAllInstsStripMenuItemClick(object sender, EventArgs e)\r
}\r
\r
#endregion\r
-\r
-\r
}\r
}\r