]> Git trees. - libqmvoc.git/commitdiff
Write dual and plural articles.
authorFrederik Gladhorn <gladhorn@kde.org>
Sat, 27 Oct 2007 21:51:31 +0000 (21:51 +0000)
committerFrederik Gladhorn <gladhorn@kde.org>
Sat, 27 Oct 2007 21:51:31 +0000 (21:51 +0000)
Patch by pavithran s
CCMAIL: pavithran@gmx.de

svn path=/branches/work/kdeedu_parley/libkdeedu/; revision=730081

keduvocdocument/keduvockvtml2writer.cpp

index 0682a1237bd692244b062da2ddc533e5ca755895..9d23c2830197ed3b623aabc8f23ff61bf0eb8810 100644 (file)
@@ -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;
 }