copyright : (C) 1999-2001 Ewald Arnold <kvoctrain@ewald-arnold.de>
(C) 2005-2007 Peter Hedlund <peter.hedlund@kdemail.net>
+ Copyright 2008 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
***************************************************************************/
/***************************************************************************
class KEduVocExpression::KEduVocExpressionPrivate
{
public:
- KEduVocExpressionPrivate( KEduVocExpression* qq )
- : q( qq )
+ KEduVocExpressionPrivate()
{
m_active = true;
}
~KEduVocExpressionPrivate();
- bool operator== ( const KEduVocExpressionPrivate &p ) const;
+ KEduVocExpressionPrivate(const KEduVocExpressionPrivate &other);
- KEduVocExpression* q;
+ bool operator== ( const KEduVocExpressionPrivate &p ) const;
QList<KEduVocLesson*> m_lessons;
bool m_active;
};
-KEduVocExpression::KEduVocExpressionPrivate::~ KEduVocExpressionPrivate()
+KEduVocExpression::KEduVocExpressionPrivate::~KEduVocExpressionPrivate()
{
qDeleteAll(m_translations);
}
+KEduVocExpression::KEduVocExpressionPrivate::KEduVocExpressionPrivate(const KEduVocExpressionPrivate & other)
+{
+ m_active = other.m_active;
+ m_lessons = other.m_lessons;
+
+ foreach (int key, other.m_translations.keys()) {
+ m_translations[key] = new KEduVocTranslation(*other.m_translations.value(key));
+ }
+}
+
+
bool KEduVocExpression::KEduVocExpressionPrivate::operator== ( const KEduVocExpression::KEduVocExpressionPrivate &p ) const
{
return
KEduVocExpression::KEduVocExpression()
- : d( new KEduVocExpressionPrivate( this ) )
+ : d( new KEduVocExpressionPrivate )
{}
KEduVocExpression::KEduVocExpression( const QString & expression )
- : d( new KEduVocExpressionPrivate( this ) )
+ : d( new KEduVocExpressionPrivate )
{
setTranslation( 0, expression.simplified() );
}
KEduVocExpression::KEduVocExpression( const QStringList & translations)
- : d( new KEduVocExpressionPrivate( this ) )
+ : d( new KEduVocExpressionPrivate )
{
foreach ( const QString &translation, translations ) {
setTranslation(d->m_translations.count(), translation);
}
+KEduVocExpression::KEduVocExpression(const KEduVocExpression & other)
+ : d(new KEduVocExpressionPrivate(*other.d))
+{}
+
+
KEduVocExpression::~KEduVocExpression()
{
-///@todo probably infinite loop when a parent lesson decides to delete it :)
-// foreach(KEduVocLesson * lesson, d->m_lessons) {
-// lesson->removeEntry(this);
-// }
+ foreach(KEduVocLesson * lesson, d->m_lessons) {
+ lesson->removeEntry(this);
+ }
delete d;
}
}
+
copyright : (C) 1999-2001 Ewald Arnold <kvoctrain@ewald-arnold.de>
(C) 2005-2007 Peter Hedlund <peter.hedlund@kdemail.net>
+ Copyright 2008 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
***************************************************************************/
/***************************************************************************
*/
explicit KEduVocExpression( const QStringList & translations );
+ KEduVocExpression(const KEduVocExpression& other);
+
~KEduVocExpression();
/** returns index of lesson (-1 = none)
/***************************************************************************
Vocabulary Expression Translation for KDE Edu
-----------------------------------------------------------------------
- copyright :(C) 2007 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
+
+ Copyright 2007-2008 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
***************************************************************************/
/***************************************************************************
public:
KEduVocTranslationPrivate(KEduVocExpression* parent);
+ ~KEduVocTranslationPrivate();
+
KEduVocExpression* m_entry;
/// This is the word itself. The vocabulary. This is what it is all about.
/// Conjugations of a word (I go, you go, he goes... boring in english)
QMap <QString, KEduVocConjugation> m_conjugations;
+
/// The comparison forms of adjectives and adverbs: (fast), faster, fastest
QString m_comparative;
QString m_superlative;
m_declination = 0;
}
+
+KEduVocTranslation::KEduVocTranslationPrivate::~ KEduVocTranslationPrivate()
+{
+ delete m_declination;
+}
+
KEduVocTranslation::KEduVocTranslation(KEduVocExpression* entry) : d( new KEduVocTranslationPrivate(entry) )
{}
d->m_falseFriends = other.d->m_falseFriends;
d->m_imageUrl = other.d->m_imageUrl;
d->m_soundUrl = other.d->m_soundUrl;
+ /// @todo add declinations
}
KEduVocTranslation::~KEduVocTranslation()
d->m_superlative = superlative;
}
+