pkgListsMan = new PackageListsManager();\r
\r
this.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);\r
+ AppliStation.Util.NativeMethods.ListView_EnableVistaExplorerTheme(packageListView);\r
}\r
\r
private void ShowInfoToDetailBoxFor(Package pkg)\r
}\r
}\r
\r
+ private void buildInstalledDirectoryMenuItemStripChildren(InstalledPackage pkg)\r
+ {\r
+ installedDirectoryStripMenuItem.BaseFolderPath = pkg.UninstallInfo.InstallLocation;\r
+ }\r
+ \r
+ #region packageListViewのSort関連\r
+ \r
AppliStation.Util.ListViewItemSortComparer packageListViewSortComparer;\r
\r
void PackageListViewColumnClick(object sender, ColumnClickEventArgs e)\r
}\r
}\r
\r
+ #endregion\r
+ \r
void Form_OnLoad(object sender, EventArgs e)\r
{\r
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PackageListViewForm));\r
\r
void PackageListContextMenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)\r
{\r
- // 選択されていないなら開かない\r
- if (packageListView.SelectedItems.Count <= 0) {\r
- e.Cancel = true;\r
- return;\r
- }\r
- \r
// メニューアイテムのインストール/アンインストールの表示はツールストリップに同じ\r
installToolStripMenuItem.Visible = installToolStripButton.Visible;\r
uninstallToolStripMenuItem.Visible = uninstallToolStripButton.Visible;\r
\r
+ // インストールもアンインストールもできない状態ならば、メニューを表示しない\r
+ if (! (installToolStripButton.Visible || uninstallToolStripButton.Visible)) {\r
+ e.Cancel = true;\r
+ return;\r
+ }\r
+ \r
// 選択パッケージが1つのとき\r
- if (packageListView.SelectedItems.Count == 1) {\r
+ bool selectionIsOnlyOne = packageListView.SelectedItems.Count == 1;\r
+ if (selectionIsOnlyOne) {\r
Package pkg = SelectedPackage<Package>();\r
bool isInstalledPackage = pkg is InstalledPackage;\r
\r
webOfficialToolStripMenuItem.Enabled = ! (pkg.Url == null || string.IsNullOrEmpty(pkg.Url.Href));\r
// webGoogleSearchToolStripMenuItem always active.\r
\r
- openInstalledDirectoryStripMenuItem.Visible = isInstalledPackage &&\r
+ bool installedDirectoryStripMenuItemVisible = isInstalledPackage &&\r
( (pkg.Type == InstallerType.ARCHIVE) || Directory.Exists(((InstalledPackage) pkg).UninstallInfo.InstallLocation) );\r
+ installedDirectoryStripMenuItem.Visible = installedDirectoryStripMenuItemVisible;\r
+ if (installedDirectoryStripMenuItemVisible) {\r
+ buildInstalledDirectoryMenuItemStripChildren((InstalledPackage) pkg);\r
+ }\r
}\r
+ \r
+ toolStripSeparator1.Visible = selectionIsOnlyOne;\r
+ webResourcesToolStripMenuItem.Visible = selectionIsOnlyOne;\r
+ if (! selectionIsOnlyOne) installedDirectoryStripMenuItem.Visible = false;\r
+ propertiesToolStripMenuItem.Visible = selectionIsOnlyOne;\r
}\r
\r
private IEnumerable<Package> getUpdatedPackages(PackageList<InstalledPackage> installedPkgList, PackageList<Package> avaiablePkgList, IComparer<string> verComp)\r