#include "keduvocgrade.h"
+class KEduVocGradePrivate
+{
+ public:
+ grade_t m_grade;
+ count_t m_queryCount;
+ count_t m_badCount;
+ QDateTime m_queryDate;
+};
+
KEduVocGrade::KEduVocGrade()
+ :d(new KEduVocGradePrivate)
{
resetGrades();
}
+KEduVocGrade::KEduVocGrade(const KEduVocGrade &other)
+ :d(new KEduVocGradePrivate)
+{
+ setGrade(other.grade());
+ setQueryCount(other.queryCount());
+ setBadCount(other.badCount());
+ setQueryDate(other.queryDate());
+}
void KEduVocGrade::resetGrades()
{
- m_grade = KV_NORM_GRADE;
- m_queryCount = 0;
- m_badCount = 0;
+ d->m_grade = KV_NORM_GRADE;
+ d->m_queryCount = 0;
+ d->m_badCount = 0;
QDateTime dt;
dt.setTime_t(0);
- m_queryDate = dt;
+ d->m_queryDate = dt;
}
grade_t KEduVocGrade::grade () const
{
- return m_grade;
+ return d->m_grade;
}
grade = KV_MAX_GRADE;
if ( grade < KV_MIN_GRADE )
grade = KV_MIN_GRADE;
- m_grade = grade;
+ d->m_grade = grade;
}
count_t KEduVocGrade::queryCount ( ) const
{
- return m_queryCount;
+ return d->m_queryCount;
}
void KEduVocGrade::setQueryCount ( count_t count )
{
- m_queryCount = count;
+ d->m_queryCount = count;
}
count_t KEduVocGrade::badCount ( ) const
{
- return m_badCount;
+ return d->m_badCount;
}
void KEduVocGrade::setBadCount ( count_t count )
{
- m_badCount = count;
+ d->m_badCount = count;
}
QDateTime KEduVocGrade::queryDate () const
{
- return m_queryDate;
+ return d->m_queryDate;
}
void KEduVocGrade::setQueryDate ( const QDateTime & date )
{
- m_queryDate = date;
+ d->m_queryDate = date;
}
typedef signed char grade_t;
typedef unsigned short count_t;
+class KEduVocGradePrivate;
+
/**
Contains grading information (query date, bad count) for one language with respect to another.
public:
KEduVocGrade();
+ /** copy constructor
+ * provides safe copy of d pointer
+ */
+ KEduVocGrade(const KEduVocGrade &other);
+
/** returns query count of given translation as int
*
* @param index index of translation
void setQueryDate ( const QDateTime & date );
private:
- grade_t m_grade;
- count_t m_queryCount;
- count_t m_badCount;
- QDateTime m_queryDate;
+ KEduVocGradePrivate *d;
};
#endif
* @param mc KEduVocMultipleChoice object to read to
*/
bool readMultipleChoice(QDomElement &multipleChoiceElement, KEduVocMultipleChoice &mc);
- bool readGrade(QDomElement &gradeElement);
+
+ /** read a grade
+ * @param gradeElement element to read from
+ * #param grade object to read to
+ */
+ bool readGrade(QDomElement &gradeElement, KEduVocGrade &grade);
bool readLesson(QDomElement &lessonElement);