diff --git a/VocaluxeLib/Xml/CXMLReader.cs b/VocaluxeLib/Xml/CXMLReader.cs
index b75a4934..a61843bd 100644
--- a/VocaluxeLib/Xml/CXMLReader.cs
+++ b/VocaluxeLib/Xml/CXMLReader.cs
@@ -21,12 +21,12 @@ using System.Xml.XPath;
namespace VocaluxeLib.Xml
{
- public class CXMLReader : CXmlDeserializer
+ public class CXMLReader : CXmlReaderBase
{
private readonly XPathNavigator _Navigator;
private readonly String _FilePath;
- public override string FilePath
+ public string FilePath
{
get { return _FilePath; }
}
diff --git a/VocaluxeLib/Xml/CXmlDeserializer.cs b/VocaluxeLib/Xml/CXmlDeserializer.cs
deleted file mode 100644
index 0da230be..00000000
--- a/VocaluxeLib/Xml/CXmlDeserializer.cs
+++ /dev/null
@@ -1,142 +0,0 @@
-#region license
-// This file is part of Vocaluxe.
-//
-// Vocaluxe is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Vocaluxe is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Vocaluxe. If not, see .
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-
-namespace VocaluxeLib.Xml
-{
- public abstract class CXmlDeserializer : CXmlReaderBase
- {
- public abstract string FilePath { get; }
-
- public bool Read(string xPath, out SThemeFont el)
- {
- el = new SThemeFont();
- bool ok = true;
- ok &= GetValue(xPath + "/Name", out el.Name);
- ok &= TryGetFloatValue(xPath + "/Size", ref el.Size);
- ok &= TryGetEnumValue(xPath + "/Style", ref el.Style);
- return ok;
- }
-
- public bool Read(string xPath, out SMargin el)
- {
- el = new SMargin();
- bool ok = true;
- string val;
- bool defOk = GetAttribute(xPath, "Default", out val) && int.TryParse(val, out el.Default);
- /*ok &= TryGetIntValue(xPath + "/Left", ref el.Left, el.Default);
- ok &= TryGetIntValue(xPath + "/Right", ref el.Right, el.Default);
- ok &= TryGetIntValue(xPath + "/Top", ref el.Top, el.Default);
- ok &= TryGetIntValue(xPath + "/Bottom", ref el.Bottom, el.Default);*/
- return ok || defOk;
- }
-
- public bool Read(string xPath, out SThemeCoverGeneratorText el)
- {
- el = new SThemeCoverGeneratorText();
- bool ok = true;
- ok &= GetValue(xPath + "/Text", out el.Text);
- ok &= Read(xPath + "/Font", out el.Font);
- ok &= Read(xPath + "/Color", out el.Color);
- ok &= Read(xPath + "/Margin", out el.Margin);
- if (ok)
- TryGetIntValue(xPath + "/Indent", ref el.Indent, 6 * (el.Margin.Left + el.Margin.Right) / 2);
- return ok;
- }
-
- public bool Read(string xPath, out SThemeColor el)
- {
- el = new SThemeColor();
- float val = 0;
- if (TryGetNormalizedFloatValue(xPath + "/R", ref val))
- el.R = val;
- else
- el.R = null;
- if (TryGetNormalizedFloatValue(xPath + "/G", ref val))
- el.G = val;
- else
- el.G = null;
- if (TryGetNormalizedFloatValue(xPath + "/B", ref val))
- el.B = val;
- else
- el.B = null;
- if (TryGetNormalizedFloatValue(xPath + "/A", ref val))
- el.A = val;
- else
- el.A = null;
- GetAttribute(xPath, "Name", out el.Name);
- return true;
- }
-
- public bool Read(string xPath, out SThemeCoverGenerator el)
- {
- el = new SThemeCoverGenerator();
- bool ok = true;
- string val;
- ok &= GetAttribute(xPath, "Type", out val) && Enum.TryParse(val, out el.Type);
- ok &= Read(xPath + "/Text", out el.Text);
- ok &= Read(xPath + "/BackgroundColor", out el.BackgroundColor);
- ok &= GetValue(xPath + "/Image", out el.Image);
- TryGetNormalizedFloatValue(xPath + "/ImageAlpha", ref el.ImageAlpha, 0.5f);
- TryGetBoolValue(xPath + "/ShowFirstCover", out el.ShowFirstCover);
- return ok;
- }
-
- public bool Read(string xPath, out SColorF value)
- {
- value = new SColorF();
- bool result = true;
- result &= TryGetNormalizedFloatValue(xPath + "/R", ref value.R);
- result &= TryGetNormalizedFloatValue(xPath + "/G", ref value.G);
- result &= TryGetNormalizedFloatValue(xPath + "/B", ref value.B);
- result &= TryGetNormalizedFloatValue(xPath + "/A", ref value.A);
- return result;
- }
-
- public bool Read(string xPath, List value)
- {
- Debug.Assert(value != null);
- string val;
- if (!GetValue(xPath, out val))
- return false;
- string[] entries = val.Split(new string[] {"\r\n", "\n"}, StringSplitOptions.RemoveEmptyEntries);
- value.AddRange(entries.Select(s => s.Trim()).Where(s => !string.IsNullOrEmpty(s)));
- return true;
- }
-
- public bool CheckVersion(string xPath, int reqVersion)
- {
- int version = 0;
- string errorMsg;
- if (!TryGetIntValue(xPath, ref version))
- errorMsg = "Version missing";
- else if (version != reqVersion)
- {
- errorMsg = version < reqVersion ? "the file ist outdated!" : "the file is for newer program versions!";
- errorMsg += " Current Version is " + reqVersion;
- }
- else
- return true;
- CBase.Log.LogError("Cannot load " + FilePath + ": " + errorMsg);
- return false;
- }
- }
-}
\ No newline at end of file