]> Git trees. - libqmvoc.git/commitdiff
Replace the Multiple Choice class by a simple stringlist.
authorFrederik Gladhorn <gladhorn@kde.org>
Thu, 22 Nov 2007 16:56:00 +0000 (16:56 +0000)
committerFrederik Gladhorn <gladhorn@kde.org>
Thu, 22 Nov 2007 16:56:00 +0000 (16:56 +0000)
Use a stringlistmodel for the mc dock (very improvised still).
Port cvs reader and pauker a little.

svn path=/branches/work/kdeedu_parley/libkdeedu/; revision=740150

13 files changed:
keduvocdocument/CMakeLists.txt
keduvocdocument/keduvoccsvreader.cpp
keduvocdocument/keduvoccsvwriter.cpp
keduvocdocument/keduvocexpression.cpp
keduvocdocument/keduvocexpression.h
keduvocdocument/keduvockvtml2reader.cpp
keduvocdocument/keduvockvtml2reader.h
keduvocdocument/keduvockvtml2writer.cpp
keduvocdocument/keduvockvtml2writer.h
keduvocdocument/keduvockvtmlreader.cpp
keduvocdocument/keduvocpaukerreader.cpp
keduvocdocument/keduvoctranslation.cpp
keduvocdocument/keduvoctranslation.h

index 66e3d3dba14ee0a4431d0863c7dc222fa3330a24..966dc735a884671fb722355f87ac348226096b8d 100644 (file)
@@ -13,16 +13,16 @@ keduvocdocument.cpp
    keduvocconjugation.cpp
    keduvocpersonalpronoun.cpp
    keduvocdeclination.cpp
-   keduvocmultiplechoice.cpp
+   #keduvocmultiplechoice.cpp
    keduvocwordtype.cpp
    keduvockvtmlcompability.cpp
    #keduvockvtmlreader.cpp
    keduvockvtml2reader.cpp
    #keduvockvtmlwriter.cpp
    keduvockvtml2writer.cpp
-   #keduvoccsvreader.cpp
-   #keduvoccsvwriter.cpp
-   #keduvocpaukerreader.cpp
+   keduvoccsvreader.cpp
+   keduvoccsvwriter.cpp
+   keduvocpaukerreader.cpp
    #keduvocvokabelnreader.cpp
    #keduvocwqlreader.cpp
    #keduvocxdxfreader.cpp
index 232669e7d8615e9bdb74af92c9ca940b835b03d6..4afd7e530dadfcca285b3c657eb5255b0ab672d6 100644 (file)
@@ -31,6 +31,7 @@
 #include <klocale.h>
 
 #include "keduvocdocument.h"
+#include "keduvoclesson.h"
 #include "keduvocexpression.h"
 
 KEduVocCsvReader::KEduVocCsvReader( QIODevice *file )
@@ -54,13 +55,17 @@ bool KEduVocCsvReader::readDoc( KEduVocDocument *doc )
 
     int languageCount = 0;
 
+    KEduVocLesson* lesson = new KEduVocLesson( i18n("Vocabulary"), m_doc->lesson());
+    m_doc->lesson()->appendChildLesson(lesson);
+
     while ( !inputStream.atEnd() ) {
         QString s = inputStream.readLine();
 
         if ( !s.simplified().isEmpty() ) {
             KEduVocExpression expression( s.split(separator) );
-            languageCount = qMax( languageCount, expression.translationIndices().count() );
-            m_doc->appendEntry( &expression );
+            languageCount = qMax( languageCount,
+                expression.translationIndices().count() );
+            lesson->addEntry( &expression );
         }
     }
 
index 056d4d350522aca6fe5c46d80fa7f62931f22015..191715874f4115506c9c6721c11a698821ef76c5 100644 (file)
@@ -23,6 +23,7 @@
 #include <KLocale>
 
 #include "keduvocdocument.h"
+#include "keduvoclesson.h"
 #include "keduvocexpression.h"
 
 KEduVocCsvWriter::KEduVocCsvWriter( QFile *file )
@@ -52,8 +53,8 @@ bool KEduVocCsvWriter::writeDoc( KEduVocDocument *doc, const QString &generator
     int idCount = m_doc->identifierCount();
     QString currentRow;
 
-    for ( int e = 0; e < m_doc->entryCount(); e++ ) {
-        expression = m_doc->entry( e );
+    for ( int e = 0; e < m_doc->lesson()->entriesRecursive().count(); e++ ) {
+        expression = m_doc->lesson()->entriesRecursive().value( e );
         currentRow = "";
         bool sep = false;
 
index 1a28a19fa3545d4ff87bffa66e40a1bf6e04d4c2..4630cc5399a8620e48cfd6725ff24b5ab5a7b8b1 100644 (file)
@@ -63,17 +63,15 @@ KEduVocExpression::KEduVocExpression()
         : d( new KEduVocExpressionPrivate( this ) )
 {}
 
-KEduVocExpression::KEduVocExpression( KEduVocLesson* lesson,  const QString & expression )
+KEduVocExpression::KEduVocExpression( const QString & expression )
         : d( new KEduVocExpressionPrivate( this ) )
 {
-    d->m_lessons.append(lesson);
     setTranslation( 0, expression.simplified() );
 }
 
-KEduVocExpression::KEduVocExpression( KEduVocLesson* lesson, const QStringList & translations)
+KEduVocExpression::KEduVocExpression( const QStringList & translations)
         : d( new KEduVocExpressionPrivate( this ) )
 {
-    d->m_lessons.append(lesson);
     foreach ( QString translation, translations ) {
         setTranslation(d->m_translations.count(), translation);
     }
index b072c5fbde8ec49c23b0c5880bc475af6c3261e2..0ff9507487016d7e22ada990aa49f041eb0ae52f 100644 (file)
@@ -45,7 +45,7 @@ public:
      * @param expression       translation
      * @param lesson           lesson number
      */
-    explicit KEduVocExpression( KEduVocLesson* lesson, const QString & expression );
+    explicit KEduVocExpression( const QString & expression );
 
     /** Constructor for a vocabulary expression with an original and one or more translations
      *
@@ -53,7 +53,7 @@ public:
      * @param separator        expression will be split into an original and one or more translations using separator
      * @param lesson           lesson number, 0 for none
      */
-    explicit KEduVocExpression( KEduVocLesson* lesson, const QStringList & translations );
+    explicit KEduVocExpression( const QStringList & translations );
 
     ~KEduVocExpression();
 
index ee7f90c4daf3e6b2ff4decc312c16f79134e83f3..dfdf856add1b332d66c0f1207da7ce76792fd6ad 100644 (file)
@@ -394,9 +394,7 @@ bool KEduVocKvtml2Reader::readTranslation( QDomElement &translationElement,
     // multiple choice
     currentElement = translationElement.firstChildElement( KVTML_MULTIPLECHOICE );
     if ( !currentElement.isNull() ) {
-        KEduVocMultipleChoice mc;
-        readMultipleChoice( currentElement, mc );
-        expr->translation( index ).setMultipleChoice( mc );
+        readMultipleChoice( currentElement, expr->translation( index ) );
     }
 
     // image
@@ -643,7 +641,7 @@ bool KEduVocKvtml2Reader::readComparison( QDomElement &domElementParent, KEduVoc
 }
 
 
-bool KEduVocKvtml2Reader::readMultipleChoice( QDomElement &multipleChoiceElement, KEduVocMultipleChoice &mc )
+bool KEduVocKvtml2Reader::readMultipleChoice( QDomElement &multipleChoiceElement, KEduVocTranslation &translation )
 /*
  <multiplechoice>
    <choice>good</choice>
@@ -656,15 +654,12 @@ bool KEduVocKvtml2Reader::readMultipleChoice( QDomElement &multipleChoiceElement
 
 {
     QDomElement currentElement;
-    QString s;
-    mc.clear();
-
     QDomNodeList choiceNodes = multipleChoiceElement.elementsByTagName( KVTML_CHOICE );
     for ( int i = 0; i < choiceNodes.count(); ++i )
     {
         currentElement = choiceNodes.item( i ).toElement();
         if ( currentElement.parentNode() == multipleChoiceElement ) {
-            mc.appendChoice( currentElement.text() );
+            translation.multipleChoice().append( currentElement.text() );
         }
     }
     return true;
index 4e88653c6fb60f8a54b27f49157d3513ed6ca29b..893d4be6f40fe539d06e7603e982b02b268e437c 100644 (file)
@@ -120,7 +120,7 @@ private:
      * @param multipleChoiceElement element to read from
      * @param mc KEduVocMultipleChoice object to read to
      */
-    bool readMultipleChoice( QDomElement &multipleChoiceElement, KEduVocMultipleChoice &mc );
+    bool readMultipleChoice( QDomElement &multipleChoiceElement, KEduVocTranslation &translation );
 
     /** read a grade
      * @param gradeElement element to read from
index c60f601d52ef61bf1ae7f8388d5437fe2b519b02..8cbd85a311ae8b078130db74a10a9e43ced84c80 100644 (file)
@@ -463,7 +463,7 @@ bool KEduVocKvtml2Writer::writeTranslation( QDomElement &translationElement, KEd
     // multiplechoice
     if ( !translation.multipleChoice().isEmpty() ) {
         QDomElement multipleChoiceElement = m_domDoc.createElement( KVTML_MULTIPLECHOICE );
-        writeMultipleChoice( multipleChoiceElement, translation.multipleChoice() );
+        writeMultipleChoice( multipleChoiceElement, translation );
         translationElement.appendChild( multipleChoiceElement );
     }
 
@@ -511,7 +511,7 @@ bool KEduVocKvtml2Writer::writeComparison( QDomElement &comparisonElement, const
 }
 
 
-bool KEduVocKvtml2Writer::writeMultipleChoice( QDomElement &multipleChoiceElement, const KEduVocMultipleChoice &mc )
+bool KEduVocKvtml2Writer::writeMultipleChoice( QDomElement &multipleChoiceElement, KEduVocTranslation &translation )
 /*
  <multiplechoice>
    <choice>good</choice>
@@ -522,11 +522,9 @@ bool KEduVocKvtml2Writer::writeMultipleChoice( QDomElement &multipleChoiceElemen
  </multiplechoice>
 */
 {
-    QStringList choices = mc.choices();
-    for ( int i = 0; i < choices.size(); ++i ) {
-        multipleChoiceElement.appendChild( newTextElement( KVTML_CHOICE, choices[i] ) );
+    foreach ( QString choice, translation.multipleChoice() ) {
+        multipleChoiceElement.appendChild( newTextElement( KVTML_CHOICE, choice ) );
     }
-
     return true;
 }
 
index eb5d06c8b53375981e7302e17381b29870e145e9..1de872fce33f8ff9550eb73124c82cade815599c 100644 (file)
@@ -110,10 +110,9 @@ public:
      * @param multipleChoiceElement QDomElement multiplechoice to write to
      * @returns success
      */
-    bool writeMultipleChoice( QDomElement &multipleChoiceElement, const KEduVocMultipleChoice &mc );
+    bool writeMultipleChoice( QDomElement &multipleChoiceElement, KEduVocTranslation &translation );
 
 private:
-
     QDomElement newTextElement( const QString &elementName, const QString &text );
 
     QFile *m_outputFile;
index 65d79712aba440a3112378ec21af02b45031cf9a..c31e9e6c68e2fc705035f84ce75dd316f2f99a9b 100644 (file)
@@ -737,7 +737,7 @@ bool KEduVocKvtmlReader::readComparison( QDomElement &domElementParent, KEduVocC
 }
 
 
-bool KEduVocKvtmlReader::readMultipleChoice( QDomElement &domElementParent, KEduVocMultipleChoice &mc )
+bool KEduVocKvtmlReader::readMultipleChoice( QDomElement &domElementParent, KEduVocTranslation &translation )
 /*
  <multiplechoice>
    <mc1>good</mc1>
index 2ed69c485ecc1f176e76a554ef0e62134d172238..51c8ce46c46e59b971febcbd73d687088a8750d8 100644 (file)
@@ -21,6 +21,7 @@
 #include <KLocale>
 
 #include "keduvocexpression.h"
+#include "keduvoclesson.h"
 #include "keduvocdocument.h"
 
 KEduVocPaukerReader::KEduVocPaukerReader( KEduVocDocument * doc )
@@ -126,9 +127,11 @@ void KEduVocPaukerReader::readCard()
         }
     }
 
-    KEduVocExpression expr = KEduVocExpression( front );
-    expr.setTranslation( 1, back );
-    m_doc->appendEntry( &expr );
+    KEduVocLesson* lesson = new KEduVocLesson(i18n("Vocabulary"), m_doc->lesson());
+    m_doc->lesson()->appendChildLesson(lesson);
+
+    KEduVocExpression* expr = new KEduVocExpression( QStringList() << front << back);
+    lesson->addEntry( expr );
 }
 
 
index 0d502498edf5d792660e67b00929a8a6507326ec..7fc0b26a11d6b8e3437a72cca8b47a15bb9f6f10 100644 (file)
@@ -60,7 +60,7 @@ public:
     /// Usages give a context (eg. this word is usually used in [biology])
     QSet<QString> m_usages;
     /// When creating multiple choice tests, these are possible answers. (otherwise other words are added randomly)
-    KEduVocMultipleChoice m_multipleChoice;
+    QStringList m_multipleChoice;
 
     /// Conjugations of a word (I go, you go, he goes... boring in english)
     QMap <QString, KEduVocConjugation> m_conjugations;
@@ -282,13 +282,13 @@ KEduVocComparison & KEduVocTranslation::comparison()
 }
 
 
-void KEduVocTranslation::setMultipleChoice( const KEduVocMultipleChoice &mc )
-{
-    d->m_multipleChoice = mc;
-}
+// void KEduVocTranslation::setMultipleChoice( const QStringList &mc )
+// {
+//     d->m_multipleChoice = mc;
+// }
 
 
-KEduVocMultipleChoice & KEduVocTranslation::multipleChoice()
+QStringList & KEduVocTranslation::multipleChoice()
 {
     return d->m_multipleChoice;
 }
index 174e89bb38cefedb226eae8bdbae76effd0d6fbe..7f1ef3041101d3f3186f691d3d9406e42547571a 100644 (file)
@@ -20,7 +20,7 @@
 #include "libkeduvocdocument_export.h"
 #include "keduvocgrammar.h"
 #include "keduvocconjugation.h"
-#include "keduvocmultiplechoice.h"
+// #include "keduvocmultiplechoice.h"
 #include <KDE/KUrl>
 #include <QtCore/QString>
 
@@ -227,12 +227,12 @@ public:
 
     /** returns multiple choice if available
       */
-    KEduVocMultipleChoice & multipleChoice();
+    QStringList & multipleChoice();
 
     /** sets multiple choice
      * @param mc               multiple choice block
       */
-    void setMultipleChoice( const KEduVocMultipleChoice &mc );
+//     void setMultipleChoice( const QStringList &mc );
 
     /** get the sound url for this translation if it exists */
     KUrl soundUrl();