00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef AOOTEMPLATE_H
00030 #define AOOTEMPLATE_H
00031
00032 #include <qstring.h>
00033 #include <qptrlist.h>
00034 #include <qvaluestack.h>
00035 #include <qdom.h>
00036
00037 #define open_token "<:"
00038 #define close_token ":>"
00039 #define open_token_section "\\[:"
00040 #define close_token_section ":\\]"
00041 #define PARAM "param"
00042
00043 #include "ananasglobal.h"
00044 #include "itemplate.h"
00045
00080 class ANANAS_EXPORT aOOTemplate : public iTemplate
00081 {
00082 public:
00083 aOOTemplate();
00084 virtual ~aOOTemplate();
00085 virtual bool open( const QString &fname );
00086 virtual void close();
00087 virtual void clear();
00088 virtual QString getValue( const QString &name );
00089 virtual void setValue( const QString &name, const QString &value );
00090 virtual QString exec( const QString &sname );
00091 virtual QString result();
00092 virtual bool save( const QString & fname );
00093 virtual void setDir( const QString &dirName );
00094 virtual QString getDir();
00095 virtual void cleanUpTags();
00096 virtual bool lineFeedRemove( const QString &filename );
00097 protected:
00106 QString copyName;
00107 protected:
00116 QString templateDir;
00117
00118 QMap<QString,QString> values;
00119
00120 void searchTags(QDomNode node, const QString &sname );
00121 virtual bool getNodeTags(QDomNode node, const QString &tagname, bool params );
00122 void insertRowValues(QDomNode node);
00123 virtual void insertTagsValues(QDomNode node, const QString &tagName);
00124 void clearTags(QDomNode node, bool section );
00125 void clearRow(QDomNode node);
00134 QDomDocument docTpl;
00135
00144 QDomDocument docStyle;
00145 };
00146 #endif // AOOTEMPLATE_H