Refactor Editor Windows layout serialization of splitter values to prevent invalid state when loading windows
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
// Copyright (c) 2012-2022 Wojciech Figat. All rights reserved.
|
||||
|
||||
using System.Xml;
|
||||
using System.Globalization;
|
||||
using FlaxEngine;
|
||||
using FlaxEngine.Assertions;
|
||||
using FlaxEngine.GUI;
|
||||
@@ -423,6 +424,29 @@ namespace FlaxEditor.GUI.Docking
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Serializes splitter panel value into the saved layout.
|
||||
/// </summary>
|
||||
/// <param name="writer">The Xml writer.</param>
|
||||
/// <param name="name">The Xml attribute name to use for value.</param>
|
||||
/// <param name="splitter">The splitter panel.</param>
|
||||
protected void LayoutSerializeSplitter(XmlWriter writer, string name, SplitPanel splitter)
|
||||
{
|
||||
writer.WriteAttributeString(name, splitter.SplitterValue.ToString(CultureInfo.InvariantCulture));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deserializes splitter panel value from the saved layout.
|
||||
/// </summary>
|
||||
/// <param name="node">The Xml document node.</param>
|
||||
/// <param name="name">The Xml attribute name to use for value.</param>
|
||||
/// <param name="splitter">The splitter panel.</param>
|
||||
protected void LayoutDeserializeSplitter(XmlElement node, string name, SplitPanel splitter)
|
||||
{
|
||||
if (float.TryParse(node.GetAttribute(name), CultureInfo.InvariantCulture, out float value) && value > 0.01f && value < 0.99f)
|
||||
splitter.SplitterValue = value;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void OnDestroy()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user