From 4e5a3885dbd7c2eedab08bfb3d4acbf5bb2af083 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Sat, 27 Oct 2007 21:51:31 +0000 Subject: [PATCH] Write dual and plural articles. Patch by pavithran s CCMAIL: pavithran@gmx.de svn path=/branches/work/kdeedu_parley/libkdeedu/; revision=730081 --- keduvocdocument/keduvockvtml2writer.cpp | 94 +++++++++++++------------ 1 file changed, 49 insertions(+), 45 deletions(-) diff --git a/keduvocdocument/keduvockvtml2writer.cpp b/keduvocdocument/keduvockvtml2writer.cpp index 0682a12..9d23c28 100644 --- a/keduvocdocument/keduvockvtml2writer.cpp +++ b/keduvocdocument/keduvockvtml2writer.cpp @@ -207,59 +207,63 @@ bool KEduVocKvtml2Writer::writeLessons( QDomElement &lessonsElement ) bool KEduVocKvtml2Writer::writeArticle( QDomElement &articleElement, int article ) { - ///@todo: this is ugly as hell and writes only singular - - QDomElement singular = m_domDoc.createElement( KVTML_SINGULAR ); - - QDomElement definite = m_domDoc.createElement( KVTML_DEFINITE ); - QDomElement indefinite = m_domDoc.createElement( KVTML_INDEFINITE ); + QDomElement number; QString def; QString indef; - // male - QString articleString; - articleString = m_doc->identifier(article).article().article( KEduVocArticle::Singular, KEduVocArticle::Definite, KEduVocArticle::Masculine ); - if ( !articleString.isEmpty() ) { - definite.appendChild( newTextElement( KVTML_MALE, articleString ) ); - } - articleString = m_doc->identifier(article).article().article( KEduVocArticle::Singular, KEduVocArticle::Indefinite, KEduVocArticle::Masculine ); - if ( !articleString.isEmpty() ) { - indefinite.appendChild( newTextElement( KVTML_MALE, articleString ) ); - } - - // female - articleString = m_doc->identifier(article).article().article( KEduVocArticle::Singular, KEduVocArticle::Definite, KEduVocArticle::Feminine ); - if ( !articleString.isEmpty() ) { - definite.appendChild( newTextElement( KVTML_FEMALE, articleString ) ); - } - articleString = m_doc->identifier(article).article().article( KEduVocArticle::Singular, KEduVocArticle::Indefinite, KEduVocArticle::Feminine ); - if ( !articleString.isEmpty() ) { - indefinite.appendChild( newTextElement( KVTML_FEMALE, articleString ) ); - } - - // neutral - articleString = m_doc->identifier(article).article().article( KEduVocArticle::Singular, KEduVocArticle::Definite, KEduVocArticle::Neutral ); - if ( !articleString.isEmpty() ) { - definite.appendChild( newTextElement( KVTML_NEUTRAL, articleString ) ); - } - articleString = m_doc->identifier(article).article().article( KEduVocArticle::Singular, KEduVocArticle::Indefinite, KEduVocArticle::Neutral ); - if ( !articleString.isEmpty() ) { - indefinite.appendChild( newTextElement( KVTML_NEUTRAL, articleString ) ); - } - + for( int i= KEduVocArticle::Singular; i <= KEduVocArticle::Plural; ++i) + { + QDomElement definite = m_domDoc.createElement( KVTML_DEFINITE ); + QDomElement indefinite = m_domDoc.createElement( KVTML_INDEFINITE ); + + if(i=KEduVocArticle::Singular) { + number = m_domDoc.createElement( KVTML_SINGULAR ); + } else if(i=KEduVocArticle::Plural) { + number = m_domDoc.createElement( KVTML_PLURAL); + } else if(i=KEduVocArticle::Dual) { + number = m_domDoc.createElement( KVTML_DUAL ); + } + QString articleString; + articleString = m_doc->identifier(article).article().article( KEduVocArticle::ArticleNumber(i), KEduVocArticle::Definite, KEduVocArticle::Masculine ); + if ( !articleString.isEmpty() ) { + definite.appendChild( newTextElement( KVTML_MALE, articleString ) ); + } + articleString = m_doc->identifier(article).article().article(KEduVocArticle::ArticleNumber(i), KEduVocArticle::Indefinite, KEduVocArticle::Masculine ); + if ( !articleString.isEmpty() ) { + indefinite.appendChild( newTextElement( KVTML_MALE, articleString ) ); + } + // female + articleString = m_doc->identifier(article).article().article( KEduVocArticle::ArticleNumber(i), KEduVocArticle::Definite, KEduVocArticle::Feminine ); + if ( !articleString.isEmpty() ) { + definite.appendChild( newTextElement( KVTML_FEMALE, articleString ) ); + } + articleString = m_doc->identifier(article).article().article( KEduVocArticle::ArticleNumber(i), KEduVocArticle::Indefinite, KEduVocArticle::Feminine ); + if ( !articleString.isEmpty() ) { + indefinite.appendChild( newTextElement( KVTML_FEMALE, articleString ) ); + } - if ( definite.hasChildNodes() ) { - singular.appendChild( definite ); - } + // neutral + articleString = m_doc->identifier(article).article().article( KEduVocArticle::ArticleNumber(i), KEduVocArticle::Definite, KEduVocArticle::Neutral ); + if ( !articleString.isEmpty() ) { + definite.appendChild( newTextElement( KVTML_NEUTRAL, articleString ) ); + } + articleString = m_doc->identifier(article).article().article( KEduVocArticle::ArticleNumber(i), KEduVocArticle::Indefinite, KEduVocArticle::Neutral ); + if ( !articleString.isEmpty() ) { + indefinite.appendChild( newTextElement( KVTML_NEUTRAL, articleString ) ); + } - if ( indefinite.hasChildNodes() ) { - singular.appendChild( indefinite ); - } - if ( singular.hasChildNodes() ) { - articleElement.appendChild( singular ); + if ( definite.hasChildNodes() ) { + number.appendChild( definite ); + } + if ( indefinite.hasChildNodes() ) { + number.appendChild( indefinite ); + } + if ( number.hasChildNodes() ) { + articleElement.appendChild( number ); + } } return true; } -- 2.47.3