(C) 2005 Eric Pignet <eric at erixpage.com>
(C) 2007 Peter Hedlund <peter.hedlund@kdemail.net>
- Copyright 2007-2008 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
+ Copyright 2007-2010 Frederik Gladhorn <gladhorn@kde.org>
***************************************************************************/
/***************************************************************************
expr->translation(index)->fromKVTML2(translationElement);
QDomElement currentElement;
+ // article grade
+ currentElement = translationElement.firstChildElement( KVTML_ARTICLE );
+ if ( !currentElement.isNull() ) {
+ KEduVocText article;
+ article.fromKVTML2(currentElement);
+ expr->translation(index)->setArticle(article);
+ }
+
// comparisons
currentElement = translationElement.firstChildElement( KVTML_COMPARISON );
if ( !currentElement.isNull() ) {
}
} // special type
-
// read entries
QDomElement entryElement = typeElement.firstChildElement( KVTML_ENTRY );
while ( !entryElement.isNull() ) {
currentElement = domElementParent.firstChildElement( KVTML_COMPARATIVE );
if ( !currentElement.isNull() )
{
- translation->setComparative( currentElement.text() );
+ KEduVocText comparative;
+ comparative.fromKVTML2(currentElement);
+
+ // be compatible for KDE < 4.5
+ if (comparative.text().isEmpty()) {
+ comparative.setText(currentElement.text());
+ }
+ translation->setComparativeForm(comparative);
}
currentElement = domElementParent.firstChildElement( KVTML_SUPERLATIVE );
if ( !currentElement.isNull() )
{
- translation->setSuperlative( currentElement.text() );
+ KEduVocText superlative;
+ superlative.fromKVTML2(currentElement);
+
+ // be compatible for KDE < 4.5
+ if (superlative.text().isEmpty()) {
+ superlative.setText(currentElement.text());
+ }
+ translation->setSuperlativeForm(superlative);
}
return true;
}
-
bool KEduVocKvtml2Reader::readMultipleChoice( QDomElement &multipleChoiceElement, KEduVocTranslation* translation )
/*
<multiplechoice>
export a KEduVocDocument to a KVTML file
-----------------------------------------------------------------------
copyright : (C) 2007 Jeremy Whiting <jpwhiting@kde.org>
- (C) 2007-2008 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
+ Copyright 2007-2010 Frederik Gladhorn <gladhorn@kde.org>
***************************************************************************/
/***************************************************************************
#include <QtCore/QTextStream>
#include <QtCore/QFile>
+#include <KDebug>
+
#include "keduvocdocument.h"
#include "keduvocexpression.h"
#include "keduvoclesson.h"
translation->toKVTML2(translationElement);
// comparison
- if ( !(translation->comparative().isEmpty() || translation->comparative().isEmpty())) {
+ if ( !(translation->comparativeForm().text().isEmpty() || translation->superlativeForm().text().isEmpty())) {
+ kDebug() << "Write comp";
QDomElement comparisonElement = m_domDoc.createElement( KVTML_COMPARISON );
- writeComparison( comparisonElement, translation );
- translationElement.appendChild( comparisonElement );
+ translationElement.appendChild(comparisonElement);
+
+ QDomElement comparativeElement = m_domDoc.createElement( KVTML_COMPARATIVE );
+ comparisonElement.appendChild(comparativeElement);
+ translation->comparativeForm().toKVTML2(comparativeElement);
+
+ QDomElement superlativeElement = m_domDoc.createElement( KVTML_SUPERLATIVE );
+ comparisonElement.appendChild(superlativeElement);
+ translation->superlativeForm().toKVTML2(superlativeElement);
+ }
+
+ if (translation->article().practiceCount() != 0) {
+ QDomElement articleElement = m_domDoc.createElement( KVTML_ARTICLE );
+ translationElement.appendChild(articleElement);
+ translation->comparativeForm().toKVTML2(articleElement);
}
// multiplechoice
// }
// }
-
-
-
-
-
-bool KEduVocKvtml2Writer::writeComparison( QDomElement &comparisonElement, KEduVocTranslation* translation )
-/*
- <comparison>
- <absolute>good</absolute>
- <comparative>better</comparative>
- <superlative>best</superlative>
- </comparison>
-*/
-{
- comparisonElement.appendChild( newTextElement( KVTML_COMPARATIVE, translation->comparative() ) );
- comparisonElement.appendChild( newTextElement( KVTML_SUPERLATIVE, translation->superlative() ) );
-
- return true;
-}
-
-
bool KEduVocKvtml2Writer::writeMultipleChoice( QDomElement &multipleChoiceElement, KEduVocTranslation* translation )
/*
<multiplechoice>
*/
bool writeLessons( KEduVocLesson *parentLesson, QDomElement &lessonsElement );
-
void writeSynonymAntonymFalseFriend(QDomElement & parentElement);
-
- /** write a comparison
- * @param comparisonElement QDomElement comparison to write to
- * @param comparison object to write
- * @returns success
- */
- bool writeComparison( QDomElement &comparisonElement, KEduVocTranslation *translation );
/** write multiple choice choices
* @param multipleChoiceElement QDomElement multiplechoice to write to
Vocabulary Expression Translation for KDE Edu
-----------------------------------------------------------------------
- Copyright 2007-2008 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
+ Copyright 2007-2010 Frederik Gladhorn <gladhorn@kde.org>
***************************************************************************/
/***************************************************************************
QMap <QString, KEduVocConjugation> m_conjugations;
/// The comparison forms of adjectives and adverbs: (fast), faster, fastest
- QString m_comparative;
- QString m_superlative;
+ KEduVocText* m_comparative;
+ KEduVocText* m_superlative;
+
+ /// The grade of an article. The text part should not be used.
+ KEduVocText* m_articleGrade;
KEduVocDeclension* m_declension;
m_wordType = 0;
m_leitnerBox = 0;
m_declension = 0;
+
+ m_comparative = 0;
+ m_superlative = 0;
+ m_articleGrade = 0;
}
QString KEduVocTranslation::comparative() const
{
- return d->m_comparative;
+ if (d->m_comparative) {
+ return d->m_comparative->text();
+ }
+ return QString();
}
void KEduVocTranslation::setComparative(const QString & comparative)
{
- d->m_comparative = comparative;
+ if (!d->m_comparative) {
+ d->m_comparative = new KEduVocText(comparative);
+ } else {
+ d->m_comparative->setText(comparative);
+ }
}
QString KEduVocTranslation::superlative() const
{
- return d->m_superlative;
+ if (d->m_superlative) {
+ return d->m_superlative->text();
+ }
+ return QString();
}
void KEduVocTranslation::setSuperlative(const QString & superlative)
{
- d->m_superlative = superlative;
+ if (!d->m_superlative) {
+ d->m_superlative = new KEduVocText(superlative);
+ } else {
+ d->m_superlative->setText(superlative);
+ }
+}
+
+KEduVocText KEduVocTranslation::comparativeForm() const
+{
+ if (!d->m_comparative) {
+ return KEduVocText();
+ }
+ KEduVocText t(*(d->m_comparative));
+ return t;
+}
+
+void KEduVocTranslation::setComparativeForm(const KEduVocText& comparative)
+{
+ if (!d->m_comparative) {
+ d->m_comparative = new KEduVocText();
+ }
+ *(d->m_comparative) = comparative;
+}
+
+KEduVocText KEduVocTranslation::superlativeForm() const
+{
+ if (!d->m_superlative) {
+ return KEduVocText();
+ }
+ KEduVocText t(*d->m_superlative);
+ return t;
+}
+
+void KEduVocTranslation::setSuperlativeForm(const KEduVocText& superlative)
+{
+ if (!d->m_superlative) {
+ d->m_superlative = new KEduVocText();
+ }
+ *d->m_superlative = superlative;
+}
+
+KEduVocText KEduVocTranslation::article() const
+{
+ if (!d->m_articleGrade) {
+ return KEduVocText();
+ }
+ KEduVocText t(*d->m_articleGrade);
+ return t;
+}
+
+void KEduVocTranslation::setArticle(const KEduVocText& article)
+{
+ if (!d->m_articleGrade) {
+ d->m_articleGrade = new KEduVocText();
+ }
+ *d->m_articleGrade = article;
}
KEduVocDeclension * KEduVocTranslation::declension()
#define KEDUVOCTRANSLATION_H
#include "libkeduvocdocument_export.h"
-#include "keduvocarticle.h"
#include "keduvocconjugation.h"
#include "keduvoctext.h"
#include <KDE/KUrl>
/** sets comment of this expression
* @param expr comment of this index
*/
- void setComment( const QString & expr );
+ void setComment( const QString& expr );
/** sets example this expression
* @param expression example of this index
* Bad, only compatibility. Deprecated.
* @return
*/
- QMap <QString, KEduVocConjugation> conjugations() const;
+ KDE_DEPRECATED QMap <QString, KEduVocConjugation> conjugations() const;
/**
* Comparison forms of adjectives/adverbs.
*/
- QString comparative() const;
- void setComparative(const QString& comparative);
- QString superlative() const;
- void setSuperlative(const QString& superlative);
+ KDE_DEPRECATED QString comparative() const;
+ KDE_DEPRECATED void setComparative(const QString& comparative);
+ // TODO rename to comparative and remove the deprecated function
+ KEduVocText comparativeForm() const;
+ void setComparativeForm(const KEduVocText& comparative);
+
+ KDE_DEPRECATED QString superlative() const;
+ KDE_DEPRECATED void setSuperlative(const QString& superlative);
+ KEduVocText superlativeForm() const;
+ void setSuperlativeForm(const KEduVocText& superlative);
+
+ KEduVocText article() const;
+ void setArticle(const KEduVocText& article);
/** returns multiple choice if available
*/