File indexing completed on 2022-10-04 13:56:35

0001 /*
0002  * SPDX-FileCopyrightText: 2007 Jeremy Whiting <jpwhiting@kde.org>
0003  * SPDX-FileCopyrightText: 2007 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef KEDUVOCLESSON_H
0008 #define KEDUVOCLESSON_H
0009 
0010 #include "keduvocdocument_export.h"
0011 
0012 #include "keduvoccontainer.h"
0013 
0014 class KEduVocExpression;
0015 
0016 /** class to store information about a lesson */
0017 class KEDUVOCDOCUMENT_EXPORT KEduVocLesson :public KEduVocContainer
0018 {
0019 public:
0020     /** default constructor */
0021     explicit KEduVocLesson(const QString& name, KEduVocContainer *parent = nullptr);
0022 
0023 //     void appendChildLesson(KEduVocLesson *child);
0024 
0025 //     QList<KEduVocLesson *> childLessons();
0026 //     KEduVocLesson *childLesson(int row);
0027 
0028 //     int childLessonCount() const;
0029 
0030 //     int row() const;
0031 //     KEduVocLesson *parent();
0032 
0033     /** copy constructor for d-pointer safe copying */
0034     KEduVocLesson( const KEduVocLesson &other );
0035 
0036     /** destructor */
0037     ~KEduVocLesson() override;
0038 
0039     /** assignment operator */
0040     KEduVocLesson& operator= ( const KEduVocLesson& );
0041 
0042     KEduVocExpression* entry(int row, EnumEntriesRecursive recursive = NotRecursive) Q_DECL_OVERRIDE;
0043 
0044     /** get a list of all entries in the lesson */
0045     QList < KEduVocExpression* > entries(EnumEntriesRecursive recursive = NotRecursive) Q_DECL_OVERRIDE;
0046 
0047     /** get the number of entries in the lesson */
0048     int entryCount(EnumEntriesRecursive recursive = NotRecursive) Q_DECL_OVERRIDE;
0049 
0050     /** append an entry to the lesson
0051      * @param entry the id of the entry to add
0052      */
0053     void appendEntry(KEduVocExpression* entry);
0054 
0055     /**
0056      * insert an entry at a specific position
0057      * @param index 
0058      * @param entry 
0059      */
0060     void insertEntry(int index, KEduVocExpression* entry);
0061 
0062     /** remove an entry from the lesson
0063      * @param entry the id of the entry to remove
0064      */
0065     void removeEntry(KEduVocExpression* entry);
0066 
0067 private:
0068     friend class KEduVocDocument;
0069     // This constructor is used by KEduVocDocument when creating the top level lesson.
0070     explicit KEduVocLesson(const QString& name, KEduVocDocument *document);
0071 
0072 private:
0073     class Private;
0074     Private * const d;
0075 };
0076 
0077 #endif