qmake/generators/xmloutput.h
branchGCC_SURGE
changeset 31 5daf16870df6
parent 30 5dc02b23752f
equal deleted inserted replaced
27:93b982ccede2 31:5daf16870df6
    67     enum XMLType {
    67     enum XMLType {
    68         tNothing,           // No XML output, and not state change
    68         tNothing,           // No XML output, and not state change
    69         tRaw,               // Raw text (no formating)
    69         tRaw,               // Raw text (no formating)
    70         tDeclaration,       // <?xml version="x.x" encoding="xxx"?>
    70         tDeclaration,       // <?xml version="x.x" encoding="xxx"?>
    71         tTag,               // <tagname attribute1="value"
    71         tTag,               // <tagname attribute1="value"
       
    72         tTagValue,          // <tagname>value</tagname>
       
    73         tValueTag,          // value</tagname>
    72         tCloseTag,          // Closes an open tag
    74         tCloseTag,          // Closes an open tag
    73         tAttribute,         //  attribute2="value">
    75         tAttribute,         //  attribute2="value">
       
    76         tAttributeTag,      //  attribute on the same line as a tag
    74         tData,              // Tag data (formating done)
    77         tData,              // Tag data (formating done)
       
    78         tImport,            // <import "type"="path" />
    75         tComment,           // <!-- Comment -->
    79         tComment,           // <!-- Comment -->
    76         tCDATA              // <![CDATA[ ... ]]>
    80         tCDATA              // <![CDATA[ ... ]]>
    77     };
    81     };
    78 
    82 
    79     XmlOutput(QTextStream &file, ConverstionType type = XMLConversion);
    83     XmlOutput(QTextStream &file, ConverstionType type = XMLConversion);
    83     void setIndentString(const QString &indentString);
    87     void setIndentString(const QString &indentString);
    84     QString indentString();
    88     QString indentString();
    85     void setIndentLevel(int level);
    89     void setIndentLevel(int level);
    86     int indentLevel();
    90     int indentLevel();
    87     void setState(XMLState state);
    91     void setState(XMLState state);
       
    92     void setFormat(XMLFormat newFormat);
    88     XMLState state();
    93     XMLState state();
    89 
    94 
    90 
    95 
    91     struct xml_output {
    96     struct xml_output {
    92         XMLType xo_type;    // Type of struct instance
    97         XMLType xo_type;    // Type of struct instance
   119     void closeAll();
   124     void closeAll();
   120 
   125 
   121     void addDeclaration(const QString &version, const QString &encoding);
   126     void addDeclaration(const QString &version, const QString &encoding);
   122     void addRaw(const QString &rawText);
   127     void addRaw(const QString &rawText);
   123     void addAttribute(const QString &attribute, const QString &value);
   128     void addAttribute(const QString &attribute, const QString &value);
       
   129     void addAttributeTag(const QString &attribute, const QString &value);
   124     void addData(const QString &data);
   130     void addData(const QString &data);
   125 
   131 
   126     // Data
   132     // Data
   127     QTextStream &xmlFile;
   133     QTextStream &xmlFile;
   128     QString indent;
   134     QString indent;
   161 inline XmlOutput::xml_output tag(const QString &name)
   167 inline XmlOutput::xml_output tag(const QString &name)
   162 {
   168 {
   163     return XmlOutput::xml_output(XmlOutput::tTag, name, QString());
   169     return XmlOutput::xml_output(XmlOutput::tTag, name, QString());
   164 }
   170 }
   165 
   171 
       
   172 
       
   173 inline XmlOutput::xml_output valueTag(const QString &value)
       
   174 {
       
   175     return XmlOutput::xml_output(XmlOutput::tValueTag, value, QString());
       
   176 }
       
   177 
       
   178 inline XmlOutput::xml_output tagValue(const QString &tagName, const QString &value)
       
   179 {
       
   180     return XmlOutput::xml_output(XmlOutput::tTagValue, tagName, value);
       
   181 }
       
   182 
       
   183 inline XmlOutput::xml_output import(const QString &tagName, const QString &value)
       
   184 {
       
   185     return XmlOutput::xml_output(XmlOutput::tImport, tagName, value);
       
   186 }
       
   187 
   166 inline XmlOutput::xml_output closetag()
   188 inline XmlOutput::xml_output closetag()
   167 {
   189 {
   168     return XmlOutput::xml_output(XmlOutput::tCloseTag, QString(), QString());
   190     return XmlOutput::xml_output(XmlOutput::tCloseTag, QString(), QString());
   169 }
   191 }
   170 
   192 
   182                                        const QString &value)
   204                                        const QString &value)
   183 {
   205 {
   184     return XmlOutput::xml_output(XmlOutput::tAttribute, name, value);
   206     return XmlOutput::xml_output(XmlOutput::tAttribute, name, value);
   185 }
   207 }
   186 
   208 
       
   209 inline XmlOutput::xml_output attributeTag(const QString &name,
       
   210                                        const QString &value)
       
   211 {
       
   212     return XmlOutput::xml_output(XmlOutput::tAttributeTag, name, value);
       
   213 }
       
   214 
   187 inline XmlOutput::xml_output attr(const QString &name,
   215 inline XmlOutput::xml_output attr(const QString &name,
   188                                   const QString &value)
   216                                   const QString &value)
   189 {
   217 {
   190     return attribute(name, value);
   218     return attribute(name, value);
   191 }
   219 }
   192 
   220 
       
   221 inline XmlOutput::xml_output attrTag(const QString &name,
       
   222                                   const QString &value)
       
   223 {
       
   224     return attributeTag(name, value);
       
   225 }
       
   226 
   193 inline XmlOutput::xml_output data(const QString &text = QString())
   227 inline XmlOutput::xml_output data(const QString &text = QString())
   194 {
   228 {
   195     return XmlOutput::xml_output(XmlOutput::tData, text, QString());
   229     return XmlOutput::xml_output(XmlOutput::tData, text, QString());
   196 }
   230 }
   197 
   231