else\r
{\r
SetHeaderSortOrder();\r
- shipListPanel.Update(_sniffer, comboBoxGroup.Text, _config.ShipList.SortOrder, _config.ShipList.ShipType);\r
+ shipListPanel.Update(_sniffer, comboBoxGroup.Text, _config.ShipList.SortOrder,\r
+ _config.ShipList.ShipType);\r
+ }\r
+ if (shipListPanel.GroupUpdated)\r
+ {\r
+ StoreShipGroupToConfig();\r
+ _config.Save();\r
+ shipListPanel.GroupUpdated = false;\r
}\r
}\r
\r
checkBoxShipType.Checked = config.ShipType;\r
if (config.ShowHpInPercent)\r
shipListPanel.ToggleHpPercent();\r
- for (var i = 0; i < ShipListPanel.GroupCount; i++)\r
- {\r
- shipListPanel.GroupSettings[i] = i < config.ShipGroup.Count\r
- ? new HashSet<int>(config.ShipGroup[i])\r
- : new HashSet<int>();\r
- }\r
+ LoadShipGroupFromConfig();\r
comboBoxGroup.SelectedItem = config.Mode ?? "全員";\r
if (config.Location.X == int.MinValue)\r
return;\r
Height = bounds.Height;\r
}\r
\r
+ private void LoadShipGroupFromConfig()\r
+ {\r
+ var group = _config.ShipList.ShipGroup;\r
+ for (var i = 0; i < ShipListPanel.GroupCount; i++)\r
+ shipListPanel.GroupSettings[i] = i < group.Count ? new HashSet<int>(group[i]) : new HashSet<int>();\r
+ }\r
+\r
private void ShipListForm_FormClosing(object sender, FormClosingEventArgs e)\r
{\r
e.Cancel = true;\r
return;\r
var config = _config.ShipList;\r
config.ShowHpInPercent = shipListPanel.ShowHpInPercent;\r
- var all = _sniffer.ShipList.Select(s => s.Id).ToArray();\r
- config.ShipGroup.Clear();\r
- for (var i = 0; i < ShipListPanel.GroupCount; i++)\r
- {\r
- if (all.Length > 0)\r
- shipListPanel.GroupSettings[i].IntersectWith(all);\r
- config.ShipGroup.Add(shipListPanel.GroupSettings[i].ToList());\r
- }\r
+ StoreShipGroupToConfig();\r
var bounds = WindowState == FormWindowState.Normal ? Bounds : RestoreBounds;\r
config.Location = bounds.Location;\r
config.Size = bounds.Size;\r
config.Mode = (string)comboBoxGroup.SelectedItem;\r
if (e.CloseReason != CloseReason.FormOwnerClosing)\r
+ {\r
Hide();\r
+ _config.Save();\r
+ }\r
+ }\r
+\r
+ private void StoreShipGroupToConfig()\r
+ {\r
+ var all = _sniffer.ShipList.Select(s => s.Id).ToArray();\r
+ var group = _config.ShipList.ShipGroup;\r
+ group.Clear();\r
+ for (var i = 0; i < ShipListPanel.GroupCount; i++)\r
+ {\r
+ if (all.Length > 0)\r
+ shipListPanel.GroupSettings[i].IntersectWith(all);\r
+ group.Add(shipListPanel.GroupSettings[i].ToList());\r
+ }\r
}\r
\r
public void ShowShip(int id)\r