src/hbcore/i18n/hbdntxmlreader.cpp
branchGCC_SURGE
changeset 15 f378acbc9cfb
parent 7 923ff622b8b9
child 23 e6ad4ef83b23
child 34 ed14f46c0e55
equal deleted inserted replaced
9:730c025d4b77 15:f378acbc9cfb
    30 #include "hbdntxmlreader_p.h"
    30 #include "hbdntxmlreader_p.h"
    31 
    31 
    32 #define DirectoryLocalizerFile ":/i18n/hbdirectorylocalizer.xml"
    32 #define DirectoryLocalizerFile ":/i18n/hbdirectorylocalizer.xml"
    33 #define DirectoryLocalizerTranslationsFile "/resource/hbi18n/translations/directorylocalizer_"
    33 #define DirectoryLocalizerTranslationsFile "/resource/hbi18n/translations/directorylocalizer_"
    34 
    34 
       
    35 /*!
       
    36     Constructor of class.  
       
    37 */ 
    35 HbDNTXmlReader::HbDNTXmlReader()
    38 HbDNTXmlReader::HbDNTXmlReader()
    36 {
    39 {
    37 	fullPaths = NULL;
    40 	fullPaths = NULL;
    38 	pathStrings = NULL;
    41 	pathStrings = NULL;
    39 	
    42 	
    79 			reader.parse( source ) ;
    82 			reader.parse( source ) ;
    80 		}
    83 		}
    81 	
    84 	
    82 }
    85 }
    83 
    86 
       
    87 /*!
       
    88     Destructor of class. 
       
    89 */ 
    84 HbDNTXmlReader::~HbDNTXmlReader()
    90 HbDNTXmlReader::~HbDNTXmlReader()
    85 {
    91 {
    86     delete fullPaths;
    92     delete fullPaths;
    87     delete pathStrings;
    93     delete pathStrings;
    88 	QCoreApplication::removeTranslator(trans);
    94 	QCoreApplication::removeTranslator(trans);
    89 	delete trans;
    95 	delete trans;
    90 }
    96 }
    91 
    97 
       
    98 /*!
       
    99     This function is needed by XML reader.  
       
   100      
       
   101     \return true 
       
   102 */ 
    92 bool HbDNTXmlReader::startDocument()
   103 bool HbDNTXmlReader::startDocument()
    93 {
   104 {
    94     return true;
   105     return true;
    95 }
   106 }
    96 
   107 
       
   108 /*!
       
   109     This function is needed by XML reader.  
       
   110      
       
   111     \param qName element which will be readed
       
   112     \return true 
       
   113 */ 
    97 bool HbDNTXmlReader::startElement( const QString & ,
   114 bool HbDNTXmlReader::startElement( const QString & ,
    98 				   const QString & ,
   115 				   const QString & ,
    99 				   const QString & qName,
   116 				   const QString & qName,
   100 				   const QXmlAttributes & )
   117 				   const QXmlAttributes & )
   101 {
   118 {
   102 	if( qName == DirectoryLocalizerPathStringsStr ) {
   119     if( qName == DirectoryLocalizerPathStringsStr ) {
   103 		parsePathStrings = true;  // set to parse Path 
   120     	parsePathStrings = true;  // set to parse Path 
   104 		parseDirectoryPaths = false;
   121     	parseDirectoryPaths = false;
   105 		elements.clear();
   122     	elements.clear();
   106 		elementNumber = 0;  // Set current path element number as undefined
   123     	elementNumber = 0;  // Set current path element number as undefined
   107 		twoDone = false;
   124     	twoDone = false;
   108 	} else if( qName == DirectoryLocalizerFullDirectoryPathsStr ) {
   125     } else if( qName == DirectoryLocalizerFullDirectoryPathsStr ) {
   109 		parsePathStrings = false;
   126     	parsePathStrings = false;
   110 		parseDirectoryPaths = true;  // set to parse localized path
   127     	parseDirectoryPaths = true;  // set to parse localized path
   111 		elements.clear();
   128     	elements.clear();
   112 		elementNumber = 0;  // set current path element as undefined
   129     	elementNumber = 0;  // set current path element as undefined
   113 		twoDone = false;
   130     	twoDone = false;
   114 	} else if( qName == DirectoryLocalizerNameStr ) {
   131     } else if( qName == DirectoryLocalizerNameStr ) {
   115 		elementNumber = 1;  // 
   132     	elementNumber = 1;  // 
   116 		validElement = true;
   133     	validElement = true;
   117 		twoDone = false;
   134     	twoDone = false;
   118 	} else if( qName == DirectoryLocalizerPathStr ){
   135     } else if( qName == DirectoryLocalizerPathStr ){
   119 		elementNumber = 2;
   136     	elementNumber = 2;
   120 		validElement = true;
   137     	validElement = true;
   121 		twoDone = false;
   138     	twoDone = false;
   122 	} else if( qName == DirectoryLocalizerTranslationStr){
   139     } else if( qName == DirectoryLocalizerTranslationStr){
   123 		elementNumber = 3;
   140     	elementNumber = 3;
   124 		validElement = true;	
   141     	validElement = true;	
   125 	} else if( qName == DirectoryLocalizerRootPathStr ){
   142     } else if( qName == DirectoryLocalizerRootPathStr ){
   126 		elementNumber = 1;
   143     	elementNumber = 1;
   127 		validElement = true;
   144     	validElement = true;
   128 		twoDone = false;
   145     	twoDone = false;
   129 	} else if( qName == DirectoryLocalizerLocalizedPathStr ){
   146     } else if( qName == DirectoryLocalizerLocalizedPathStr ){
   130 		elementNumber = 2;
   147     	elementNumber = 2;
   131 		validElement = true;
   148     	validElement = true;
   132 		twoDone = false;
   149     	twoDone = false;
   133 	} else if( qName == DirectoryLocalizerLocalizedNameStr ){
   150     } else if( qName == DirectoryLocalizerLocalizedNameStr ){
   134 		elementNumber = 3;
   151     	elementNumber = 3;
   135 		validElement = true;
   152     	validElement = true;
   136 		twoDone = false;
   153     	twoDone = false;
   137 	} else
   154     } else {
   138     {
       
   139         elementNumber++;
   155         elementNumber++;
   140     }
   156     }
   141 	
   157 	
   142     return true;	
   158     return true;	
   143 }
   159 }
   144 
   160 
       
   161 /*!
       
   162     This function is needed by XML reader.  
       
   163      
       
   164     \param text readed element
       
   165     \return true 
       
   166 */ 
   145 bool HbDNTXmlReader::characters(const QString& text)
   167 bool HbDNTXmlReader::characters(const QString& text)
   146 {
   168 {
   147     QString t = text;
   169     QString t = text;
   148     QString x;
   170     QString x;
   149     QString y;
   171     QString y;
   175             case 3:  // DirectoryLocalizerTranslationStr 			
   197             case 3:  // DirectoryLocalizerTranslationStr 			
   176                 elements.insert(0,t);
   198                 elements.insert(0,t);
   177                 
   199                 
   178                 localizedStr = QCoreApplication::translate(0,charPtr);
   200                 localizedStr = QCoreApplication::translate(0,charPtr);
   179                 delete ba;
   201                 delete ba;
       
   202                 ba = 0;
   180                 
   203                 
   181                 if( localizedStr == t ){
   204                 if( localizedStr == t ){
   182 					localizedStr = "";                
   205 					localizedStr = "";                
   183                 }
   206                 }
   184                 elements.append(localizedStr);
   207                 elements.append(localizedStr);
   211                 break;
   234                 break;
   212 			}
   235 			}
   213 			validElement = false;    				
   236 			validElement = false;    				
   214 		}
   237 		}
   215 	}
   238 	}
       
   239     if (ba) {
       
   240         delete ba;
       
   241     }
   216     return true;
   242     return true;
   217 }
   243 }
   218 
   244 
       
   245 /*!
       
   246     This function is needed by XML reader.  
       
   247      
       
   248     \param qName element which was readed
       
   249     \return true 
       
   250 */ 
   219 bool HbDNTXmlReader::endElement( const QString &,
   251 bool HbDNTXmlReader::endElement( const QString &,
   220         const QString &,
   252         const QString &,
   221         const QString & qName )
   253         const QString & qName )
   222 {
   254 {
   223 	if( qName == DirectoryLocalizerPathStringsStr ) {
   255 	if( qName == DirectoryLocalizerPathStringsStr ) {
   251 		}
   283 		}
   252 	}
   284 	}
   253 	return true;
   285 	return true;
   254 }
   286 }
   255 
   287 
       
   288 /*!
       
   289     This function is needed by XML reader.  
       
   290      
       
   291     \return true 
       
   292 */ 
   256 bool HbDNTXmlReader::endDocument()
   293 bool HbDNTXmlReader::endDocument()
   257 {
   294 {
   258     return true;
   295     return true;
   259 }
   296 }
   260 
   297 
       
   298 /*!
       
   299     \return pointer to list of full paths 
       
   300 */ 
   261 QMap<QString,QString> HbDNTXmlReader::getFullPaths()
   301 QMap<QString,QString> HbDNTXmlReader::getFullPaths()
   262 {
   302 {
   263 	return *fullPaths;
   303 	return *fullPaths;
   264 }
   304 }
   265 
   305