saxiohelper.cpp
Go to the documentation of this file.00001 #include "saxiohelper.h"
00002 #include "saxio.h"
00003 #include "scfonts.h"
00004 #include "fpointarray.h"
00005
00006
00007
00008
00009 const Xml_string SaxIO::saxxDefaultElem("");
00010
00011
00012
00013 Xml_string mkXMLName(const QString& any)
00014 {
00015 QString result("");
00016 for (int i=0; i < any.length(); ++i)
00017 {
00018 unsigned int ch = any[i].unicode();
00019 if (ch == ':' || ('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z')
00020 || (0xC0 <= ch && ch <= 0xD6) || (0xD8 <= ch && ch <= 0xF6)
00021 || (0xF8 <= ch && ch <= 0x2FF) || (0x370 <= ch && ch <= 0x37D)
00022 || (0x37F <= ch && ch <= 0x1FFF) || (0x200C <= ch && ch <= 0x200D)
00023 || (0x2070 <= ch && ch <= 0x218F) || (0x2C00 <= ch && ch <= 0x2FEF)
00024 || (0x3001 <= ch && ch <= 0xD7FF) || (0xF900 <= ch && ch <= 0xFDCF)
00025 || (0xFDF0 <= ch && ch <= 0xFFFD) || ch > 0xFFFF
00026 || (i > 0 && (ch == '-' || ch == '.' || ('0' <= ch && ch <= '9') || ch == 0xB7
00027 || (0x300 <= ch && ch <= 0x36F) || (0x203F <= ch && ch <= 0x2040) )))
00028 {
00029 result += ch;
00030 }
00031 else
00032 {
00033 result += '_';
00034 result += "0123456789ABCDEF"[(ch >> 12) & 15];
00035 result += "0123456789ABCDEF"[(ch >> 8) & 15];
00036 result += "0123456789ABCDEF"[(ch >> 4) & 15];
00037 result += "0123456789ABCDEF"[(ch ) & 15];
00038 }
00039 }
00040 return result;
00041 }
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051 Xml_string toXMLString(unsigned int val)
00052 {
00053 return QString::number(val);
00054 }
00055
00056 unsigned int parseUInt(const Xml_string& str)
00057 {
00058 return str.toUInt();
00059 }
00060
00061 Xml_string toXMLString(int val)
00062 {
00063 return QString::number(val);
00064 }
00065
00066
00067 int parseInt(const Xml_string& str)
00068 {
00069 return str.toInt();
00070 }
00071
00072
00073 Xml_string toXMLString(unsigned long val)
00074 {
00075 return QString::number(val);
00076 }
00077
00078 unsigned long parseULong(const Xml_string& str)
00079 {
00080 return str.toULong();
00081 }
00082
00083 Xml_string toXMLString(long val)
00084 {
00085 return QString::number(val);
00086 }
00087
00088
00089 long parseLong(const Xml_string& str)
00090 {
00091 return str.toLong();
00092 }
00093
00094
00095 Xml_string toXMLString(double val)
00096 {
00097 return QString::number(val);
00098 }
00099
00100
00101 double parseDouble(const Xml_string& str)
00102 {
00103 return str.toDouble();
00104 }
00105
00106
00107 Xml_string toXMLString(float val)
00108 {
00109 return QString::number(val);
00110 }
00111
00112
00113 float parseFloat(const Xml_string& str)
00114 {
00115 return str.toFloat();
00116 }
00117
00118
00119 Xml_string toXMLString(bool what)
00120 {
00121 return what? "yes" : "no";
00122 }
00123
00124
00125 bool parseBool(const Xml_string& str)
00126 {
00127 return str == "yes";
00128 }
00129
00130
00131 Xml_string toXMLString(const Xml_string& val)
00132 {
00133 return val;
00134 }
00135
00136
00137 Xml_string toXMLString(const QList<double>& doublelist)
00138 {
00139 QString result = "";
00140 QList<double>::const_iterator dax;
00141 for (dax = doublelist.begin(); dax != doublelist.end(); ++dax)
00142 result += toXMLString(*dax) + " ";
00143 return result;
00144 }
00145
00146
00147 QList<double> parseDoubleList(const Xml_string& str)
00148 {
00149 QStringList strlist = str.split(' ', QString::SkipEmptyParts);
00150 QList<double> result;
00151 for (QStringList::iterator it=strlist.begin(); it != strlist.end(); ++it)
00152 result.append(parseDouble(*it));
00153 return result;
00154 }
00155
00156
00157 Xml_string toXMLString(const QList<int>& intlist)
00158 {
00159 QString result = "";
00160 QList<int>::const_iterator dax;
00161 for (dax = intlist.begin(); dax != intlist.end(); ++dax)
00162 result += toXMLString(*dax) + " ";
00163 return result;
00164 }
00165
00166
00167 QList<int> parseIntList(const Xml_string& str)
00168 {
00169 QStringList strlist = str.split(' ', QString::SkipEmptyParts);
00170 QList<int> result;
00171 for (QStringList::iterator it=strlist.begin(); it != strlist.end(); ++it)
00172 result.append(parseInt(*it));
00173 return result;
00174 }
00175
00176
00177 QStack<int> parseIntStack(const Xml_string& str)
00178 {
00179 QStringList strlist = str.split(' ', QString::SkipEmptyParts);
00180 QStack<int> result;
00181 for (QStringList::iterator it=strlist.begin(); it != strlist.end(); ++it)
00182 result.append(parseInt(*it));
00183 return result;
00184 }
00185
00186
00187 Xml_string toXMLString(const QStringList& list)
00188 {
00189 QString result = "";
00190 QStringList::const_iterator dax;
00191 for (dax = list.begin(); dax != list.end(); ++dax)
00192 result += *dax + " ";
00193 return result;
00194 }
00195
00196
00197 QStringList parseStringList(const Xml_string& str)
00198 {
00199 return str.split(' ', QString::SkipEmptyParts);
00200 }
00201
00202
00203
00204 Xml_string toXMLString(const ScFace& val)
00205 {
00206 return val.scName();
00207 }
00208
00209
00210 Xml_string toXMLString(const FPointArray& path)
00211 {
00212 return path.svgPath();
00213 }