From 7748eab06d098b2cbdc8319735ff84dee26253aa Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Sat, 12 Jan 2008 15:22:11 +0000 Subject: [PATCH] Make use of the new api, displaying the entries of a lesson and its child lessons is a breeze. Disabled because it's horribly slow. As soon as lessons keep track of their child lesson entries this will come at reasonable speed. svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=760410 --- keduvocdocument/keduvoccontainer.cpp | 2 +- keduvocdocument/keduvoccontainer.h | 2 +- keduvocdocument/keduvoclesson.cpp | 5 ++++- keduvocdocument/keduvoclesson.h | 2 +- keduvocdocument/keduvocwordtype.cpp | 6 +++++- keduvocdocument/keduvocwordtype.h | 2 +- 6 files changed, 13 insertions(+), 6 deletions(-) diff --git a/keduvocdocument/keduvoccontainer.cpp b/keduvocdocument/keduvoccontainer.cpp index 1cb4e7d..577019f 100644 --- a/keduvocdocument/keduvoccontainer.cpp +++ b/keduvocdocument/keduvoccontainer.cpp @@ -153,7 +153,7 @@ void KEduVocContainer::removeTranslation(int translation) QList< KEduVocExpression * > KEduVocContainer::entriesRecursive() { - QList< KEduVocExpression * > entryList = entries(); + QList< KEduVocExpression * > entryList = entries(NotRecursive); foreach(KEduVocContainer *childContainer, d->m_childContainers) { foreach(KEduVocExpression *childEntry, childContainer->entriesRecursive()) { if(!entryList.contains(childEntry)) { diff --git a/keduvocdocument/keduvoccontainer.h b/keduvocdocument/keduvoccontainer.h index 703c8c5..64fa110 100644 --- a/keduvocdocument/keduvoccontainer.h +++ b/keduvocdocument/keduvoccontainer.h @@ -86,7 +86,7 @@ public: /** get a list of all entries in the container */ virtual QList < KEduVocExpression* > entries(EnumEntriesRecursive recursive = NotRecursive) =0; virtual int entryCount(EnumEntriesRecursive recursive = NotRecursive) =0; - virtual KEduVocExpression* entry(int row) =0; + virtual KEduVocExpression* entry(int row, EnumEntriesRecursive recursive = NotRecursive) =0; /** * Removes a translation. This has to be called when a language is removed from a document. diff --git a/keduvocdocument/keduvoclesson.cpp b/keduvocdocument/keduvoclesson.cpp index c2c3327..2cdd3b7 100644 --- a/keduvocdocument/keduvoclesson.cpp +++ b/keduvocdocument/keduvoclesson.cpp @@ -89,8 +89,11 @@ void KEduVocLesson::removeEntry(KEduVocExpression* entry) entry->removeLesson(this); } -KEduVocExpression * KEduVocLesson::entry(int row) +KEduVocExpression * KEduVocLesson::entry(int row, EnumEntriesRecursive recursive) { + if (recursive == Recursive) { + return entriesRecursive().value(row); + } return d->m_entries.value(row); } diff --git a/keduvocdocument/keduvoclesson.h b/keduvocdocument/keduvoclesson.h index 05303fe..f8d9054 100644 --- a/keduvocdocument/keduvoclesson.h +++ b/keduvocdocument/keduvoclesson.h @@ -50,7 +50,7 @@ public: KEduVocLesson& operator= ( const KEduVocLesson& ); - KEduVocExpression* entry(int row); + KEduVocExpression* entry(int row, EnumEntriesRecursive recursive = NotRecursive); /** get a list of all entries in the lesson */ QList < KEduVocExpression* > entries(EnumEntriesRecursive recursive = NotRecursive); diff --git a/keduvocdocument/keduvocwordtype.cpp b/keduvocdocument/keduvocwordtype.cpp index 5787069..de15b69 100644 --- a/keduvocdocument/keduvocwordtype.cpp +++ b/keduvocdocument/keduvocwordtype.cpp @@ -80,11 +80,15 @@ void KEduVocWordType::removeTranslation(KEduVocTranslation* translation) KEduVocTranslation * KEduVocWordType::translation(int row) { + return d->m_translations.value(row); } -KEduVocExpression * KEduVocWordType::entry(int row) +KEduVocExpression * KEduVocWordType::entry(int row, EnumEntriesRecursive recursive) { + if (recursive == Recursive) { + return entriesRecursive().value(row); + } return entries().value(row); } diff --git a/keduvocdocument/keduvocwordtype.h b/keduvocdocument/keduvocwordtype.h index 183c4df..6e82883 100644 --- a/keduvocdocument/keduvocwordtype.h +++ b/keduvocdocument/keduvocwordtype.h @@ -89,7 +89,7 @@ public: */ QList < KEduVocExpression* > entries(EnumEntriesRecursive recursive = NotRecursive); - KEduVocExpression* entry(int row); + KEduVocExpression* entry(int row, EnumEntriesRecursive recursive = NotRecursive); /** get the number of entries in the lesson */ int entryCount(EnumEntriesRecursive recursive = NotRecursive); -- 2.47.3