OSDN Git Service

AppliStation-GUI,メインウィンドウに情報メニューの追加など
[applistation/AppliStation.git] / AppliStation / PackageListViewForm.cs
index 3736ba3..13f03da 100644 (file)
@@ -82,9 +82,10 @@ namespace AppliStation
                        installBtnEnabled = (installPkgCount > 0) && (uninstallPkgCount == 0);\r
                        uninstallBtnEnabled = (uninstallPkgCount == 1) && (installPkgCount == 0);\r
                        \r
+                       upgradeToolStripButton.Visible = (selectedPkgs.Length <= 0);\r
+                       informationToolStripDropDownButton.Visible = (selectedPkgs.Length == 1);\r
                        uninstallToolStripButton.Visible = uninstallBtnEnabled;\r
                        installToolStripButton.Visible = installBtnEnabled;\r
-                       packageCommandsToolStripSeparator.Visible = uninstallBtnEnabled || installBtnEnabled;\r
                        \r
                        switch (selectedPkgs.Length) {\r
                                case 0:\r
@@ -170,15 +171,11 @@ namespace AppliStation
                \r
                void Form_OnLoad(object sender, EventArgs e)\r
                {\r
-                       System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PackageListViewForm));\r
-                       ImageList imageList = new ImageList();\r
-                       imageList.Images.Add("installed", this.Icon);\r
-                       imageList.Images.Add("sys", (Icon)(resources.GetObject("sysinstalled.Icon")));\r
-                       packageListView.SmallImageList = imageList;\r
+                       packageListViewImageList.Images.Add("installed", Icon.ExtractAssociatedIcon(Application.ExecutablePath));\r
                        \r
                        updatePackageFilterToolStripMenuItemCheckState();\r
-                       installedASPackageFilterToolStripMenuItem.Image = this.Icon.ToBitmap();\r
-                       installedSysPackageFilterToolStripMenuItem.Image = ((Icon)(resources.GetObject("sysinstalled.Icon"))).ToBitmap();\r
+                       installedASPackageFilterToolStripMenuItem.Image = packageListViewImageList.Images["installed"];\r
+                       installedSysPackageFilterToolStripMenuItem.Image = packageListViewImageList.Images["sys"];\r
                }\r
                \r
                #region PackageFilter関連\r
@@ -551,9 +548,11 @@ namespace AppliStation
                \r
                void PackageListContextMenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)\r
                {\r
+                       // コンテクストメニューから開かれなかった場合はインストール/アンインストールは表示しない\r
+                       bool parentIsPkgListView = (packageListContextMenuStrip.SourceControl == packageListView);\r
                        // メニューアイテムのインストール/アンインストールの表示はツールストリップに同じ\r
-                       installToolStripMenuItem.Visible = installToolStripButton.Visible;\r
-                       uninstallToolStripMenuItem.Visible = uninstallToolStripButton.Visible;\r
+                       installToolStripMenuItem.Visible = parentIsPkgListView && installToolStripButton.Visible;\r
+                       uninstallToolStripMenuItem.Visible = parentIsPkgListView && uninstallToolStripButton.Visible;\r
                        \r
                        // インストールもアンインストールもできない状態ならば、メニューを表示しない\r
                        if (! (installToolStripButton.Visible || uninstallToolStripButton.Visible)) {\r
@@ -581,7 +580,7 @@ namespace AppliStation
                                }\r
                        }\r
                        \r
-                       toolStripSeparator1.Visible = selectionIsOnlyOne;\r
+                       packageListContextMenuStripSeparator.Visible = parentIsPkgListView && selectionIsOnlyOne;\r
                        webResourcesToolStripMenuItem.Visible = selectionIsOnlyOne;\r
                        if (! selectionIsOnlyOne) installedDirectoryStripMenuItem.Visible = false;\r
                        propertiesToolStripMenuItem.Visible = selectionIsOnlyOne;\r