/// <summary> /// UIをもとに設定を適用します。 /// </summary> public void ToConfiguration(Configuration.ConfigurationData config) { //[通信] { bool changed = false; changed |= config.Connection.Port != (ushort)Connection_Port.Value; config.Connection.Port = (ushort)Connection_Port.Value; config.Connection.SaveReceivedData = Connection_SaveReceivedData.Checked; config.Connection.SaveDataPath = Connection_SaveDataPath.Text.Trim(@"\ """.ToCharArray()); config.Connection.SaveRequest = Connection_SaveRequest.Checked; config.Connection.SaveResponse = Connection_SaveResponse.Checked; config.Connection.SaveSWF = Connection_SaveSWF.Checked; config.Connection.SaveOtherFile = Connection_SaveOtherFile.Checked; config.Connection.ApplyVersion = Connection_ApplyVersion.Checked; changed |= config.Connection.RegisterAsSystemProxy != Connection_RegisterAsSystemProxy.Checked; config.Connection.RegisterAsSystemProxy = Connection_RegisterAsSystemProxy.Checked; changed |= config.Connection.UseUpstreamProxy != Connection_UseUpstreamProxy.Checked; config.Connection.UseUpstreamProxy = Connection_UseUpstreamProxy.Checked; changed |= config.Connection.UpstreamProxyPort != (ushort)Connection_UpstreamProxyPort.Value; config.Connection.UpstreamProxyPort = (ushort)Connection_UpstreamProxyPort.Value; changed |= config.Connection.UpstreamProxyAddress != Connection_UpstreamProxyAddress.Text; config.Connection.UpstreamProxyAddress = Connection_UpstreamProxyAddress.Text; changed |= config.Connection.UseSystemProxy != Connection_UseSystemProxy.Checked; config.Connection.UseSystemProxy = Connection_UseSystemProxy.Checked; changed |= config.Connection.DownstreamProxy != Connection_DownstreamProxy.Text; config.Connection.DownstreamProxy = Connection_DownstreamProxy.Text; if (changed) { APIObserver.Instance.Start(config.Connection.Port, _UIControl); } } //[UI] config.UI.MainFont = UI_MainFont.Font; config.UI.SubFont = UI_SubFont.Font; config.UI.BarColorMorphing = UI_BarColorMorphing.Checked; //[ログ] config.Log.LogLevel = (int)Log_LogLevel.Value; config.Log.SaveLogFlag = Log_SaveLogFlag.Checked; config.Log.SaveErrorReport = Log_SaveErrorReport.Checked; config.Log.FileEncodingID = Log_FileEncodingID.SelectedIndex; config.Log.ShowSpoiler = Log_ShowSpoiler.Checked; //[動作] config.Control.ConditionBorder = (int)Control_ConditionBorder.Value; config.Control.RecordAutoSaving = Control_RecordAutoSaving.SelectedIndex; config.Control.UseSystemVolume = Control_UseSystemVolume.Checked; config.Control.PowerEngagementForm = Control_PowerEngagementForm.SelectedIndex + 1; //[デバッグ] config.Debug.EnableDebugMenu = Debug_EnableDebugMenu.Checked; config.Debug.LoadAPIListOnLoad = Debug_LoadAPIListOnLoad.Checked; config.Debug.APIListPath = Debug_APIListPath.Text; config.Debug.AlertOnError = Debug_AlertOnError.Checked; //[起動と終了] config.Life.ConfirmOnClosing = Life_ConfirmOnClosing.Checked; config.Life.TopMost = Life_TopMost.Checked; config.Life.LayoutFilePath = Life_LayoutFilePath.Text; config.Life.CheckUpdateInformation = Life_CheckUpdateInformation.Checked; config.Life.ShowStatusBar = Life_ShowStatusBar.Checked; config.Life.ClockFormat = Life_ClockFormat.SelectedIndex; config.Life.LockLayout = Life_LockLayout.Checked; config.Life.CanCloseFloatWindowInLock = Life_CanCloseFloatWindowInLock.Checked; //[サブウィンドウ] config.FormArsenal.ShowShipName = FormArsenal_ShowShipName.Checked; config.FormArsenal.BlinkAtCompletion = FormArsenal_BlinkAtCompletion.Checked; config.FormDock.BlinkAtCompletion = FormDock_BlinkAtCompletion.Checked; config.FormFleet.ShowAircraft = FormFleet_ShowAircraft.Checked; config.FormFleet.SearchingAbilityMethod = FormFleet_SearchingAbilityMethod.SelectedIndex; config.FormFleet.IsScrollable = FormFleet_IsScrollable.Checked; config.FormFleet.FixShipNameWidth = FormFleet_FixShipNameWidth.Checked; config.FormFleet.ShortenHPBar = FormFleet_ShortenHPBar.Checked; config.FormFleet.ShowNextExp = FormFleet_ShowNextExp.Checked; config.FormFleet.EquipmentLevelVisibility = (Window.Control.ShipStatusEquipment.LevelVisibilityFlag)FormFleet_EquipmentLevelVisibility.SelectedIndex; config.FormFleet.AirSuperiorityMethod = FormFleet_AirSuperiorityMethod.SelectedIndex; config.FormFleet.ShowAnchorageRepairingTimer = FormFleet_ShowAnchorageRepairingTimer.Checked; config.FormFleet.BlinkAtCompletion = FormFleet_BlinkAtCompletion.Checked; config.FormFleet.ShowConditionIcon = FormFleet_ShowConditionIcon.Checked; config.FormHeadquarters.BlinkAtMaximum = FormHeadquarters_BlinkAtMaximum.Checked; { var list = new List <bool>(); for (int i = 0; i < FormHeadquarters_Visibility.Items.Count; i++) { list.Add(FormHeadquarters_Visibility.GetItemChecked(i)); } config.FormHeadquarters.Visibility.List = list; } { string name = FormHeadquarters_DisplayUseItemID.Text; if (string.IsNullOrEmpty(name)) { config.FormHeadquarters.DisplayUseItemID = -1; } else { var item = ElectronicObserver.Data.KCDatabase.Instance.MasterUseItems.Values.FirstOrDefault(p => p.Name == name); if (item != null) { config.FormHeadquarters.DisplayUseItemID = item.ItemID; } else { int val; if (int.TryParse(name, out val)) { config.FormHeadquarters.DisplayUseItemID = val; } else { config.FormHeadquarters.DisplayUseItemID = -1; } } } } config.FormQuest.ShowRunningOnly = FormQuest_ShowRunningOnly.Checked; config.FormQuest.ShowOnce = FormQuest_ShowOnce.Checked; config.FormQuest.ShowDaily = FormQuest_ShowDaily.Checked; config.FormQuest.ShowWeekly = FormQuest_ShowWeekly.Checked; config.FormQuest.ShowMonthly = FormQuest_ShowMonthly.Checked; config.FormQuest.ShowOther = FormQuest_ShowOther.Checked; config.FormQuest.ProgressAutoSaving = FormQuest_ProgressAutoSaving.SelectedIndex; config.FormQuest.AllowUserToSortRows = FormQuest_AllowUserToSortRows.Checked; config.FormShipGroup.AutoUpdate = FormShipGroup_AutoUpdate.Checked; config.FormShipGroup.ShowStatusBar = FormShipGroup_ShowStatusBar.Checked; config.FormShipGroup.ShipNameSortMethod = FormShipGroup_ShipNameSortMethod.SelectedIndex; config.FormBattle.IsScrollable = FormBattle_IsScrollable.Checked; config.FormBrowser.IsEnabled = FormBrowser_IsEnabled.Checked; config.FormBrowser.ZoomRate = (int)FormBrowser_ZoomRate.Value; config.FormBrowser.ZoomFit = FormBrowser_ZoomFit.Checked; config.FormBrowser.LogInPageURL = FormBrowser_LogInPageURL.Text; if (FormBrowser_ScreenShotFormat_JPEG.Checked) { config.FormBrowser.ScreenShotFormat = 1; } else { config.FormBrowser.ScreenShotFormat = 2; } config.FormBrowser.ScreenShotPath = FormBrowser_ScreenShotPath.Text; config.FormBrowser.ConfirmAtRefresh = FormBrowser_ConfirmAtRefresh.Checked; config.FormBrowser.AppliesStyleSheet = FormBrowser_AppliesStyleSheet.Checked; config.FormBrowser.FlashQuality = FormBrowser_FlashQuality.Text; config.FormBrowser.FlashWMode = FormBrowser_FlashWMode.Text; if (FormBrowser_ToolMenuDockStyle.SelectedIndex == 4) { config.FormBrowser.IsToolMenuVisible = false; } else { config.FormBrowser.IsToolMenuVisible = true; config.FormBrowser.ToolMenuDockStyle = (DockStyle)(FormBrowser_ToolMenuDockStyle.SelectedIndex + 1); } config.FormCompass.CandidateDisplayCount = (int)FormCompass_CandidateDisplayCount.Value; config.FormJson.AutoUpdate = FormJson_AutoUpdate.Checked; config.FormJson.UpdatesTree = FormJson_UpdatesTree.Checked; config.FormJson.AutoUpdateFilter = FormJson_AutoUpdateFilter.Text; //[通知] setSilencioConfig(Notification_Silencio.Checked); //[データベース] config.Connection.SendDataToKancolleDB = Database_SendDataToKancolleDB.Checked; config.Connection.SendKancolleOAuth = Database_SendKancolleOAuth.Text; //[BGM] config.BGMPlayer.Enabled = BGMPlayer_Enabled.Checked; for (int i = 0; i < BGMPlayer_ControlGrid.Rows.Count; i++) { BGMHandles[(SyncBGMPlayer.SoundHandleID)BGMPlayer_ControlGrid[BGMPlayer_ColumnContent.Index, i].Value].Enabled = (bool)BGMPlayer_ControlGrid[BGMPlayer_ColumnEnabled.Index, i].Value; } config.BGMPlayer.Handles = new List <SyncBGMPlayer.SoundHandle>(BGMHandles.Values.ToList()); config.BGMPlayer.SyncBrowserMute = BGMPlayer_SyncBrowserMute.Checked; }
/// <summary> /// UIをもとに設定を適用します。 /// </summary> public void ToConfiguration(Configuration.ConfigurationData config) { //[通信] { bool changed = false; changed |= config.Connection.Port != (ushort)Connection_Port.Value; config.Connection.Port = (ushort)Connection_Port.Value; config.Connection.SaveReceivedData = Connection_SaveReceivedData.Checked; config.Connection.SaveDataPath = Connection_SaveDataPath.Text.Trim(@"\ """.ToCharArray()); config.Connection.SaveRequest = Connection_SaveRequest.Checked; config.Connection.SaveResponse = Connection_SaveResponse.Checked; config.Connection.SaveOtherFile = Connection_SaveOtherFile.Checked; config.Connection.ApplyVersion = Connection_ApplyVersion.Checked; changed |= config.Connection.RegisterAsSystemProxy != Connection_RegisterAsSystemProxy.Checked; config.Connection.RegisterAsSystemProxy = Connection_RegisterAsSystemProxy.Checked; changed |= config.Connection.UseUpstreamProxy != Connection_UseUpstreamProxy.Checked; config.Connection.UseUpstreamProxy = Connection_UseUpstreamProxy.Checked; changed |= config.Connection.UpstreamProxyPort != (ushort)Connection_UpstreamProxyPort.Value; config.Connection.UpstreamProxyPort = (ushort)Connection_UpstreamProxyPort.Value; changed |= config.Connection.UpstreamProxyAddress != Connection_UpstreamProxyAddress.Text; config.Connection.UpstreamProxyAddress = Connection_UpstreamProxyAddress.Text; changed |= config.Connection.UseSystemProxy != Connection_UseSystemProxy.Checked; config.Connection.UseSystemProxy = Connection_UseSystemProxy.Checked; changed |= config.Connection.DownstreamProxy != Connection_DownstreamProxy.Text; config.Connection.DownstreamProxy = Connection_DownstreamProxy.Text; if (changed) { APIObserver.Instance.Start(config.Connection.Port, _UIControl); } } //[UI] { var newfont = SerializableFont.StringToFont(UI_MainFont.Text, true); if (newfont != null) { config.UI.MainFont = newfont; } } { var newfont = SerializableFont.StringToFont(UI_SubFont.Text, true); if (newfont != null) { config.UI.SubFont = newfont; } } config.UI.BarColorMorphing = UI_BarColorMorphing.Checked; config.UI.JapaneseShipName = UI_JapaneseShipNames.Checked; config.UI.JapaneseShipType = UI_JapaneseShipTypes.Checked; config.UI.JapaneseEquipmentName = UI_JapaneseEquipmentNames.Checked; config.UI.JapaneseEquipmentType = UI_JapaneseEquipmentTypes.Checked; config.UI.UseOriginalNodeId = !UI_NodeNumbering.Checked; config.UI.ThemeMode = comboBox1.SelectedIndex; config.UI.IsLayoutFixed = UI_IsLayoutFixed.Checked; //[ログ] config.Log.LogLevel = (int)Log_LogLevel.Value; config.Log.SaveLogFlag = Log_SaveLogFlag.Checked; config.Log.SaveErrorReport = Log_SaveErrorReport.Checked; config.Log.FileEncodingID = Log_FileEncodingID.SelectedIndex; config.Log.ShowSpoiler = Log_ShowSpoiler.Checked; config.Log.SaveBattleLog = Log_SaveBattleLog.Checked; config.Log.SaveLogImmediately = Log_SaveLogImmediately.Checked; //[動作] config.Control.ConditionBorder = (int)Control_ConditionBorder.Value; config.Control.RecordAutoSaving = Control_RecordAutoSaving.SelectedIndex; config.Control.UseSystemVolume = Control_UseSystemVolume.Checked; config.Control.PowerEngagementForm = Control_PowerEngagementForm.SelectedIndex + 1; config.Control.ShowSallyAreaAlertDialog = Control_ShowSallyAreaAlertDialog.Checked; config.Control.ShowExpeditionAlertDialog = Control_ShowExpeditionAlertDialog.Checked; config.Control.EnableDiscordRPC = Control_EnableDiscordRPC.Checked; config.Control.DiscordRPCMessage = Control_DiscordRPCMessage.Text; config.Control.DiscordRPCShowFCM = Control_DiscordRPCShowFCM.Checked; //[デバッグ] config.Debug.EnableDebugMenu = Debug_EnableDebugMenu.Checked; config.Debug.LoadAPIListOnLoad = Debug_LoadAPIListOnLoad.Checked; config.Debug.APIListPath = Debug_APIListPath.Text; config.Debug.AlertOnError = Debug_AlertOnError.Checked; //[起動と終了] config.Life.ConfirmOnClosing = Life_ConfirmOnClosing.Checked; config.Life.TopMost = Life_TopMost.Checked; config.Life.LayoutFilePath = Life_LayoutFilePath.Text; config.Life.CheckUpdateInformation = Life_CheckUpdateInformation.Checked; config.Life.ShowStatusBar = Life_ShowStatusBar.Checked; config.Life.ClockFormat = Life_ClockFormat.SelectedIndex; config.Life.LockLayout = Life_LockLayout.Checked; config.Life.CanCloseFloatWindowInLock = Life_CanCloseFloatWindowInLock.Checked; //[サブウィンドウ] config.FormArsenal.ShowShipName = FormArsenal_ShowShipName.Checked; config.FormArsenal.BlinkAtCompletion = FormArsenal_BlinkAtCompletion.Checked; config.FormArsenal.MaxShipNameWidth = (int)FormArsenal_MaxShipNameWidth.Value; config.FormDock.BlinkAtCompletion = FormDock_BlinkAtCompletion.Checked; config.FormDock.MaxShipNameWidth = (int)FormDock_MaxShipNameWidth.Value; config.FormFleet.ShowAircraft = FormFleet_ShowAircraft.Checked; config.FormFleet.SearchingAbilityMethod = FormFleet_SearchingAbilityMethod.SelectedIndex; config.FormFleet.IsScrollable = FormFleet_IsScrollable.Checked; config.FormFleet.FixShipNameWidth = FormFleet_FixShipNameWidth.Checked; config.FormFleet.ShortenHPBar = FormFleet_ShortenHPBar.Checked; config.FormFleet.ShowNextExp = FormFleet_ShowNextExp.Checked; config.FormFleet.EquipmentLevelVisibility = (Window.Control.ShipStatusEquipment.LevelVisibilityFlag)FormFleet_EquipmentLevelVisibility.SelectedIndex; config.FormFleet.ShowAircraftLevelByNumber = FormFleet_ShowAircraftLevelByNumber.Checked; config.FormFleet.AirSuperiorityMethod = FormFleet_AirSuperiorityMethod.SelectedIndex; config.FormFleet.ShowAnchorageRepairingTimer = FormFleet_ShowAnchorageRepairingTimer.Checked; config.FormFleet.BlinkAtCompletion = FormFleet_BlinkAtCompletion.Checked; config.FormFleet.ShowConditionIcon = FormFleet_ShowConditionIcon.Checked; config.FormFleet.FixedShipNameWidth = (int)FormFleet_FixedShipNameWidth.Value; config.FormFleet.ShowAirSuperiorityRange = FormFleet_ShowAirSuperiorityRange.Checked; config.FormFleet.ReflectAnchorageRepairHealing = FormFleet_ReflectAnchorageRepairHealing.Checked; config.FormFleet.BlinkAtDamaged = FormFleet_BlinkAtDamaged.Checked; config.FormFleet.EmphasizesSubFleetInPort = FormFleet_EmphasizesSubFleetInPort.Checked; config.FormFleet.FleetStateDisplayMode = FormFleet_FleetStateDisplayMode.SelectedIndex; config.FormFleet.AppliesSallyAreaColor = FormFleet_AppliesSallyAreaColor.Checked; config.FormHeadquarters.BlinkAtMaximum = FormHeadquarters_BlinkAtMaximum.Checked; { var list = new List <bool>(); for (int i = 0; i < FormHeadquarters_Visibility.Items.Count; i++) { list.Add(FormHeadquarters_Visibility.GetItemChecked(i)); } config.FormHeadquarters.Visibility.List = list; } { string name = FormHeadquarters_DisplayUseItemID.Text; if (string.IsNullOrEmpty(name)) { config.FormHeadquarters.DisplayUseItemID = -1; } else { var item = ElectronicObserver.Data.KCDatabase.Instance.MasterUseItems.Values.FirstOrDefault(p => p.Name == name); if (item != null) { config.FormHeadquarters.DisplayUseItemID = item.ItemID; } else { if (int.TryParse(name, out int val)) { config.FormHeadquarters.DisplayUseItemID = val; } else { config.FormHeadquarters.DisplayUseItemID = -1; } } } } config.FormQuest.ShowRunningOnly = FormQuest_ShowRunningOnly.Checked; config.FormQuest.ShowOnce = FormQuest_ShowOnce.Checked; config.FormQuest.ShowDaily = FormQuest_ShowDaily.Checked; config.FormQuest.ShowWeekly = FormQuest_ShowWeekly.Checked; config.FormQuest.ShowMonthly = FormQuest_ShowMonthly.Checked; config.FormQuest.ShowOther = FormQuest_ShowOther.Checked; config.FormQuest.ProgressAutoSaving = FormQuest_ProgressAutoSaving.SelectedIndex; config.FormQuest.AllowUserToSortRows = FormQuest_AllowUserToSortRows.Checked; config.FormShipGroup.AutoUpdate = FormShipGroup_AutoUpdate.Checked; config.FormShipGroup.ShowStatusBar = FormShipGroup_ShowStatusBar.Checked; config.FormShipGroup.ShipNameSortMethod = FormShipGroup_ShipNameSortMethod.SelectedIndex; config.FormBattle.IsScrollable = FormBattle_IsScrollable.Checked; config.FormBattle.HideDuringBattle = FormBattle_HideDuringBattle.Checked; config.FormBattle.ShowHPBar = FormBattle_ShowHPBar.Checked; config.FormBattle.ShowShipTypeInHPBar = FormBattle_ShowShipTypeInHPBar.Checked; config.FormBattle.Display7thAsSingleLine = FormBattle_Display7thAsSingleLine.Checked; config.FormBrowser.IsEnabled = FormBrowser_IsEnabled.Checked; config.FormBrowser.ZoomRate = (double)FormBrowser_ZoomRate.Value / 100; config.FormBrowser.ZoomFit = FormBrowser_ZoomFit.Checked; config.FormBrowser.LogInPageURL = FormBrowser_LogInPageURL.Text; if (FormBrowser_ScreenShotFormat_JPEG.Checked) { config.FormBrowser.ScreenShotFormat = 1; } else { config.FormBrowser.ScreenShotFormat = 2; } config.FormBrowser.ScreenShotPath = FormBrowser_ScreenShotPath.Text; config.FormBrowser.ConfirmAtRefresh = FormBrowser_ConfirmAtRefresh.Checked; config.FormBrowser.AppliesStyleSheet = FormBrowser_AppliesStyleSheet.Checked; config.FormBrowser.IsDMMreloadDialogDestroyable = FormBrowser_IsDMMreloadDialogDestroyable.Checked; config.FormBrowser.AvoidTwitterDeterioration = FormBrowser_ScreenShotFormat_AvoidTwitterDeterioration.Checked; config.FormBrowser.HardwareAccelerationEnabled = FormBrowser_HardwareAccelerationEnabled.Checked; config.FormBrowser.PreserveDrawingBuffer = FormBrowser_PreserveDrawingBuffer.Checked; config.FormBrowser.ForceColorProfile = FormBrowser_ForceColorProfile.Checked; config.FormBrowser.SavesBrowserLog = FormBrowser_SavesBrowserLog.Checked; if (FormBrowser_ToolMenuDockStyle.SelectedIndex == 4) { config.FormBrowser.IsToolMenuVisible = false; } else { config.FormBrowser.IsToolMenuVisible = true; config.FormBrowser.ToolMenuDockStyle = (DockStyle)(FormBrowser_ToolMenuDockStyle.SelectedIndex + 1); } config.FormBrowser.ScreenShotSaveMode = FormBrowser_ScreenShotSaveMode.SelectedIndex + 1; config.FormCompass.CandidateDisplayCount = (int)FormCompass_CandidateDisplayCount.Value; config.FormCompass.IsScrollable = FormCompass_IsScrollable.Checked; config.FormCompass.MaxShipNameWidth = (int)FormCompass_MaxShipNameWidth.Value; config.FormJson.AutoUpdate = FormJson_AutoUpdate.Checked; config.FormJson.UpdatesTree = FormJson_UpdatesTree.Checked; config.FormJson.AutoUpdateFilter = FormJson_AutoUpdateFilter.Text; config.FormBaseAirCorps.ShowEventMapOnly = FormBaseAirCorps_ShowEventMapOnly.Checked; //[通知] setSilencioConfig(Notification_Silencio.Checked); //[BGM] config.BGMPlayer.Enabled = BGMPlayer_Enabled.Checked; for (int i = 0; i < BGMPlayer_ControlGrid.Rows.Count; i++) { BGMHandles[(SyncBGMPlayer.SoundHandleID)BGMPlayer_ControlGrid[BGMPlayer_ColumnContent.Index, i].Value].Enabled = (bool)BGMPlayer_ControlGrid[BGMPlayer_ColumnEnabled.Index, i].Value; } config.BGMPlayer.Handles = new List <SyncBGMPlayer.SoundHandle>(BGMHandles.Values.ToList()); config.BGMPlayer.SyncBrowserMute = BGMPlayer_SyncBrowserMute.Checked; }