OSDN Git Service

na-get-lib,キャッシュフォルダの構成を複数インストーラーファイル対応に変更(キャッシュフォルダを異なるアーキテクチャやOSで共有したときにハッシュ値不適合となっ...
[applistation/AppliStation.git] / AppliStation / PackageListViewForm.cs
index 2098e9f..b479a20 100644 (file)
@@ -113,6 +113,7 @@ namespace AppliStation
                        switch (pkgCount) {\r
                                case 0:\r
                                        int count = packageListView.Items.Count;\r
+                                       detailBox.Clear();\r
                                        detailBox.Text = (count > 0) ? string.Format("{0}個のソフトがあります。", count)\r
                                                : "該当するソフトがありません。";\r
                                        break;\r
@@ -120,6 +121,7 @@ namespace AppliStation
                                        ShowInfoToDetailBoxFor(packageListView.SelectedPackage);\r
                                        break;\r
                                default: // case 2 and over:\r
+                                       detailBox.Clear();\r
                                        detailBox.Text = (installBtnEnabled)? string.Format("{0}個のソフトが選択されています。", installPkgCount) :\r
                                                (uninstallBtnEnabled)? string.Format("{0}個のインストール済みのソフトが選択されています。", uninstallPkgCount) :\r
                                                string.Format("{0}個のソフトが選択されています。\r\n(うち{1}個はインストール済み、{2}個はインストール可能)", pkgCount, uninstallPkgCount, installPkgCount);\r
@@ -464,8 +466,8 @@ namespace AppliStation
                        if (pkg != null) {\r
                                if (pkg.Type == InstallerType.ARCHIVE || pkg.Type == InstallerType.ITSELF) {\r
                                        System.Diagnostics.Process.Start(Path.Combine(NaGet.Env.ArchiveProgramFiles, pkg.Name));\r
-                               } else if (Directory.Exists(pkg.discoverInstalledLocation())) {\r
-                                       System.Diagnostics.Process.Start(pkg.discoverInstalledLocation());\r
+                               } else if (Directory.Exists(pkg.DiscoverInstalledLocation())) {\r
+                                       System.Diagnostics.Process.Start(pkg.DiscoverInstalledLocation());\r
                                }\r
                        }\r
                }\r
@@ -502,11 +504,11 @@ namespace AppliStation
                                        bool launcherMenuItemVisible = \r
                                                (pkg.Type == InstallerType.ARCHIVE) ||\r
                                                (pkg.Type == InstallerType.ITSELF) ||\r
-                                               Directory.Exists(iPkg.discoverInstalledLocation());\r
+                                               Directory.Exists(iPkg.DiscoverInstalledLocation());\r
                                        \r
                                        launcherMenuItem.Visible = launcherMenuItemVisible;\r
                                        if (launcherMenuItemVisible) {\r
-                                               launcherMenuItem.BaseFolderPath = iPkg.discoverInstalledLocation();\r
+                                               launcherMenuItem.BaseFolderPath = iPkg.DiscoverInstalledLocation();\r
                                        }\r
                                } else {\r
                                        launcherMenuItem.Visible = false;\r
@@ -540,7 +542,6 @@ namespace AppliStation
                        packageListContextMenuStripSeparator.Visible = selectionIsOnlyOne;\r
                        webResourceToolStripMenuItem.Visible = selectionIsOnlyOne;\r
                        propertiesToolStripMenuItem.Visible = hasSelection;\r
-                       viewStyleToolStripMenuItem.Visible = ! hasSelection;\r
                        columnToolStripMenuItem.Visible = (! hasSelection) && (packageListView.View == View.Details);\r
                }\r
                \r
@@ -559,7 +560,15 @@ namespace AppliStation
                void WebResourceCommonContextMenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)\r
                {\r
                        Package pkg = packageListView.SelectedPackage;\r
-                       webOfficialMenuItem.Enabled = (pkg != null && pkg.Url != null && !string.IsNullOrEmpty(pkg.Url.Href));\r
+                       \r
+                       if (pkg != null && pkg.Url != null && !string.IsNullOrEmpty(pkg.Url.Href)) {\r
+                               webOfficialMenuItem.Enabled = true;\r
+                               webOfficialMenuItem.ToolTipText = pkg.Url.Href;\r
+                       } else {\r
+                               webOfficialMenuItem.Enabled = false;\r
+                               webOfficialMenuItem.ToolTipText = null;\r
+                       }\r
+                       \r
                        // webGoogleSearchMenuItem always active.\r
                }\r
                \r
@@ -647,24 +656,10 @@ namespace AppliStation
                        }\r
                }\r
                \r
-               void ViewStyleCommonToolStripMenuItemClick(object sender, EventArgs e)\r
-               {\r
-                       viewStyleDetailToolStripMenuItem.Checked = (sender == viewStyleDetailToolStripMenuItem);\r
-                       viewStyleListToolStripMenuItem.Checked = (sender == viewStyleListToolStripMenuItem);\r
-                       viewStyleTileToolStripMenuItem.Checked = (sender == viewStyleTileToolStripMenuItem);\r
-                       \r
-                       if (sender == viewStyleDetailToolStripMenuItem) {\r
-                               packageListView.View = View.Details;\r
-                       } else if (sender == viewStyleListToolStripMenuItem) {\r
-                               packageListView.View = View.List;\r
-                       } else if (sender == viewStyleTileToolStripMenuItem) {\r
-                               packageListView.View = View.Tile;\r
-                       }\r
-               }\r
-               \r
                void ColumnCommonToolStripMenuItemClick(object sender, EventArgs e)\r
                {\r
                        packageListView.BeginUpdate();\r
+                       ColumnHeader sortcolumn = packageListView.SortColumn;\r
                        \r
                        // 列の追加と削除\r
                        foreach (ToolStripItem item in columnToolStripMenuItem.DropDownItems) {\r
@@ -675,6 +670,9 @@ namespace AppliStation
                                        foreach (ColumnHeader header in packageListView.Columns) {\r
                                                if (header.Tag == menu.Tag) {\r
                                                        exists = true;\r
+                                                       if (sortcolumn == header) {\r
+                                                               packageListView.SortColumn = sortcolumn = null;\r
+                                                       }\r
                                                        if (menu.Checked == false) {\r
                                                                packageListView.Columns.Remove(header);\r
                                                        }\r
@@ -692,6 +690,8 @@ namespace AppliStation
                                }\r
                        }\r
                        \r
+                       AppliStation.Util.NativeMethods.ColumnHeader_SetSortState(packageListView, (sortcolumn != null)? sortcolumn.Index : -1, SortOrder.None);\r
+                       \r
                        packageListView.UpdateItems();\r
                        \r
                        packageListView.EndUpdate();\r