Refactor Editor Windows layout serialization of splitter values to prevent invalid state when loading windows

This commit is contained in:
Wojciech Figat
2022-12-27 13:54:53 +01:00
parent c53bf2b7e3
commit 3e8e839cd1
17 changed files with 75 additions and 83 deletions

View File

@@ -543,22 +543,17 @@ namespace FlaxEditor.Windows.Assets
/// <inheritdoc />
public override void OnLayoutSerialize(XmlWriter writer)
{
writer.WriteAttributeString("Split1", _split1.SplitterValue.ToString());
writer.WriteAttributeString("Split2", _split2.SplitterValue.ToString());
writer.WriteAttributeString("Split3", _timeline.Splitter.SplitterValue.ToString());
LayoutSerializeSplitter(writer, "Split1", _split1);
LayoutSerializeSplitter(writer, "Split2", _split2);
LayoutSerializeSplitter(writer, "Split3", _timeline.Splitter);
}
/// <inheritdoc />
public override void OnLayoutDeserialize(XmlElement node)
{
if (float.TryParse(node.GetAttribute("Split1"), out float value1))
_split1.SplitterValue = value1;
if (float.TryParse(node.GetAttribute("Split2"), out value1))
_split2.SplitterValue = value1;
if (float.TryParse(node.GetAttribute("Split3"), out value1))
_timeline.Splitter.SplitterValue = value1;
LayoutDeserializeSplitter(node, "Split1", _split1);
LayoutDeserializeSplitter(node, "Split2", _split2);
LayoutDeserializeSplitter(node, "Split3", _timeline.Splitter);
}
/// <inheritdoc />