]> Git trees. - libqmvoc.git/commitdiff
read and write tenses for individual languages for kvtml2
authorFrederik Gladhorn <gladhorn@kde.org>
Fri, 15 Aug 2008 12:22:28 +0000 (12:22 +0000)
committerFrederik Gladhorn <gladhorn@kde.org>
Fri, 15 Aug 2008 12:22:28 +0000 (12:22 +0000)
svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=847460

keduvocdocument/keduvockvtml2reader.cpp
keduvocdocument/keduvockvtml2reader.h
keduvocdocument/keduvockvtml2writer.cpp
keduvocdocument/keduvockvtml2writer.h

index 6f177497486736591b5d7a48e40c2ba2a15abd12..66d70047c5254a20253cd66d76156d383bb11e8a 100644 (file)
@@ -145,9 +145,19 @@ bool KEduVocKvtml2Reader::readGroups( QDomElement &domElementParent )
 {
     bool result = false;
 
+    QDomElement groupElement = domElementParent.firstChildElement( KVTML_IDENTIFIERS );
+
     QDomElement currentElement;
 
-    QDomElement groupElement = domElementParent.firstChildElement( KVTML_IDENTIFIERS );
+    // ensure backwards compability - in kde 4.1 and earlier tenses were direct properties of the document class.
+    // now they are moved into the individual identifiers
+    QStringList tensesCompability;
+    groupElement = groupElement.firstChildElement( KVTML_TENSES );
+    if ( !groupElement.isNull() ) {
+        tensesCompability = readTenses( groupElement );
+    }
+
+    groupElement = domElementParent.firstChildElement( KVTML_IDENTIFIERS );
     if ( !groupElement.isNull() ) {
         QDomNodeList entryList = groupElement.elementsByTagName( KVTML_IDENTIFIER );
         if ( entryList.length() <= 0 ) {
@@ -159,17 +169,16 @@ bool KEduVocKvtml2Reader::readGroups( QDomElement &domElementParent )
             currentElement = entryList.item( i ).toElement();
             if ( currentElement.parentNode() == groupElement ) {
                 result = readIdentifier( currentElement );
-                if ( !result )
+                if ( !result ) {
                     return false;
+                }
+                if (!tensesCompability.isEmpty()) {
+                    m_doc->identifier(i).setTenseList(tensesCompability);
+                }
             }
         }
     }
 
-    groupElement = domElementParent.firstChildElement( KVTML_TENSES );
-    if ( !groupElement.isNull() ) {
-        readTenses( groupElement );
-    }
-
     groupElement = domElementParent.firstChildElement( KVTML_ENTRIES );
     if ( !groupElement.isNull() ) {
         QDomNodeList entryList = groupElement.elementsByTagName( KVTML_ENTRY );
@@ -248,11 +257,6 @@ bool KEduVocKvtml2Reader::readIdentifier( QDomElement &identifierElement )
         // TODO: do something with the type
     }
 
-    currentElement = identifierElement.firstChildElement( KVTML_SIZEHINT );
-    if ( !currentElement.isNull() ) {
-        // TODO: do something with the sizehint
-    }
-
     // read sub-parts
     currentElement = identifierElement.firstChildElement( KVTML_ARTICLE );
     if ( !currentElement.isNull() ) {
@@ -265,6 +269,11 @@ bool KEduVocKvtml2Reader::readIdentifier( QDomElement &identifierElement )
         readPersonalPronoun( currentElement, personalPronoun );
         m_doc->identifier(id).setPersonalPronouns( personalPronoun );
     }
+
+
+    QStringList tenses = readTenses(identifierElement);
+    m_doc->identifier(id).setTenseList(tenses);
+
     return result;
 }
 
@@ -601,7 +610,7 @@ bool KEduVocKvtml2Reader::readWordType( KEduVocWordType* parentContainer, QDomEl
     return true;
 }
 
-bool KEduVocKvtml2Reader::readTenses( QDomElement &tensesElement )
+const QStringList& KEduVocKvtml2Reader::readTenses( QDomElement &tensesElement )
 {
     QStringList tenses;
 
@@ -613,27 +622,9 @@ bool KEduVocKvtml2Reader::readTenses( QDomElement &tensesElement )
         }
     }
 
-    m_doc->setTenseDescriptions( tenses );
-    return true;
+    return tenses;
 }
 
-/*
-bool KEduVocKvtml2Reader::readUsages( QDomElement &usagesElement )
-{
-    QStringList usages;
-
-    QDomNodeList usageNodes = usagesElement.elementsByTagName( KVTML_USAGE );
-    for ( int i = 0; i < usageNodes.count(); ++i ) {
-        QDomElement currentElement = usageNodes.item( i ).toElement();
-        if ( currentElement.parentNode() == usagesElement ) {
-            m_doc->addUsage( currentElement.text() );
-        }
-    }
-
-    return true;
-}*/
-
-
 bool KEduVocKvtml2Reader::readComparison( QDomElement &domElementParent, KEduVocTranslation* translation )
 /*
  <comparison>
index 1213e5991615dfae57a3c5b930f2587c8ca18bfd..9d082dc1e3d22790f9df8c859c741514710ecb3e 100644 (file)
@@ -106,7 +106,7 @@ private:
     /** read the tenses
      * @param tensesElement QDomElement for the tenses group
      */
-    bool readTenses( QDomElement &tensesElement );
+    const QStringList& readTenses( QDomElement &tensesElement );
 
     /** read the usages
      * @param usagesElement QDomElement for the usages group
index 9d58dc6ca9a0431946462528c689ef4248ca0198..2d75044cb66d4d13161e25a6b7a55436d98bac6c 100644 (file)
@@ -73,13 +73,6 @@ bool KEduVocKvtml2Writer::createXmlDocument( KEduVocDocument *doc, const QString
     writeIdentifiers( currentElement );
     domElementKvtml.appendChild( currentElement );
 
-    // tenses
-    currentElement = m_domDoc.createElement( KVTML_TENSES );
-    writeTenses( currentElement );
-    if ( currentElement.hasChildNodes() ) {
-        domElementKvtml.appendChild( currentElement );
-    }
-
     // entries
     currentElement = m_domDoc.createElement( KVTML_ENTRIES );
     if ( !writeEntries( currentElement ) ) {
@@ -187,6 +180,12 @@ bool KEduVocKvtml2Writer::writeIdentifiers( QDomElement &identifiersElement )
             identifier.appendChild( personalpronouns );
         }
 
+        // tenses
+        foreach(const QString &tense, m_doc->tenseDescriptions() ) {
+            if ( !( tense.isNull() ) ) {
+                identifier.appendChild( newTextElement( KVTML_TENSE, tense ) );
+            }
+        }
         // add this identifier to the group
         identifiersElement.appendChild( identifier );
     }
@@ -457,17 +456,6 @@ bool KEduVocKvtml2Writer::writeLeitnerBoxes( QDomElement &leitnerParentElement,
     return true;
 }
 
-bool KEduVocKvtml2Writer::writeTenses( QDomElement &tensesElement )
-{
-    foreach( const QString &tense, m_doc->tenseDescriptions() ) {
-        if ( !( tense.isNull() ) ) {
-            tensesElement.appendChild( newTextElement( KVTML_TENSE, tense ) );
-        }
-    }
-
-    return true;
-}
-
 bool KEduVocKvtml2Writer::writeEntries( QDomElement &entriesElement )
 {
     m_allEntries = m_doc->lesson()->entries(KEduVocLesson::Recursive);
index 5e6cff2d111a0e6d0c4208c651aaa27bb9ad16b5..4a07293112e8d3dd385242d6db30576590197b51 100644 (file)
@@ -88,11 +88,6 @@ private:
      */
     bool writeLeitnerBoxes( QDomElement &leitnerParentElement, KEduVocLeitnerBox* parentContainer );
 
-    /** write tenses
-     * @param tensesElement QDomElement tenses to write to
-     */
-    bool writeTenses( QDomElement &tensesElement );
-
     /** write entries
      * @param entriesElement QDomElement entries to write to
      */