]> Git trees. - libqmvoc.git/commitdiff
Improve api: no longer container->entriesRecursive, but
authorFrederik Gladhorn <gladhorn@kde.org>
Sat, 12 Jan 2008 13:05:43 +0000 (13:05 +0000)
committerFrederik Gladhorn <gladhorn@kde.org>
Sat, 12 Jan 2008 13:05:43 +0000 (13:05 +0000)
container->entries(Recursive) with enum, same for entryCount.

svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=760343

keduvocdocument/keduvoccontainer.h
keduvocdocument/keduvoccsvwriter.cpp
keduvocdocument/keduvockvtml2writer.cpp
keduvocdocument/keduvockvtmlreader.cpp
keduvocdocument/keduvoclesson.cpp
keduvocdocument/keduvoclesson.h
keduvocdocument/keduvocwordtype.cpp
keduvocdocument/keduvocwordtype.h

index 28d04dadf7f9e153ae38ff76136c9cfc57220fee..703c8c523daa5840c8c8d8926ec19235ddb04d2b 100644 (file)
@@ -38,6 +38,11 @@ public:
         Leitner
     };
 
+    enum EnumEntriesRecursive{
+        NotRecursive = 0,
+        Recursive = 1
+    };
+
     /** default constructor */
     explicit KEduVocContainer(const QString& name, EnumContainerType type, KEduVocContainer *parent = 0);
 
@@ -79,13 +84,10 @@ public:
     QString name();
 
     /** get a list of all entries in the container */
-    virtual QList < KEduVocExpression* > entries() =0;
-    virtual int entryCount() =0;
+    virtual QList < KEduVocExpression* > entries(EnumEntriesRecursive recursive = NotRecursive) =0;
+    virtual int entryCount(EnumEntriesRecursive recursive = NotRecursive) =0;
     virtual KEduVocExpression* entry(int row) =0;
 
-    /** get a list of all entries in the container and its child containers */
-    QList < KEduVocExpression* > entriesRecursive();
-
     /**
      * Removes a translation. This has to be called when a language is removed from a document.
      * @param translation 
@@ -120,6 +122,9 @@ public:
      */
     void setImageUrl(const KUrl &url);
 
+protected:
+    QList< KEduVocExpression * > entriesRecursive();
+
 private:
     class Private;
     Private * const d;
index f6b7f9ab646399666d87022b029c7cb080b46f88..32172e47d3617c082378969735dbd23d3178f06e 100644 (file)
@@ -53,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->lesson()->entriesRecursive().count(); e++ ) {
-        expression = m_doc->lesson()->entriesRecursive().value( e );
+    for ( int e = 0; e < m_doc->lesson()->entryCount(KEduVocLesson::Recursive); e++ ) {
+        expression = m_doc->lesson()->entries(KEduVocLesson::Recursive).value( e );
         currentRow = "";
         bool sep = false;
 
index e19863970a3223154283bc0d066af42ddd581bee..048e23481931afbb70d605482828fddc9891833c 100644 (file)
@@ -340,7 +340,7 @@ bool KEduVocKvtml2Writer::writeTenses( QDomElement &tensesElement )
 
 bool KEduVocKvtml2Writer::writeEntries( QDomElement &entriesElement )
 {
-    m_allEntries = m_doc->lesson()->entriesRecursive();
+    m_allEntries = m_doc->lesson()->entries(KEduVocLesson::Recursive);
 
     // loop through entries
     for ( int i = 0; i < m_allEntries.count(); ++i ) {
index 186736d423cbe74454e638cd728be55af6c4afda..ae4bb311f2824f89e9de6f00cb30200532f96a2d 100644 (file)
@@ -964,7 +964,7 @@ bool KEduVocKvtmlReader::readExpression( QDomElement &domElementParent )
         }
 
 
-        if ( m_doc->lesson()->entriesRecursive().count() == 0 ) { // this is because in kvtml the languages are saved in the FIRST ENTRY ONLY.
+        if ( m_doc->lesson()->entries(KEduVocLesson::Recursive).count() == 0 ) { // this is because in kvtml the languages are saved in the FIRST ENTRY ONLY.
 
             // new translation
             if (!addLanguage(i, lang)) {
index 56bf027d67f9cba20bf87d456446a4fee02f4623..c2c33277c9690899d5b4b7ad1072469cacc9e716 100644 (file)
@@ -55,13 +55,19 @@ KEduVocLesson::~KEduVocLesson()
 }
 
 
-QList<KEduVocExpression*> KEduVocLesson::entries()
+QList<KEduVocExpression*> KEduVocLesson::entries(EnumEntriesRecursive recursive)
 {
+    if (recursive == Recursive) {
+        return entriesRecursive();
+    }
     return d->m_entries;
 }
 
-int KEduVocLesson::entryCount()
+int KEduVocLesson::entryCount(EnumEntriesRecursive recursive)
 {
+    if (recursive == Recursive) {
+        return entriesRecursive().count();
+    }
     return d->m_entries.count();
 }
 
index beb86c8ce9002e8dce646eb38ad2f140d9f22fb0..05303fe3194288f68d2f1e7e8fd9e3251ed3f189 100644 (file)
@@ -53,10 +53,10 @@ public:
     KEduVocExpression* entry(int row);
 
     /** get a list of all entries in the lesson */
-    QList < KEduVocExpression* > entries();
+    QList < KEduVocExpression* > entries(EnumEntriesRecursive recursive = NotRecursive);
 
     /** get the number of entries in the lesson */
-    int entryCount();
+    int entryCount(EnumEntriesRecursive recursive = NotRecursive);
 
     /** append an entry to the lesson
      * @param entryid id of the entry to add
index 1067b3b5bc23950f5b1422d4bcc0863c6fab84ba..5787069f7e4e2bddb570e2f11536755d1299eb2c 100644 (file)
@@ -48,8 +48,11 @@ KEduVocWordType::~KEduVocWordType()
 }
 
 
-QList<KEduVocExpression*> KEduVocWordType::entries()
+QList<KEduVocExpression*> KEduVocWordType::entries(EnumEntriesRecursive recursive)
 {
+    if (recursive == Recursive) {
+        return entriesRecursive();
+    }
     QSet<KEduVocExpression*> entries;
     foreach(KEduVocTranslation* translation, d->m_translations) {
         entries.insert(translation->entry());
@@ -57,8 +60,11 @@ QList<KEduVocExpression*> KEduVocWordType::entries()
     return entries.toList();
 }
 
-int KEduVocWordType::entryCount()
+int KEduVocWordType::entryCount(EnumEntriesRecursive recursive)
 {
+    if (recursive == Recursive) {
+        return entriesRecursive().count();
+    }
     return entries().count();
 }
 
index 0a82a8c2d1dec0a28238b55bad24ee4627215870..183c4df5b3ac9daa24e0998d8f7f0715d8806e3d 100644 (file)
@@ -56,21 +56,43 @@ public:
     /** assignment operator */
     KEduVocWordType& operator= ( const KEduVocWordType& );
 
+    /**
+     * Internally (different from the name) the class can have one of the preset word types. These are used to determine special properties (verbs have conjugations available for example).
+     * @param type 
+     */
     void setWordType(EnumWordType type);
-    KEduVocWordType::EnumWordType wordType() const;
 
+    /**
+     * Return the meta word type for this class.
+     * @return 
+     */
+    KEduVocWordType::EnumWordType wordType() const;
 
+    /**
+     * Return a child class (or this class) that is of the specified type. Returns 0 if no class of that type is found.
+     * @param type 
+     * @return 
+     */
     KEduVocWordType* childOfType(KEduVocWordType::EnumWordType type);
 
+    /**
+     * The word type class does keep track of individual translations, because for one entry, the translations can have different word types (eg. genders of nouns tend to be different in different langues).
+     * @param row 
+     * @return 
+     */
     KEduVocTranslation * translation(int row);
 
-    /** get a list of all entries in the lesson */
-    QList < KEduVocExpression* > entries();
+    /**
+     * get a list of all entries in the lesson
+     * @param recursive include entries in sublessons
+     * @return 
+     */
+    QList < KEduVocExpression* > entries(EnumEntriesRecursive recursive = NotRecursive);
 
     KEduVocExpression* entry(int row);
 
     /** get the number of entries in the lesson */
-    int entryCount();
+    int entryCount(EnumEntriesRecursive recursive = NotRecursive);
 
 private:
     class Private;