/***************************************************************************
+* this file is from kdeedu project. Filename: keduvocconjugation.cpp
+***************************************************************************/
- C++ Implementation: keduvocconjugation
+/***************************************************************************
+
+ C++ Implementation: qmvocconjugation
-----------------------------------------------------------------------
begin : Di Aug 28 2007
copyright : (C) 2007 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
+ Copyright : (C) 2010, 2012 Reto Zingg <g.d0b3rm4n@gmail.com>
-----------------------------------------------------------------------
* *
***************************************************************************/
-#include "keduvocconjugation.h"
-#include "keduvoccommon_p.h"
-#include "keduvoctext.h"
+#include "qmvocconjugation.h"
+#include "qmvoccommon_p.h"
+#include "qmvoctext.h"
#include "kvtml2defs.h"
#include <QtCore/QMap>
#include <QtXml/QDomDocument>
-#include <kdebug.h>
+#include <QDebug>
-class KEduVocConjugation::Private
+class QmVocConjugation::Private
{
public:
- QMap<KEduVocWordFlags, KEduVocText> m_conjugations;
+ QMap<QmVocWordFlags, QmVocText> m_conjugations;
};
-KEduVocConjugation::KEduVocConjugation()
+QmVocConjugation::QmVocConjugation()
: d( new Private )
{}
-KEduVocConjugation::KEduVocConjugation( const KEduVocConjugation& other )
+QmVocConjugation::QmVocConjugation( const QmVocConjugation& other )
: d( new Private )
{
d->m_conjugations = other.d->m_conjugations;
}
-KEduVocConjugation::~KEduVocConjugation()
+QmVocConjugation::~QmVocConjugation()
{
delete d;
}
-KEduVocConjugation& KEduVocConjugation::operator = ( const KEduVocConjugation& other )
+QmVocConjugation& QmVocConjugation::operator = ( const QmVocConjugation& other )
{
d->m_conjugations = other.d->m_conjugations;
return *this;
}
-bool KEduVocConjugation::operator ==(const KEduVocConjugation& other) const
+bool QmVocConjugation::operator ==(const QmVocConjugation& other) const
{
return d->m_conjugations == other.d->m_conjugations;
}
-KEduVocText& KEduVocConjugation::conjugation(KEduVocWordFlags flags) const
+QmVocText& QmVocConjugation::conjugation(QmVocWordFlags flags) const
{
- return d->m_conjugations[flags & (KEduVocWordFlag::persons | KEduVocWordFlag::numbers | KEduVocWordFlag::genders)];
+ return d->m_conjugations[flags & (QmVocWordFlag::persons | QmVocWordFlag::numbers | QmVocWordFlag::genders)];
}
-void KEduVocConjugation::setConjugation(const KEduVocText& conjugation, KEduVocWordFlags flags)
+void QmVocConjugation::setConjugation(const QmVocText& conjugation, QmVocWordFlags flags)
{
- d->m_conjugations[flags & (KEduVocWordFlag::persons | KEduVocWordFlag::numbers | KEduVocWordFlag::genders)] = conjugation;
+ d->m_conjugations[flags & (QmVocWordFlag::persons | QmVocWordFlag::numbers | QmVocWordFlag::genders)] = conjugation;
}
-bool KEduVocConjugation::isEmpty()
+bool QmVocConjugation::isEmpty()
{
return d->m_conjugations.isEmpty();
}
-QList< KEduVocWordFlags > KEduVocConjugation::keys()
+QList< QmVocWordFlags > QmVocConjugation::keys()
{
return d->m_conjugations.keys();
}
-void KEduVocConjugation::toKVTML2(QDomElement & parent, const QString &tense)
+void QmVocConjugation::toKVTML2(QDomElement & parent, const QString &tense)
{
if (isEmpty()) {
return;
}
- QMap<int, KEduVocWordFlag::Flags> numbers;
- numbers[0] = KEduVocWordFlag::Singular;
- numbers[1] = KEduVocWordFlag::Dual;
- numbers[2] = KEduVocWordFlag::Plural;
- QMap<int, KEduVocWordFlag::Flags> persons;
- persons[0] = KEduVocWordFlag::First;
- persons[1] = KEduVocWordFlag::Second;
- persons[2] = (KEduVocWordFlag::Flags)((int)KEduVocWordFlag::Third | (int)KEduVocWordFlag::Masculine);
- persons[3] = (KEduVocWordFlag::Flags)((int)KEduVocWordFlag::Third | (int)KEduVocWordFlag::Feminine);
- persons[4] = (KEduVocWordFlag::Flags)((int)KEduVocWordFlag::Third | (int)KEduVocWordFlag::Neuter);
+ QMap<int, QmVocWordFlag::Flags> numbers;
+ numbers[0] = QmVocWordFlag::Singular;
+ numbers[1] = QmVocWordFlag::Dual;
+ numbers[2] = QmVocWordFlag::Plural;
+ QMap<int, QmVocWordFlag::Flags> persons;
+ persons[0] = QmVocWordFlag::First;
+ persons[1] = QmVocWordFlag::Second;
+ persons[2] = (QmVocWordFlag::Flags)((int)QmVocWordFlag::Third | (int)QmVocWordFlag::Masculine);
+ persons[3] = (QmVocWordFlag::Flags)((int)QmVocWordFlag::Third | (int)QmVocWordFlag::Feminine);
+ persons[4] = (QmVocWordFlag::Flags)((int)QmVocWordFlag::Third | (int)QmVocWordFlag::Neuter);
QDomDocument domDoc = parent.ownerDocument();
tenseElement.appendChild( domDoc.createTextNode(tense) );
parent.appendChild(tenseElement);
} else {
- kDebug() << "Saving conjugation with empty tense";
+ qDebug() << "Saving conjugation with empty tense";
}
for ( int num = 0; num <= 2; ++num) {
QDomElement numberElement = domDoc.createElement( KVTML_GRAMMATICAL_NUMBER[num] );
for ( int person = 0; person < 5; ++person) {
- KEduVocWordFlags curFlags = numbers[num] | persons[person];
+ QmVocWordFlags curFlags = numbers[num] | persons[person];
if (keys().contains(curFlags) && !conjugation(curFlags).isEmpty()) {
QDomElement personElement = domDoc.createElement( KVTML_GRAMMATICAL_PERSON[person] );
/*
QString first = conjugation.conjugation(
- KEduVocConjugation::First, num );
+ QmVocConjugation::First, num );
QString second = conjugation.conjugation(
- KEduVocConjugation::Second, num );
+ QmVocConjugation::Second, num );
QString third_male = conjugation.conjugation(
- KEduVocConjugation::ThirdMale, num );
+ QmVocConjugation::ThirdMale, num );
QString third_female = conjugation.conjugation(
- KEduVocConjugation::ThirdFemale, num );
+ QmVocConjugation::ThirdFemale, num );
QString third_neutral = conjugation.conjugation(
- KEduVocConjugation::ThirdNeutralCommon, num );
+ QmVocConjugation::ThirdNeutralCommon, num );
if ( !first.isEmpty() || !second.isEmpty() || !third_female.isEmpty() ||
!third_male.isEmpty() || !third_neutral.isEmpty() ) {
QDomElement number;
switch (num) {
- case KEduVocConjugation::Singular:
+ case QmVocConjugation::Singular:
number = m_domDoc.createElement( KVTML_SINGULAR );
break;
- case KEduVocConjugation::Dual:
+ case QmVocConjugation::Dual:
number = m_domDoc.createElement( KVTML_DUAL );
break;
- case KEduVocConjugation::Plural:
+ case QmVocConjugation::Plural:
number = m_domDoc.createElement( KVTML_PLURAL );
break;
}
/*
- for ( KEduVocWordFlag::DeclensionNumber num = KEduVocWordFlag::Singular; num <= KEduVocWordFlag::Plural; num = KEduVocWordFlag::DeclensionNumber(num +1) ) {
+ for ( QmVocWordFlag::DeclensionNumber num = QmVocWordFlag::Singular; num <= QmVocWordFlag::Plural; num = QmVocWordFlag::DeclensionNumber(num +1) ) {
QDomElement numberElement = domDoc.createElement( KVTML_GRAMMATICAL_NUMBER[num] );
- for ( KEduVocWordFlag::DeclensionCase dcase = KEduVocWordFlag::Nominative; dcase < KEduVocWordFlag::DeclensionCaseMAX; dcase = KEduVocWordFlag::DeclensionCase(dcase +1) ) {
+ for ( QmVocWordFlag::DeclensionCase dcase = QmVocWordFlag::Nominative; dcase < QmVocWordFlag::DeclensionCaseMAX; dcase = QmVocWordFlag::DeclensionCase(dcase +1) ) {
QDomElement caseElement = domDoc.createElement( KVTML_DECLENSION_CASE[dcase] );
declension(num, dcase).toKVTML2(caseElement);
-KEduVocConjugation* KEduVocConjugation::fromKVTML2(QDomElement & parent)
+QmVocConjugation* QmVocConjugation::fromKVTML2(QDomElement & parent)
{
// sanity check
if (parent.isNull()) {
return 0;
}
- QMap<int, KEduVocWordFlag::Flags> numbers;
- numbers[0] = KEduVocWordFlag::Singular;
- numbers[1] = KEduVocWordFlag::Dual;
- numbers[2] = KEduVocWordFlag::Plural;
- QMap<int, KEduVocWordFlag::Flags> persons;
- persons[0] = KEduVocWordFlag::First;
- persons[1] = KEduVocWordFlag::Second;
- persons[2] = (KEduVocWordFlag::Flags)((int)KEduVocWordFlag::Third | (int)KEduVocWordFlag::Masculine);
- persons[3] = (KEduVocWordFlag::Flags)((int)KEduVocWordFlag::Third | (int)KEduVocWordFlag::Feminine);
- persons[4] = (KEduVocWordFlag::Flags)((int)KEduVocWordFlag::Third | (int)KEduVocWordFlag::Neuter);
+ QMap<int, QmVocWordFlag::Flags> numbers;
+ numbers[0] = QmVocWordFlag::Singular;
+ numbers[1] = QmVocWordFlag::Dual;
+ numbers[2] = QmVocWordFlag::Plural;
+ QMap<int, QmVocWordFlag::Flags> persons;
+ persons[0] = QmVocWordFlag::First;
+ persons[1] = QmVocWordFlag::Second;
+ persons[2] = (QmVocWordFlag::Flags)((int)QmVocWordFlag::Third | (int)QmVocWordFlag::Masculine);
+ persons[3] = (QmVocWordFlag::Flags)((int)QmVocWordFlag::Third | (int)QmVocWordFlag::Feminine);
+ persons[4] = (QmVocWordFlag::Flags)((int)QmVocWordFlag::Third | (int)QmVocWordFlag::Neuter);
- KEduVocConjugation* conjugation = new KEduVocConjugation;
+ QmVocConjugation* conjugation = new QmVocConjugation;
for ( int num = 0; num <= 2; num++ ) {
QDomElement numberElement = parent.firstChildElement( KVTML_GRAMMATICAL_NUMBER[num] );
for (int person = 0; person < 5; person++) {
QDomElement personElement = numberElement.firstChildElement( KVTML_GRAMMATICAL_PERSON[person] );
if (!personElement.isNull()) {
- KEduVocText text;
+ QmVocText text;
text.fromKVTML2(personElement);
if (text.text().isEmpty()) {
// compatibility for kde 4.0. There the text was directly below the person, not enabling grades per conjugation form.