KEduVocDocumentPrivate( KEduVocDocument* qq )
: q( qq )
{
-kDebug() << "Creating new Document - init:";
m_rootLesson = 0;
init();
-kDebug() << "Creating new Document - init done";
}
~KEduVocDocumentPrivate();
QString m_category;
KEduVocLesson * m_rootLesson;
-
+ KEduVocLesson * m_wordTypeLesson;
+
KEduVocWordType m_wordTypes;
};
delete m_rootLesson;
}
m_rootLesson = new KEduVocLesson("root");
- // child lessons for m_rootLesson have to be according to enum RootLessonChildren in KEduVocLesson
- // the first child lesson contains the normal hierachy of lessons
- m_rootLesson->appendChildLesson(new KEduVocLesson(i18n( "Untitled" ), m_rootLesson));
- // the second lesson contains words sorted by word type
- m_rootLesson->appendChildLesson(new KEduVocLesson(i18n( "Word type" ), m_rootLesson));
+ if ( m_wordTypeLesson ) {
+ delete m_wordTypeLesson;
+ }
+ m_wordTypeLesson = new KEduVocLesson(i18n( "Word types" ));
m_tenseDescriptions.clear();
m_identifiers.clear();
}
+KEduVocLesson * KEduVocDocument::wordTypeLesson()
+{
+ return d->m_wordTypeLesson;
+}
+
+
KUrl KEduVocDocument::url() const
{
return d->m_url;
QString KEduVocDocument::title() const
{
- if ( d->m_rootLesson->childLesson(KEduVocLesson::EntryLessonRoot)->name().isEmpty() )
+ if ( d->m_rootLesson->name().isEmpty() )
return d->m_url.fileName();
else
- return d->m_rootLesson->childLesson(KEduVocLesson::EntryLessonRoot)->name();
+ return d->m_rootLesson->name();
}
void KEduVocDocument::setTitle( const QString & title )
{
- d->m_rootLesson->childLesson(KEduVocLesson::EntryLessonRoot)->setName(title.simplified());
+ d->m_rootLesson->setName(title.simplified());
}
*/
KEduVocLesson * lesson();
+ KEduVocLesson * wordTypeLesson();
+
// *** file format specific methods ***
/**
groupElement = domElementParent.firstChildElement( KVTML_LESSONS );
if ( !groupElement.isNull() ) {
- readChildLessons(m_doc->lesson()->childLesson(KEduVocLesson::EntryLessonRoot), groupElement);
+ readChildLessons(m_doc->lesson(), groupElement);
}
///@todo create dynamic lessons (word type)
return true;
}
-void KEduVocKvtml2Reader::printLesson( KEduVocLesson* lesson )
-{
- kDebug() << "Lesson" << lesson->name();
- foreach ( KEduVocLesson* child, lesson->childLessons() ) {
- printLesson(child);
- }
-}
bool KEduVocKvtml2Reader::readIdentifier( QDomElement &identifierElement )
{
KEduVocLesson * lesson = new KEduVocLesson(currentElement.text(), parentLesson);
parentLesson->appendChildLesson( lesson );
- kDebug() << "readLesson" << lesson->name();
-
readChildLessons( lesson, lessonElement );
//<query>true</query>
}
m_doc->wordTypes().addType( mainTypeName, specialType );
+ KEduVocLesson * wordTypeLesson = new KEduVocLesson(mainTypeName, m_doc->wordTypeLesson());
+ m_doc->wordTypeLesson()->appendChildLesson(wordTypeLesson);
+
// iterate sub type elements <subwordtypedefinition>
QDomElement currentSubTypeElement = currentTypeElement.firstChildElement( KVTML_SUBWORDTYPEDEFINITION );
while ( !currentSubTypeElement.isNull() ) {
specialSubType = m_doc->wordTypes().specialTypeNounNeutral();
}
}
+
+ QString subTypeName = currentSubTypeElement.firstChildElement( KVTML_SUBTYPENAME ).text();
// set type and specialtype
- m_doc->wordTypes().addSubType( mainTypeName,
- currentSubTypeElement.firstChildElement( KVTML_SUBTYPENAME ).text(),
+ m_doc->wordTypes().addSubType( mainTypeName, subTypeName,
specialSubType );
currentSubTypeElement = currentSubTypeElement.nextSiblingElement( KVTML_SUBWORDTYPEDEFINITION );
+
+ KEduVocLesson * subWordTypeLesson = new KEduVocLesson(subTypeName, wordTypeLesson);
+ wordTypeLesson->appendChildLesson(subWordTypeLesson);
+
}
currentTypeElement = currentTypeElement.nextSiblingElement( KVTML_WORDTYPEDEFINITION );
}
*/
bool readLesson( KEduVocLesson* parentLesson, QDomElement &lessonElement );
- void printLesson( KEduVocLesson* lesson );
-
/** pre-opened QIODevice to read from */
QIODevice *m_inputFile;
// lessons
currentElement = m_domDoc.createElement( KVTML_LESSONS );
- writeLessons( m_doc->lesson()->childLesson(KEduVocLesson::EntryLessonRoot), currentElement );
+ writeLessons( m_doc->lesson(), currentElement );
if ( currentElement.hasChildNodes() ) {
domElementKvtml.appendChild( currentElement );
}
{
d->m_parentLesson = parent;
d->m_name = name;
+ d->m_inPractice = false;
}
KEduVocLesson::KEduVocLesson( const KEduVocLesson &other )
{
public:
- // children of the root lesson
- enum RootLessonChildren {
- EntryLessonRoot,
- WordTypes
- };
-
/** default constructor */
explicit KEduVocLesson(const QString& name, KEduVocLesson *parent = 0);
#include "keduvocgrade.h"
// #include "keduvocdeclination.h"
+#include "keduvoclesson.h"
class KEduVocTranslation::KEduVocTranslationPrivate
{
QString m_type;
/// Subtype of a word: male/female or regular/irregular...
QString m_subType;
+
+ /// Type of a word noun, verb, adjective etc
+ KEduVocLesson* m_wordType;
+
+
/// A comment giving additional information.
QString m_comment;
/// A hint, to make guessing the word easier.