Example #1
0
        public void ReadXml(XmlReader reader)
        {
            var cv = TypeDescriptor.GetConverter(typeof(KeySequence));

            while (reader.Read())
            {
                KeySequence seq;

                if (reader.NodeType != XmlNodeType.Element || reader.Name != "Item")
                {
                    continue;
                }

                var result = reader.GetAttribute("Result");
                if (result == null)
                {
                    continue;
                }

                var in_attr = reader.GetAttribute("Seq");
                if (in_attr == null)
                {
                    // Backward compatibility with 0.9.3
                    var seq_attr = reader.GetAttribute("Sequence");
                    if (seq_attr == null)
                    {
                        continue;
                    }

                    seq = cv.ConvertFromString(seq_attr) as KeySequence;
                }
                else
                {
                    seq = KeySequence.FromXmlAttr(in_attr);
                }

                var data = GetOrAdd(seq, result);
                bool.TryParse(reader.GetAttribute("Favorite") ?? "false", out data.Favorite);
                int.TryParse(reader.GetAttribute("UsageCount") ?? "0", out data.UsageCount);
            }
        }