]> Git trees. - libqmvoc.git/commitdiff
To let pete implement a word type dock I seperated the word type and normal lessons...
authorFrederik Gladhorn <gladhorn@kde.org>
Mon, 19 Nov 2007 22:44:03 +0000 (22:44 +0000)
committerFrederik Gladhorn <gladhorn@kde.org>
Mon, 19 Nov 2007 22:44:03 +0000 (22:44 +0000)
svn path=/branches/work/kdeedu_parley/libkdeedu/; revision=738899

keduvocdocument/keduvocdocument.cpp
keduvocdocument/keduvocdocument.h
keduvocdocument/keduvockvtml2reader.cpp
keduvocdocument/keduvockvtml2reader.h
keduvocdocument/keduvockvtml2writer.cpp
keduvocdocument/keduvoclesson.cpp
keduvocdocument/keduvoclesson.h
keduvocdocument/keduvoctranslation.cpp

index 816df477cbf12c55ecee424d96889e2366876036..420fee2bdacc0bfa4f716edfe9785e0f6ea5920b 100644 (file)
@@ -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());
 }
 
 
index 7fa0b4f0d730268249a4539e5e6736ecae2c0161..6f4866b8b02f78f1916c016dbd72ad74a0f83817 100644 (file)
@@ -340,6 +340,8 @@ public:
      */
     KEduVocLesson * lesson();
 
+    KEduVocLesson * wordTypeLesson();
+
     // *** file format specific methods ***
 
     /**
index 8d087f508f75f9e3232506f5210b6d19b2288026..ee7f90c4daf3e6b2ff4decc312c16f79134e83f3 100644 (file)
@@ -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 );
 
     //<query>true</query>
@@ -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 <subwordtypedefinition>
         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 );
     }
index 275bf5569140dc64e66e76e554f098747569a69d..4e88653c6fb60f8a54b27f49157d3513ed6ca29b 100644 (file)
@@ -142,8 +142,6 @@ private:
      */
     bool readLesson( KEduVocLesson* parentLesson, QDomElement &lessonElement );
 
-    void printLesson( KEduVocLesson* lesson );
-
     /** pre-opened QIODevice to read from */
     QIODevice *m_inputFile;
 
index 67e3cb35465d39edf6b34602b63245a402ac7964..c60f601d52ef61bf1ae7f8388d5437fe2b519b02 100644 (file)
@@ -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 );
     }
index 02a4960e4d3f40fdcfc885d07638d02ca5efc00d..1a0fd15821294d240d4a2fb4c3c25fe740f45158 100644 (file)
@@ -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 )
index ebf0f328690e65d7c5a49b80e6911e93220bd59c..a6643be7a61f359e305302653323004a56d64d93 100644 (file)
@@ -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);
 
index 5ba4555c064d586b8936dc7f02dc44373f34b031..0d502498edf5d792660e67b00929a8a6507326ec 100644 (file)
@@ -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.