[KOE-94] Fixed rendering of & in tree nodes for shared folders. Fixed encoding of strings in SOAP requests, which caused shared folders with special characters to fail.

This commit is contained in:
Patrick Simpson 2017-04-05 10:55:02 +02:00
parent 388bedaf74
commit 343705345b
4 changed files with 6 additions and 7 deletions

View File

@ -29,6 +29,8 @@ namespace Acacia.Controls
{
internal abstract class KTreeRenderer
{
protected const TextFormatFlags TEXT_FLAGS = TextFormatFlags.Left | TextFormatFlags.VerticalCenter | TextFormatFlags.NoPrefix;
private Rectangle _clientRect;
private Rectangle _totalRect;
protected KTree _tree;
@ -79,7 +81,7 @@ namespace Acacia.Controls
}
// Text size
dimension[KTreeNodeMeasurements.Part.Text] = TextRenderer.MeasureText(graphics, node.Text, _tree.Font);
dimension[KTreeNodeMeasurements.Part.Text] = TextRenderer.MeasureText(graphics, node.Text, _tree.Font, Size.Empty, TEXT_FLAGS);
// Control
if (node.Control != null)

View File

@ -68,8 +68,7 @@ namespace Acacia.Controls
protected override void RenderNodeText(Graphics graphics, KTreeNode node, Rectangle rect, KTreeNodeMeasurements.Part? highlight)
{
TextRenderer.DrawText(graphics, node.Text, _tree.Font, rect, GetColor(node, highlight),
Color.Transparent, TextFormatFlags.Left | TextFormatFlags.VerticalCenter);
TextRenderer.DrawText(graphics, node.Text, _tree.Font, rect, GetColor(node, highlight), Color.Transparent, TEXT_FLAGS);
}
private Color GetColor(KTreeNode node, KTreeNodeMeasurements.Part? highlight)

View File

@ -143,8 +143,7 @@ namespace Acacia.Controls
{
Color foreColor = GetStyle(node, highlight).GetColor(ColorProperty.TextColor);
TextRenderer.DrawText(graphics, node.Text, _tree.Font, rect, foreColor, Color.Transparent,
TextFormatFlags.Left | TextFormatFlags.VerticalCenter);
TextRenderer.DrawText(graphics, node.Text, _tree.Font, rect, foreColor, Color.Transparent, TEXT_FLAGS);
}
public override void RenderControlBorder(Graphics graphics, Rectangle rect)

View File

@ -202,8 +202,7 @@ namespace Acacia.ZPush.Connect.Soap
public override void Serialize(string name, object value, StringBuilder s)
{
// TODO: this needs escaping
s.Append(string.Format("<{0} xsi:type=\"xsd:string\">{1}</{0}>", name, value));
s.Append(string.Format("<{0} xsi:type=\"xsd:string\">{1}</{0}>", name, value.ToString().EncodeXML()));
}
protected override object DeserializeContents(XmlNode node, Type expectedType)