OSDN Git Service

DPIズーム時に一覧のレイアウトがくずれるのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sat, 5 Sep 2020 08:59:45 +0000 (17:59 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sat, 5 Sep 2020 08:59:45 +0000 (17:59 +0900)
クラッシュするのを直したときの直し方がまずくScaler.Factorが
設定されるより前にShipListPanelのラベル生成が走っていた。

KancolleSniffer/Forms/ListForm.cs

index 622d214..af97edd 100644 (file)
@@ -31,7 +31,7 @@ namespace KancolleSniffer.Forms
         private readonly Config _config;\r
         private readonly Form _form;\r
         private readonly MainWindow.TimeOutChecker _suppressActivate;\r
-        private CheckBox[] _shipTypeCheckBoxes;\r
+        private readonly CheckBox[] _shipTypeCheckBoxes;\r
         private bool _isMaster;\r
         private Settings _settings;\r
         public const int PanelWidth = 215;\r
@@ -103,32 +103,7 @@ namespace KancolleSniffer.Forms
             _form = main.Form;\r
             _sniffer = main.Sniffer;\r
             _config = main.Config;\r
-            ApplySettings();\r
-            SetupShipTypeCheckBoxes();\r
             _suppressActivate = main.SuppressActivate;\r
-            battleResultPanel.HpLabelClick += ToggleHpPercent;\r
-            shipListPanel.HpLabelClick += ToggleHpPercent;\r
-            var swipe = new SwipeScrollify();\r
-            swipe.AddShipListPanel(shipListPanel);\r
-            swipe.AddTreeView(itemTreeView);\r
-            swipe.AddPanel(fleetPanel);\r
-        }\r
-\r
-        private void ApplySettings()\r
-        {\r
-            var config = GetConfig();\r
-            _settings = Settings.FromShipListConfig(config);\r
-            if (_settings.ShowHpInPercent)\r
-            {\r
-                shipListPanel.ToggleHpPercent();\r
-                battleResultPanel.ToggleHpPercent();\r
-            }\r
-            LoadShipGroupFromConfig();\r
-            comboBoxGroup.SelectedItem = _settings.Mode;\r
-        }\r
-\r
-        private void SetupShipTypeCheckBoxes()\r
-        {\r
             _shipTypeCheckBoxes = new[]\r
             {\r
                 checkBoxSTypeBattleShip,\r
@@ -140,7 +115,12 @@ namespace KancolleSniffer.Forms
                 checkBoxSTypeSubmarine,\r
                 checkBoxSTypeAuxiliary\r
             };\r
-            SetCheckBoxSTypeState();\r
+            battleResultPanel.HpLabelClick += ToggleHpPercent;\r
+            shipListPanel.HpLabelClick += ToggleHpPercent;\r
+            var swipe = new SwipeScrollify();\r
+            swipe.AddShipListPanel(shipListPanel);\r
+            swipe.AddTreeView(itemTreeView);\r
+            swipe.AddPanel(fleetPanel);\r
         }\r
 \r
         public void UpdateList()\r
@@ -297,8 +277,16 @@ namespace KancolleSniffer.Forms
         {\r
             AdjustHeader();\r
             SetMinimumSize();\r
-            comboBoxGroup.SelectedItem = _settings.Mode;\r
             var config = GetConfig();\r
+            _settings = Settings.FromShipListConfig(config);\r
+            if (_settings.ShowHpInPercent)\r
+            {\r
+                shipListPanel.ToggleHpPercent();\r
+                battleResultPanel.ToggleHpPercent();\r
+            }\r
+            LoadShipGroupFromConfig();\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
@@ -359,6 +347,8 @@ namespace KancolleSniffer.Forms
 \r
         public void SaveConfig()\r
         {\r
+            if (_settings == null)\r
+                return;\r
             if (_isMaster)\r
             {\r
                 SaveMasterState();\r