From ce6ee3795efd33742960ee937f80d196689ae87f Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Fri, 15 Aug 2008 12:22:28 +0000 Subject: [PATCH] read and write tenses for individual languages for kvtml2 svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=847460 --- keduvocdocument/keduvockvtml2reader.cpp | 55 +++++++++++-------------- keduvocdocument/keduvockvtml2reader.h | 2 +- keduvocdocument/keduvockvtml2writer.cpp | 24 +++-------- keduvocdocument/keduvockvtml2writer.h | 5 --- 4 files changed, 30 insertions(+), 56 deletions(-) diff --git a/keduvocdocument/keduvockvtml2reader.cpp b/keduvocdocument/keduvockvtml2reader.cpp index 6f17749..66d7004 100644 --- a/keduvocdocument/keduvockvtml2reader.cpp +++ b/keduvocdocument/keduvockvtml2reader.cpp @@ -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 ) /* diff --git a/keduvocdocument/keduvockvtml2reader.h b/keduvocdocument/keduvockvtml2reader.h index 1213e59..9d082dc 100644 --- a/keduvocdocument/keduvockvtml2reader.h +++ b/keduvocdocument/keduvockvtml2reader.h @@ -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 diff --git a/keduvocdocument/keduvockvtml2writer.cpp b/keduvocdocument/keduvockvtml2writer.cpp index 9d58dc6..2d75044 100644 --- a/keduvocdocument/keduvockvtml2writer.cpp +++ b/keduvocdocument/keduvockvtml2writer.cpp @@ -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); diff --git a/keduvocdocument/keduvockvtml2writer.h b/keduvocdocument/keduvockvtml2writer.h index 5e6cff2..4a07293 100644 --- a/keduvocdocument/keduvockvtml2writer.h +++ b/keduvocdocument/keduvockvtml2writer.h @@ -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 */ -- 2.47.3