From: Frederik Gladhorn Date: Mon, 19 Nov 2007 22:44:03 +0000 (+0000) Subject: To let pete implement a word type dock I seperated the word type and normal lessons... X-Git-Tag: v4.0.71~93^2~29 X-Git-Url: https://git.rmz.fi/?a=commitdiff_plain;h=f8c4c516a07903ebb9d17adf5e0359198a3127d7;p=libqmvoc.git To let pete implement a word type dock I seperated the word type and normal lessons again. svn path=/branches/work/kdeedu_parley/libkdeedu/; revision=738899 --- diff --git a/keduvocdocument/keduvocdocument.cpp b/keduvocdocument/keduvocdocument.cpp index 816df47..420fee2 100644 --- a/keduvocdocument/keduvocdocument.cpp +++ b/keduvocdocument/keduvocdocument.cpp @@ -55,10 +55,8 @@ public: KEduVocDocumentPrivate( KEduVocDocument* qq ) : q( qq ) { -kDebug() << "Creating new Document - init:"; m_rootLesson = 0; init(); -kDebug() << "Creating new Document - init done"; } ~KEduVocDocumentPrivate(); @@ -97,7 +95,8 @@ kDebug() << "Creating new Document - init done"; QString m_category; KEduVocLesson * m_rootLesson; - + KEduVocLesson * m_wordTypeLesson; + KEduVocWordType m_wordTypes; }; @@ -111,11 +110,10 @@ void KEduVocDocument::KEduVocDocumentPrivate::init() delete m_rootLesson; } m_rootLesson = new KEduVocLesson("root"); - // child lessons for m_rootLesson have to be according to enum RootLessonChildren in KEduVocLesson - // the first child lesson contains the normal hierachy of lessons - m_rootLesson->appendChildLesson(new KEduVocLesson(i18n( "Untitled" ), m_rootLesson)); - // the second lesson contains words sorted by word type - m_rootLesson->appendChildLesson(new KEduVocLesson(i18n( "Word type" ), m_rootLesson)); + if ( m_wordTypeLesson ) { + delete m_wordTypeLesson; + } + m_wordTypeLesson = new KEduVocLesson(i18n( "Word types" )); m_tenseDescriptions.clear(); m_identifiers.clear(); @@ -720,6 +718,12 @@ KEduVocLesson * KEduVocDocument::lesson() } +KEduVocLesson * KEduVocDocument::wordTypeLesson() +{ + return d->m_wordTypeLesson; +} + + KUrl KEduVocDocument::url() const { return d->m_url; @@ -734,16 +738,16 @@ void KEduVocDocument::setUrl( const KUrl& url ) QString KEduVocDocument::title() const { - if ( d->m_rootLesson->childLesson(KEduVocLesson::EntryLessonRoot)->name().isEmpty() ) + if ( d->m_rootLesson->name().isEmpty() ) return d->m_url.fileName(); else - return d->m_rootLesson->childLesson(KEduVocLesson::EntryLessonRoot)->name(); + return d->m_rootLesson->name(); } void KEduVocDocument::setTitle( const QString & title ) { - d->m_rootLesson->childLesson(KEduVocLesson::EntryLessonRoot)->setName(title.simplified()); + d->m_rootLesson->setName(title.simplified()); } diff --git a/keduvocdocument/keduvocdocument.h b/keduvocdocument/keduvocdocument.h index 7fa0b4f..6f4866b 100644 --- a/keduvocdocument/keduvocdocument.h +++ b/keduvocdocument/keduvocdocument.h @@ -340,6 +340,8 @@ public: */ KEduVocLesson * lesson(); + KEduVocLesson * wordTypeLesson(); + // *** file format specific methods *** /** diff --git a/keduvocdocument/keduvockvtml2reader.cpp b/keduvocdocument/keduvockvtml2reader.cpp index 8d087f5..ee7f90c 100644 --- a/keduvocdocument/keduvockvtml2reader.cpp +++ b/keduvocdocument/keduvockvtml2reader.cpp @@ -184,21 +184,14 @@ bool KEduVocKvtml2Reader::readGroups( QDomElement &domElementParent ) groupElement = domElementParent.firstChildElement( KVTML_LESSONS ); if ( !groupElement.isNull() ) { - readChildLessons(m_doc->lesson()->childLesson(KEduVocLesson::EntryLessonRoot), groupElement); + readChildLessons(m_doc->lesson(), groupElement); } ///@todo create dynamic lessons (word type) return true; } -void KEduVocKvtml2Reader::printLesson( KEduVocLesson* lesson ) -{ - kDebug() << "Lesson" << lesson->name(); - foreach ( KEduVocLesson* child, lesson->childLessons() ) { - printLesson(child); - } -} bool KEduVocKvtml2Reader::readIdentifier( QDomElement &identifierElement ) { @@ -437,8 +430,6 @@ bool KEduVocKvtml2Reader::readLesson( KEduVocLesson* parentLesson, QDomElement & KEduVocLesson * lesson = new KEduVocLesson(currentElement.text(), parentLesson); parentLesson->appendChildLesson( lesson ); - kDebug() << "readLesson" << lesson->name(); - readChildLessons( lesson, lessonElement ); //true @@ -552,6 +543,9 @@ bool KEduVocKvtml2Reader::readTypes( QDomElement &typesElement ) } m_doc->wordTypes().addType( mainTypeName, specialType ); + KEduVocLesson * wordTypeLesson = new KEduVocLesson(mainTypeName, m_doc->wordTypeLesson()); + m_doc->wordTypeLesson()->appendChildLesson(wordTypeLesson); + // iterate sub type elements QDomElement currentSubTypeElement = currentTypeElement.firstChildElement( KVTML_SUBWORDTYPEDEFINITION ); while ( !currentSubTypeElement.isNull() ) { @@ -568,11 +562,16 @@ bool KEduVocKvtml2Reader::readTypes( QDomElement &typesElement ) specialSubType = m_doc->wordTypes().specialTypeNounNeutral(); } } + + QString subTypeName = currentSubTypeElement.firstChildElement( KVTML_SUBTYPENAME ).text(); // set type and specialtype - m_doc->wordTypes().addSubType( mainTypeName, - currentSubTypeElement.firstChildElement( KVTML_SUBTYPENAME ).text(), + m_doc->wordTypes().addSubType( mainTypeName, subTypeName, specialSubType ); currentSubTypeElement = currentSubTypeElement.nextSiblingElement( KVTML_SUBWORDTYPEDEFINITION ); + + KEduVocLesson * subWordTypeLesson = new KEduVocLesson(subTypeName, wordTypeLesson); + wordTypeLesson->appendChildLesson(subWordTypeLesson); + } currentTypeElement = currentTypeElement.nextSiblingElement( KVTML_WORDTYPEDEFINITION ); } diff --git a/keduvocdocument/keduvockvtml2reader.h b/keduvocdocument/keduvockvtml2reader.h index 275bf55..4e88653 100644 --- a/keduvocdocument/keduvockvtml2reader.h +++ b/keduvocdocument/keduvockvtml2reader.h @@ -142,8 +142,6 @@ private: */ bool readLesson( KEduVocLesson* parentLesson, QDomElement &lessonElement ); - void printLesson( KEduVocLesson* lesson ); - /** pre-opened QIODevice to read from */ QIODevice *m_inputFile; diff --git a/keduvocdocument/keduvockvtml2writer.cpp b/keduvocdocument/keduvockvtml2writer.cpp index 67e3cb3..c60f601 100644 --- a/keduvocdocument/keduvockvtml2writer.cpp +++ b/keduvocdocument/keduvockvtml2writer.cpp @@ -80,7 +80,7 @@ bool KEduVocKvtml2Writer::writeDoc( KEduVocDocument *doc, const QString &generat // lessons currentElement = m_domDoc.createElement( KVTML_LESSONS ); - writeLessons( m_doc->lesson()->childLesson(KEduVocLesson::EntryLessonRoot), currentElement ); + writeLessons( m_doc->lesson(), currentElement ); if ( currentElement.hasChildNodes() ) { domElementKvtml.appendChild( currentElement ); } diff --git a/keduvocdocument/keduvoclesson.cpp b/keduvocdocument/keduvoclesson.cpp index 02a4960..1a0fd15 100644 --- a/keduvocdocument/keduvoclesson.cpp +++ b/keduvocdocument/keduvoclesson.cpp @@ -55,6 +55,7 @@ KEduVocLesson::KEduVocLesson(const QString& name, KEduVocLesson *parent) { d->m_parentLesson = parent; d->m_name = name; + d->m_inPractice = false; } KEduVocLesson::KEduVocLesson( const KEduVocLesson &other ) diff --git a/keduvocdocument/keduvoclesson.h b/keduvocdocument/keduvoclesson.h index ebf0f32..a6643be 100644 --- a/keduvocdocument/keduvoclesson.h +++ b/keduvocdocument/keduvoclesson.h @@ -33,12 +33,6 @@ class KEDUVOCDOCUMENT_EXPORT KEduVocLesson { public: - // children of the root lesson - enum RootLessonChildren { - EntryLessonRoot, - WordTypes - }; - /** default constructor */ explicit KEduVocLesson(const QString& name, KEduVocLesson *parent = 0); diff --git a/keduvocdocument/keduvoctranslation.cpp b/keduvocdocument/keduvoctranslation.cpp index 5ba4555..0d50249 100644 --- a/keduvocdocument/keduvoctranslation.cpp +++ b/keduvocdocument/keduvoctranslation.cpp @@ -22,6 +22,7 @@ #include "keduvocgrade.h" // #include "keduvocdeclination.h" +#include "keduvoclesson.h" class KEduVocTranslation::KEduVocTranslationPrivate { @@ -33,6 +34,11 @@ public: QString m_type; /// Subtype of a word: male/female or regular/irregular... QString m_subType; + + /// Type of a word noun, verb, adjective etc + KEduVocLesson* m_wordType; + + /// A comment giving additional information. QString m_comment; /// A hint, to make guessing the word easier.