From: Frederik Gladhorn Date: Sat, 12 Jan 2008 13:05:43 +0000 (+0000) Subject: Improve api: no longer container->entriesRecursive, but X-Git-Tag: v4.0.71~84 X-Git-Url: https://git.rmz.fi/?a=commitdiff_plain;h=58bffeaf78900906bfe6180f527a6f02a279ea39;p=libqmvoc.git Improve api: no longer container->entriesRecursive, but container->entries(Recursive) with enum, same for entryCount. svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=760343 --- diff --git a/keduvocdocument/keduvoccontainer.h b/keduvocdocument/keduvoccontainer.h index 28d04da..703c8c5 100644 --- a/keduvocdocument/keduvoccontainer.h +++ b/keduvocdocument/keduvoccontainer.h @@ -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; diff --git a/keduvocdocument/keduvoccsvwriter.cpp b/keduvocdocument/keduvoccsvwriter.cpp index f6b7f9a..32172e4 100644 --- a/keduvocdocument/keduvoccsvwriter.cpp +++ b/keduvocdocument/keduvoccsvwriter.cpp @@ -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; diff --git a/keduvocdocument/keduvockvtml2writer.cpp b/keduvocdocument/keduvockvtml2writer.cpp index e198639..048e234 100644 --- a/keduvocdocument/keduvockvtml2writer.cpp +++ b/keduvocdocument/keduvockvtml2writer.cpp @@ -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 ) { diff --git a/keduvocdocument/keduvockvtmlreader.cpp b/keduvocdocument/keduvockvtmlreader.cpp index 186736d..ae4bb31 100644 --- a/keduvocdocument/keduvockvtmlreader.cpp +++ b/keduvocdocument/keduvockvtmlreader.cpp @@ -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)) { diff --git a/keduvocdocument/keduvoclesson.cpp b/keduvocdocument/keduvoclesson.cpp index 56bf027..c2c3327 100644 --- a/keduvocdocument/keduvoclesson.cpp +++ b/keduvocdocument/keduvoclesson.cpp @@ -55,13 +55,19 @@ KEduVocLesson::~KEduVocLesson() } -QList KEduVocLesson::entries() +QList 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(); } diff --git a/keduvocdocument/keduvoclesson.h b/keduvocdocument/keduvoclesson.h index beb86c8..05303fe 100644 --- a/keduvocdocument/keduvoclesson.h +++ b/keduvocdocument/keduvoclesson.h @@ -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 diff --git a/keduvocdocument/keduvocwordtype.cpp b/keduvocdocument/keduvocwordtype.cpp index 1067b3b..5787069 100644 --- a/keduvocdocument/keduvocwordtype.cpp +++ b/keduvocdocument/keduvocwordtype.cpp @@ -48,8 +48,11 @@ KEduVocWordType::~KEduVocWordType() } -QList KEduVocWordType::entries() +QList KEduVocWordType::entries(EnumEntriesRecursive recursive) { + if (recursive == Recursive) { + return entriesRecursive(); + } QSet entries; foreach(KEduVocTranslation* translation, d->m_translations) { entries.insert(translation->entry()); @@ -57,8 +60,11 @@ QList KEduVocWordType::entries() return entries.toList(); } -int KEduVocWordType::entryCount() +int KEduVocWordType::entryCount(EnumEntriesRecursive recursive) { + if (recursive == Recursive) { + return entriesRecursive().count(); + } return entries().count(); } diff --git a/keduvocdocument/keduvocwordtype.h b/keduvocdocument/keduvocwordtype.h index 0a82a8c..183c4df 100644 --- a/keduvocdocument/keduvocwordtype.h +++ b/keduvocdocument/keduvocwordtype.h @@ -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;