private readonly MainForm.TimeOutChecker _suppressActivate;\r
private readonly CheckBox[] _shipTypeCheckBoxes;\r
private bool _isMaster;\r
+ private Settings _settings;\r
public const int PanelWidth = 217;\r
\r
+ public class Settings\r
+ {\r
+ public string Mode { get; set; }\r
+ public ShipCategory ShipCategories { get; set; }\r
+ public bool ShipType { get; set; }\r
+ public bool ShowHpInPercent { get; set; }\r
+ public SortOrder SortOrder { get; set; }\r
+\r
+ public static Settings FromShipListConfig(ShipListConfig config)\r
+ {\r
+ return new Settings\r
+ {\r
+ Mode = config.Mode ?? "全艦",\r
+ ShipCategories = config.ShipCategories,\r
+ ShipType = config.ShipType,\r
+ ShowHpInPercent = config.ShowHpInPercent,\r
+ SortOrder = config.SortOrder\r
+ };\r
+ }\r
+\r
+ public void SetToShipListConfig(ShipListConfig config)\r
+ {\r
+ config.Mode = Mode;\r
+ config.ShipCategories = ShipCategories;\r
+ config.ShipType = ShipType;\r
+ config.ShowHpInPercent = ShowHpInPercent;\r
+ config.SortOrder = SortOrder;\r
+ }\r
+ }\r
+\r
private object[] PanelNames => new object[] {"全艦", "A", "B", "C", "D", "分類", "修復", "装備", "艦隊", "対空", "戦況", "情報"}\r
.Where(n => IsMaster || (string)n != "分類").ToArray();\r
\r
else if (InShipStatus || InGroupConfig || InRepairList)\r
{\r
SetHeaderSortOrder();\r
- shipListPanel.Update(_sniffer, comboBoxGroup.Text, _config.ShipList);\r
+ shipListPanel.Update(_sniffer, comboBoxGroup.Text, _settings);\r
}\r
if (shipListPanel.GroupUpdated)\r
{\r
\r
private void MoveToBattleResult()\r
{\r
- if (!_config.ShipList.AutoBattleResult || comboBoxGroup.SelectedIndex == BattleResultIndex ||\r
+ if (!_isMaster || !_config.ShipList.AutoBattleResult || comboBoxGroup.SelectedIndex == BattleResultIndex ||\r
_sniffer.InSortie == -1)\r
return;\r
_prevSelectedIndex = comboBoxGroup.SelectedIndex;\r
\r
private void SetHeaderSortOrder()\r
{\r
- switch (_config.ShipList.SortOrder)\r
+ switch (_settings.SortOrder)\r
{\r
case SortOrder.None:\r
labelHeaderCond.Text = "cond";\r
}\r
}\r
\r
- private bool InShipStatus => Array.Exists(new[] {"全艦", "A", "B", "C", "D"}, x => comboBoxGroup.Text == x);\r
+ private bool InShipStatus => Array.Exists(new[] {"全艦", "A", "B", "C", "D"}, x => _settings.Mode == x);\r
\r
- private bool InGroupConfig => comboBoxGroup.Text == "分類";\r
+ private bool InGroupConfig => _settings.Mode == "分類";\r
\r
- private bool InRepairList => comboBoxGroup.Text == "修復";\r
+ private bool InRepairList => _settings.Mode == "修復";\r
\r
- private bool InItemList => comboBoxGroup.Text == "装備";\r
+ private bool InItemList => _settings.Mode == "装備";\r
\r
- private bool InFleetInfo => comboBoxGroup.Text == "艦隊";\r
+ private bool InFleetInfo => _settings.Mode == "艦隊";\r
\r
- private bool InAntiAir => comboBoxGroup.Text == "対空";\r
+ private bool InAntiAir => _settings.Mode == "対空";\r
\r
- private bool InBattleResult => comboBoxGroup.Text == "戦況";\r
+ private bool InBattleResult => _settings.Mode == "戦況";\r
\r
- private bool InMiscText => comboBoxGroup.Text == "情報";\r
+ private bool InMiscText => _settings.Mode == "情報";\r
\r
private void ListForm_Load(object sender, EventArgs e)\r
{\r
MinimumSize = new Size(Width, 0);\r
MaximumSize = new Size(Width, int.MaxValue);\r
var config = GetConfig();\r
- if (config.ShowHpInPercent)\r
+ _settings = Settings.FromShipListConfig(config);\r
+ if (_settings.ShowHpInPercent)\r
{\r
shipListPanel.ToggleHpPercent();\r
battleResultPanel.ToggleHpPercent();\r
}\r
LoadShipGroupFromConfig();\r
- comboBoxGroup.SelectedItem = config.Mode ?? "全艦";\r
- SetCheckBoxSTypeState(config);\r
+ comboBoxGroup.SelectedItem = _settings.Mode;\r
+ SetCheckBoxSTypeState();\r
if (config.Location.X == int.MinValue)\r
return;\r
var bounds = new Rectangle(config.Location, config.Size);\r
shipListPanel.GroupSettings[i] = i < group.Count ? new HashSet<int>(group[i]) : new HashSet<int>();\r
}\r
\r
- private void SetCheckBoxSTypeState(ShipListConfig config)\r
+ private void SetCheckBoxSTypeState()\r
{\r
for (var type = 0; type < _shipTypeCheckBoxes.Length; type++)\r
- _shipTypeCheckBoxes[type].Checked = ((int)config.ShipCategories & (1 << type)) != 0;\r
- checkBoxSTypeAll.Checked = config.ShipCategories == ShipCategory.All;\r
- checkBoxSTypeDetails.Checked = config.ShipType;\r
+ _shipTypeCheckBoxes[type].Checked = ((int)_settings.ShipCategories & (1 << type)) != 0;\r
+ checkBoxSTypeAll.Checked = _settings.ShipCategories == ShipCategory.All;\r
+ checkBoxSTypeDetails.Checked = _settings.ShipType;\r
}\r
\r
private void ListForm_FormClosing(object sender, FormClosingEventArgs e)\r
StoreShipGroupToConfig();\r
var config = _config.ShipList;\r
config.Visible = Visible && WindowState == FormWindowState.Normal;\r
- config.Mode = (string)comboBoxGroup.SelectedItem;\r
+ _settings.SetToShipListConfig(config);\r
if (!Visible)\r
return;\r
SaveBounds(config); // 最小化時は以前のサイズを記録する\r
if (WindowState != FormWindowState.Normal) // 最小化時は次回復旧しない\r
return;\r
var config = new ShipListConfig {Visible = true};\r
+ _settings.SetToShipListConfig(config);\r
_config.ListFormGroup.Add(config);\r
- config.Mode = (string)comboBoxGroup.SelectedItem;\r
SaveBounds(config);\r
}\r
\r
\r
private void comboBoxGroup_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
+ _settings.Mode = comboBoxGroup.Text;\r
UpdateList();\r
SetActiveControl();\r
if (!(InShipStatus || InGroupConfig || InRepairList))\r
\r
private void labelHeaderCond_Click(object sender, EventArgs e)\r
{\r
- var sl = _config.ShipList;\r
- switch (sl.SortOrder)\r
+ switch (_settings.SortOrder)\r
{\r
case SortOrder.CondAscend:\r
- sl.SortOrder = SortOrder.CondDescend;\r
+ _settings.SortOrder = SortOrder.CondDescend;\r
break;\r
case SortOrder.CondDescend:\r
- sl.SortOrder = SortOrder.None;\r
+ _settings.SortOrder = SortOrder.None;\r
break;\r
default:\r
- sl.SortOrder = SortOrder.CondAscend;\r
+ _settings.SortOrder = SortOrder.CondAscend;\r
break;\r
}\r
UpdateList();\r
\r
private void labelHeaderExp_Click(object sender, EventArgs e)\r
{\r
- var sl = _config.ShipList;\r
- switch (sl.SortOrder)\r
+ switch (_settings.SortOrder)\r
{\r
case SortOrder.ExpToNextAscend:\r
- sl.SortOrder = SortOrder.ExpToNextDescend;\r
+ _settings.SortOrder = SortOrder.ExpToNextDescend;\r
break;\r
case SortOrder.ExpToNextDescend:\r
- sl.SortOrder = SortOrder.None;\r
+ _settings.SortOrder = SortOrder.None;\r
break;\r
default:\r
- sl.SortOrder = SortOrder.ExpToNextAscend;\r
+ _settings.SortOrder = SortOrder.ExpToNextAscend;\r
break;\r
}\r
UpdateList();\r
\r
private void ToggleHpPercent()\r
{\r
- _config.ShipList.ShowHpInPercent = !_config.ShipList.ShowHpInPercent;\r
+ _settings.ShowHpInPercent = !_settings.ShowHpInPercent;\r
shipListPanel.ToggleHpPercent();\r
battleResultPanel.ToggleHpPercent();\r
}\r
\r
private void checkBoxSType_Click(object sender, EventArgs e)\r
{\r
- _config.ShipList.ShipCategories = SelectedShipTypes;\r
+ _settings.ShipCategories = SelectedShipTypes;\r
UpdateList();\r
SetActiveControl();\r
}\r
\r
private void checkBoxSTypeDetails_Click(object sender, EventArgs e)\r
{\r
- _config.ShipList.ShipType = checkBoxSTypeDetails.Checked;\r
+ _settings.ShipType = checkBoxSTypeDetails.Checked;\r
UpdateList();\r
SetActiveControl();\r
}\r