• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

修订版e39163e66599edc62a3de6d712d40d6d4f2d073c (tree)
时间2020-09-16 18:06:13
作者Kazuhiro Fujieda <fujieda@user...>
CommiterKazuhiro Fujieda

Log Message

Settingsクラスを廃止する

更改概述

差异

--- a/KancolleSniffer/Forms/ListForm.cs
+++ b/KancolleSniffer/Forms/ListForm.cs
@@ -33,47 +33,17 @@ namespace KancolleSniffer.Forms
3333 private readonly MainWindow.TimeOutChecker _suppressActivate;
3434 private readonly CheckBox[] _shipTypeCheckBoxes;
3535 private bool _isMaster;
36- private Settings _settings;
36+ private ShipListConfig _listConfig;
3737 private FormWindowState _windowState = FormWindowState.Minimized;
3838 public const int PanelWidth = 215;
3939
40- public class Settings
41- {
42- public string Mode { get; set; }
43- public ShipCategory ShipCategories { get; set; }
44- public bool ShipType { get; set; }
45- public bool ShowHpInPercent { get; set; }
46- public SortOrder SortOrder { get; set; }
47-
48- public static Settings FromShipListConfig(ShipListConfig config)
49- {
50- return new Settings
51- {
52- Mode = config.Mode ?? "全艦",
53- ShipCategories = config.ShipCategories,
54- ShipType = config.ShipType,
55- ShowHpInPercent = config.ShowHpInPercent,
56- SortOrder = config.SortOrder
57- };
58- }
59-
60- public void SetToShipListConfig(ShipListConfig config)
61- {
62- config.Mode = Mode;
63- config.ShipCategories = ShipCategories;
64- config.ShipType = ShipType;
65- config.ShowHpInPercent = ShowHpInPercent;
66- config.SortOrder = SortOrder;
67- }
68- }
69-
7040 private object[] PanelNames => new object[] {"全艦", "A", "B", "C", "D", "分類", "修復", "装備", "艦隊", "対空", "戦況", "情報"}
7141 .Where(n => IsMaster || (string)n != "分類").ToArray();
7242
7343 private char[] PanelKeys => new[] {'Z', 'A', 'B', 'C', 'D', 'G', 'R', 'W', 'X', 'Y', 'S', 'I'}
7444 .Where(key => IsMaster || key != 'G').ToArray();
7545
76- public bool IsMaster
46+ private bool IsMaster
7747 {
7848 get => _isMaster;
7949 set
@@ -97,10 +67,10 @@ namespace KancolleSniffer.Forms
9767 Repair
9868 }
9969
100- public ListForm(MainWindow main)
70+ public ListForm(MainWindow main, bool isMaster = false)
10171 {
10272 InitializeComponent();
103- IsMaster = false;
73+ IsMaster = isMaster;
10474 _form = main.Form;
10575 _sniffer = main.Sniffer;
10676 _config = main.Config;
@@ -122,6 +92,18 @@ namespace KancolleSniffer.Forms
12292 swipe.AddShipListPanel(shipListPanel);
12393 swipe.AddTreeView(itemTreeView);
12494 swipe.AddPanel(fleetPanel);
95+ SetupSettings();
96+ }
97+
98+ private void SetupSettings()
99+ {
100+ _listConfig = GetConfig();
101+ if (_listConfig.ShowHpInPercent)
102+ {
103+ shipListPanel.ToggleHpPercent();
104+ battleResultPanel.ToggleHpPercent();
105+ }
106+ LoadShipGroupFromConfig();
125107 }
126108
127109 public void UpdateList()
@@ -149,7 +131,7 @@ namespace KancolleSniffer.Forms
149131 else if (InShipStatus || InGroupConfig || InRepairList)
150132 {
151133 SetHeaderSortOrder();
152- shipListPanel.Update(_sniffer, comboBoxGroup.Text, _settings);
134+ shipListPanel.Update(_sniffer, comboBoxGroup.Text, _listConfig);
153135 }
154136 if (shipListPanel.GroupUpdated)
155137 {
@@ -235,7 +217,7 @@ namespace KancolleSniffer.Forms
235217
236218 private void SetHeaderSortOrder()
237219 {
238- switch (_settings.SortOrder)
220+ switch (_listConfig.SortOrder)
239221 {
240222 case SortOrder.None:
241223 labelHeaderCond.Text = "cond";
@@ -260,39 +242,31 @@ namespace KancolleSniffer.Forms
260242 }
261243 }
262244
263- private bool InShipStatus => Array.Exists(new[] {"全艦", "A", "B", "C", "D"}, x => _settings.Mode == x);
245+ private bool InShipStatus => Array.Exists(new[] {"全艦", "A", "B", "C", "D"}, x => _listConfig.Mode == x);
264246
265- private bool InGroupConfig => _settings.Mode == "分類";
247+ private bool InGroupConfig => _listConfig.Mode == "分類";
266248
267- private bool InRepairList => _settings.Mode == "修復";
249+ private bool InRepairList => _listConfig.Mode == "修復";
268250
269- private bool InItemList => _settings.Mode == "装備";
251+ private bool InItemList => _listConfig.Mode == "装備";
270252
271- private bool InFleetInfo => _settings.Mode == "艦隊";
253+ private bool InFleetInfo => _listConfig.Mode == "艦隊";
272254
273- private bool InAntiAir => _settings.Mode == "対空";
255+ private bool InAntiAir => _listConfig.Mode == "対空";
274256
275- private bool InBattleResult => _settings.Mode == "戦況";
257+ private bool InBattleResult => _listConfig.Mode == "戦況";
276258
277- private bool InMiscText => _settings.Mode == "情報";
259+ private bool InMiscText => _listConfig.Mode == "情報";
278260
279261 private void ListForm_Load(object sender, EventArgs e)
280262 {
281263 AdjustHeader();
282264 SetMinimumSize();
283- var config = GetConfig();
284- _settings = Settings.FromShipListConfig(config);
285- if (_settings.ShowHpInPercent)
286- {
287- shipListPanel.ToggleHpPercent();
288- battleResultPanel.ToggleHpPercent();
289- }
290- LoadShipGroupFromConfig();
291- comboBoxGroup.SelectedItem = _settings.Mode;
265+ comboBoxGroup.SelectedItem = _listConfig.Mode;
292266 SetCheckBoxSTypeState();
293- if (config.Location.X == int.MinValue)
267+ if (_listConfig.Location.X == int.MinValue)
294268 return;
295- var bounds = new Rectangle(config.Location, config.Size);
269+ var bounds = new Rectangle(_listConfig.Location, _listConfig.Size);
296270 if (MainWindow.IsTitleBarOnAnyScreen(bounds.Location))
297271 Location = bounds.Location;
298272 Size = bounds.Size;
@@ -318,11 +292,29 @@ namespace KancolleSniffer.Forms
318292
319293 private ShipListConfig GetConfig()
320294 {
321- if (_isMaster || _config.ListFormGroup.Count == 0)
295+ if (_isMaster)
322296 return _config.ShipList;
297+ if (_config.ListFormGroup.Count == 0)
298+ return CreateSecondaryConfig();
323299 var config = _config.ListFormGroup[0];
324300 _config.ListFormGroup.RemoveAt(0);
325- if (config.Mode == "分類")
301+ return config;
302+ }
303+
304+ private ShipListConfig CreateSecondaryConfig()
305+ {
306+ var src = _config.ShipList;
307+ var config = new ShipListConfig
308+ {
309+ Mode = src.Mode,
310+ ShipCategories = src.ShipCategories,
311+ ShipType = src.ShipType,
312+ ShowHpInPercent = src.ShowHpInPercent,
313+ SortOrder = src.SortOrder,
314+ Location = src.Location,
315+ Size = src.Size
316+ };
317+ if (config.Mode == "分類" || string.IsNullOrEmpty(config.Mode))
326318 config.Mode = "全艦";
327319 return config;
328320 }
@@ -337,9 +329,9 @@ namespace KancolleSniffer.Forms
337329 private void SetCheckBoxSTypeState()
338330 {
339331 for (var type = 0; type < _shipTypeCheckBoxes.Length; type++)
340- _shipTypeCheckBoxes[type].Checked = ((int)_settings.ShipCategories & (1 << type)) != 0;
341- checkBoxSTypeAll.Checked = _settings.ShipCategories == ShipCategory.All;
342- checkBoxSTypeDetails.Checked = _settings.ShipType;
332+ _shipTypeCheckBoxes[type].Checked = ((int)_listConfig.ShipCategories & (1 << type)) != 0;
333+ checkBoxSTypeAll.Checked = _listConfig.ShipCategories == ShipCategory.All;
334+ checkBoxSTypeDetails.Checked = _listConfig.ShipType;
343335 }
344336
345337 private void ListForm_FormClosing(object sender, FormClosingEventArgs e)
@@ -350,8 +342,6 @@ namespace KancolleSniffer.Forms
350342
351343 public void SaveConfig()
352344 {
353- if (_settings == null)
354- return;
355345 if (_isMaster)
356346 {
357347 SaveMasterState();
@@ -365,10 +355,8 @@ namespace KancolleSniffer.Forms
365355 private void SaveMasterState()
366356 {
367357 StoreShipGroupToConfig();
368- var config = _config.ShipList;
369- config.Visible = Visible && WindowState == FormWindowState.Normal;
370- _settings.SetToShipListConfig(config);
371- SaveBounds(config); // 最小化時は以前のサイズを記録する
358+ _listConfig.Visible = Visible && WindowState == FormWindowState.Normal;
359+ SaveBounds(_listConfig); // 最小化時は以前のサイズを記録する
372360 }
373361
374362 private void SaveSlaveState()
@@ -377,10 +365,9 @@ namespace KancolleSniffer.Forms
377365 return;
378366 if (WindowState != FormWindowState.Normal) // 最小化時は次回復旧しない
379367 return;
380- var config = new ShipListConfig {Visible = true};
381- _settings.SetToShipListConfig(config);
382- _config.ListFormGroup.Add(config);
383- SaveBounds(config);
368+ _listConfig.Visible = true;
369+ _config.ListFormGroup.Add(_listConfig);
370+ SaveBounds(_listConfig);
384371 }
385372
386373 private void SaveBounds(ShipListConfig config)
@@ -470,9 +457,7 @@ namespace KancolleSniffer.Forms
470457
471458 private void comboBoxGroup_SelectedIndexChanged(object sender, EventArgs e)
472459 {
473- if (_settings == null)
474- return;
475- _settings.Mode = comboBoxGroup.Text;
460+ _listConfig.Mode = comboBoxGroup.Text;
476461 UpdateList();
477462 SetActiveControl();
478463 if (!(InShipStatus || InGroupConfig || InRepairList))
@@ -531,16 +516,16 @@ namespace KancolleSniffer.Forms
531516
532517 private void labelHeaderCond_Click(object sender, EventArgs e)
533518 {
534- switch (_settings.SortOrder)
519+ switch (_listConfig.SortOrder)
535520 {
536521 case SortOrder.CondAscend:
537- _settings.SortOrder = SortOrder.CondDescend;
522+ _listConfig.SortOrder = SortOrder.CondDescend;
538523 break;
539524 case SortOrder.CondDescend:
540- _settings.SortOrder = SortOrder.None;
525+ _listConfig.SortOrder = SortOrder.None;
541526 break;
542527 default:
543- _settings.SortOrder = SortOrder.CondAscend;
528+ _listConfig.SortOrder = SortOrder.CondAscend;
544529 break;
545530 }
546531 UpdateList();
@@ -548,16 +533,16 @@ namespace KancolleSniffer.Forms
548533
549534 private void labelHeaderExp_Click(object sender, EventArgs e)
550535 {
551- switch (_settings.SortOrder)
536+ switch (_listConfig.SortOrder)
552537 {
553538 case SortOrder.ExpToNextAscend:
554- _settings.SortOrder = SortOrder.ExpToNextDescend;
539+ _listConfig.SortOrder = SortOrder.ExpToNextDescend;
555540 break;
556541 case SortOrder.ExpToNextDescend:
557- _settings.SortOrder = SortOrder.None;
542+ _listConfig.SortOrder = SortOrder.None;
558543 break;
559544 default:
560- _settings.SortOrder = SortOrder.ExpToNextAscend;
545+ _listConfig.SortOrder = SortOrder.ExpToNextAscend;
561546 break;
562547 }
563548 UpdateList();
@@ -585,7 +570,7 @@ namespace KancolleSniffer.Forms
585570
586571 private void ToggleHpPercent()
587572 {
588- _settings.ShowHpInPercent = !_settings.ShowHpInPercent;
573+ _listConfig.ShowHpInPercent = !_listConfig.ShowHpInPercent;
589574 shipListPanel.ToggleHpPercent();
590575 battleResultPanel.ToggleHpPercent();
591576 }
@@ -605,7 +590,7 @@ namespace KancolleSniffer.Forms
605590
606591 private void checkBoxSType_Click(object sender, EventArgs e)
607592 {
608- _settings.ShipCategories = SelectedShipTypes;
593+ _listConfig.ShipCategories = SelectedShipTypes;
609594 UpdateList();
610595 SetActiveControl();
611596 }
@@ -635,7 +620,7 @@ namespace KancolleSniffer.Forms
635620
636621 private void checkBoxSTypeDetails_Click(object sender, EventArgs e)
637622 {
638- _settings.ShipType = checkBoxSTypeDetails.Checked;
623+ _listConfig.ShipType = checkBoxSTypeDetails.Checked;
639624 UpdateList();
640625 SetActiveControl();
641626 }
--- a/KancolleSniffer/Forms/ListFormGroup.cs
+++ b/KancolleSniffer/Forms/ListFormGroup.cs
@@ -30,7 +30,7 @@ namespace KancolleSniffer.Forms
3030 public ListFormGroup(MainWindow main)
3131 {
3232 _mainWindow = main;
33- _listForms.Add(new ListForm(main) {IsMaster = true});
33+ _listForms.Add(new ListForm(main, true));
3434 for (var i = 0; i < main.Config.ListFormGroup.Count; i++)
3535 _listForms.Add(new ListForm(main) {Owner = Main});
3636 }
--- a/KancolleSniffer/View/ShipListPanel/ShipListPanel.cs
+++ b/KancolleSniffer/View/ShipListPanel/ShipListPanel.cs
@@ -88,7 +88,7 @@ namespace KancolleSniffer.View.ShipListPanel
8888 ScrollBar.Value - e.Delta * SystemInformation.MouseWheelScrollLines / 120));
8989 }
9090
91- public void Update(Sniffer sniffer, string mode, ListForm.Settings settings)
91+ public void Update(Sniffer sniffer, string mode, ShipListConfig settings)
9292 {
9393 _mode = mode;
9494 CreateShipList(sniffer, settings);
@@ -115,7 +115,7 @@ namespace KancolleSniffer.View.ShipListPanel
115115 Refresh();
116116 }
117117
118- private void CreateShipList(Sniffer sniffer, ListForm.Settings settings)
118+ private void CreateShipList(Sniffer sniffer, ShipListConfig settings)
119119 {
120120 var ships = FilterByShipTypes(
121121 _mode == "修復" ? sniffer.RepairList : _groupConfigLabels.FilterByGroup(sniffer.ShipList, _mode),