using System.IO;\r
using System.Collections.Generic;\r
\r
+using AppliStation.PackageInfo;\r
+\r
namespace AppliStation\r
{\r
/// <summary>\r
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
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
bool selectionIsOnlyOne = packageListView.SelectedItems.Count == 1;\r
bool hasSelection = packageListView.SelectedItems.Count > 0;\r
\r
+ updateSelectedPackages();\r
+ \r
// インストール先のフォルダの設定\r
updateLauncherMenuItem(installedDirectoryToolStripMenuItem);\r
\r
+ if (packageListView.View == View.Details) {\r
+ // ヘッダ部がクリックされたとき、パッケージが選択されていないものとして扱って処理をする。\r
+ int headerHeight = AppliStation.Util.NativeMethods.ColumnHeader_GetSize(packageListView).Height;\r
+ if (packageListView.PointToClient(packageListContextMenuStrip.Location).Y < headerHeight) {\r
+ selectionIsOnlyOne = hasSelection = false;\r
+ installToolStripMenuItem.Visible = false;\r
+ uninstallToolStripMenuItem.Visible = false;\r
+ installedDirectoryToolStripMenuItem.Visible = false;\r
+ }\r
+ }\r
+ \r
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
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
}\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
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
}\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