libkdeedu/keduvocdocument
keduvoclesson.cpp
Go to the documentation of this file.00001 /*************************************************************************** 00002 00003 Copyright 2007 Jeremy Whiting <jeremywhiting@scitools.com> 00004 Copyright 2007 Frederik Gladhorn <frederik.gladhorn@kdemail.net> 00005 00006 ***************************************************************************/ 00007 00008 /*************************************************************************** 00009 * * 00010 * This program is free software; you can redistribute it and/or modify * 00011 * it under the terms of the GNU General Public License as published by * 00012 * the Free Software Foundation; either version 2 of the License, or * 00013 * (at your option) any later version. * 00014 * * 00015 ***************************************************************************/ 00016 00017 #include "keduvoclesson.h" 00018 00019 #include "keduvocexpression.h" 00020 00021 #include <KRandomSequence> 00022 #include <KDebug> 00023 #include <QList> 00024 00026 class KEduVocLesson::Private 00027 { 00028 public: 00029 // entries 00030 QList<KEduVocExpression*> m_entries; 00031 }; 00032 00033 00034 KEduVocLesson::KEduVocLesson(const QString& name, KEduVocContainer *parent) 00035 : KEduVocContainer(name, Lesson, parent), d( new Private ) 00036 { 00037 } 00038 00039 00040 KEduVocLesson::KEduVocLesson( const KEduVocLesson &other ) 00041 : KEduVocContainer(other), d( new Private ) 00042 { 00043 d->m_entries = other.d->m_entries; 00044 } 00045 00046 00047 KEduVocLesson::~KEduVocLesson() 00048 { 00049 qDeleteAll(d->m_entries); 00050 delete d; 00051 } 00052 00053 QList<KEduVocExpression*> KEduVocLesson::entries(EnumEntriesRecursive recursive) 00054 { 00055 if (recursive == Recursive) { 00056 return entriesRecursive(); 00057 } 00058 return d->m_entries; 00059 } 00060 00061 int KEduVocLesson::entryCount(EnumEntriesRecursive recursive) 00062 { 00063 if (recursive == Recursive) { 00064 return entriesRecursive().count(); 00065 } 00066 return d->m_entries.count(); 00067 } 00068 00069 void KEduVocLesson::appendEntry(KEduVocExpression* entry) 00070 { 00071 insertEntry(d->m_entries.size(), entry); 00072 } 00073 00074 void KEduVocLesson::insertEntry(int index, KEduVocExpression * entry) 00075 { 00076 Q_ASSERT(entry); 00077 d->m_entries.insert( index, entry ); 00078 entry->setLesson(this); 00079 invalidateChildLessonEntries(); 00080 } 00081 00082 void KEduVocLesson::removeEntry(KEduVocExpression* entry) 00083 { 00084 Q_ASSERT(entry); 00085 if (d->m_entries.indexOf(entry) == -1) { 00086 kDebug() << "attempting to remove entry from lesson that does not contain it!"; 00087 return; 00088 } 00089 d->m_entries.removeAt( d->m_entries.indexOf(entry) ); 00090 invalidateChildLessonEntries(); 00091 } 00092 00093 KEduVocExpression * KEduVocLesson::entry(int row, EnumEntriesRecursive recursive) 00094 { 00095 if (recursive == Recursive) { 00096 return entriesRecursive().value(row); 00097 } 00098 return d->m_entries.value(row); 00099 } 00100 00101
KDE 4.2 API Reference