From 0ddffaf8489ba7186ecac6b3f9009c3079435ed3 Mon Sep 17 00:00:00 2001 From: Reto Zingg Date: Sat, 15 Dec 2012 19:28:48 +0200 Subject: [PATCH] adapt qmvocconjugation.cpp for querymee --- qmvocconjugation.cpp | 113 ++++++++++++++++++++++--------------------- 1 file changed, 59 insertions(+), 54 deletions(-) diff --git a/qmvocconjugation.cpp b/qmvocconjugation.cpp index eb2382b..2b60702 100644 --- a/qmvocconjugation.cpp +++ b/qmvocconjugation.cpp @@ -1,12 +1,17 @@ /*************************************************************************** +* 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 + Copyright : (C) 2010, 2012 Reto Zingg ----------------------------------------------------------------------- @@ -21,88 +26,88 @@ * * ***************************************************************************/ -#include "keduvocconjugation.h" -#include "keduvoccommon_p.h" -#include "keduvoctext.h" +#include "qmvocconjugation.h" +#include "qmvoccommon_p.h" +#include "qmvoctext.h" #include "kvtml2defs.h" #include #include -#include +#include -class KEduVocConjugation::Private +class QmVocConjugation::Private { public: - QMap m_conjugations; + QMap 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 numbers; - numbers[0] = KEduVocWordFlag::Singular; - numbers[1] = KEduVocWordFlag::Dual; - numbers[2] = KEduVocWordFlag::Plural; - QMap 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 numbers; + numbers[0] = QmVocWordFlag::Singular; + numbers[1] = QmVocWordFlag::Dual; + numbers[2] = QmVocWordFlag::Plural; + QMap 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(); @@ -112,13 +117,13 @@ void KEduVocConjugation::toKVTML2(QDomElement & parent, const QString &tense) 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] ); @@ -135,27 +140,27 @@ void KEduVocConjugation::toKVTML2(QDomElement & parent, const QString &tense) /* 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; } @@ -172,9 +177,9 @@ void KEduVocConjugation::toKVTML2(QDomElement & parent, const QString &tense) /* - 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); @@ -191,26 +196,26 @@ void KEduVocConjugation::toKVTML2(QDomElement & parent, const QString &tense) -KEduVocConjugation* KEduVocConjugation::fromKVTML2(QDomElement & parent) +QmVocConjugation* QmVocConjugation::fromKVTML2(QDomElement & parent) { // sanity check if (parent.isNull()) { return 0; } - QMap numbers; - numbers[0] = KEduVocWordFlag::Singular; - numbers[1] = KEduVocWordFlag::Dual; - numbers[2] = KEduVocWordFlag::Plural; - QMap 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 numbers; + numbers[0] = QmVocWordFlag::Singular; + numbers[1] = QmVocWordFlag::Dual; + numbers[2] = QmVocWordFlag::Plural; + QMap 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] ); @@ -219,7 +224,7 @@ KEduVocConjugation* KEduVocConjugation::fromKVTML2(QDomElement & parent) 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. -- 2.47.3