|
|
|
/***************************************************************************
|
|
|
|
Vocabulary Expression for KDE Edu
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
copyright : (C) 1999-2001 Ewald Arnold
|
|
|
|
(C) 2001 The KDE-EDU team
|
|
|
|
(C) 2005 Peter Hedlung
|
|
|
|
email : peter.hedlund@kdemail.net
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
/***************************************************************************
|
|
|
|
* *
|
|
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
|
|
* it under the terms of the GNU General Public License as published by *
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
|
|
* (at your option) any later version. *
|
|
|
|
* *
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
#ifndef KEDUVOCEXPRESSION_H
|
|
|
|
#define KEDUVOCEXPRESSION_H
|
|
|
|
|
|
|
|
#define KV_MAX_GRADE 7
|
|
|
|
#define KV_MIN_GRADE 0
|
|
|
|
|
|
|
|
#define KV_NORM_GRADE 0 // not queried yet
|
|
|
|
#define KV_NORM_COLOR TQt::black
|
|
|
|
#define KV_NORM_TEXT I18N_NOOP("Not Queried Yet")
|
|
|
|
|
|
|
|
#define KV_LEV1_GRADE 1
|
|
|
|
#define KV_LEV1_TEXT I18N_NOOP("Level 1")
|
|
|
|
|
|
|
|
#define KV_LEV2_GRADE 2
|
|
|
|
#define KV_LEV2_TEXT I18N_NOOP("Level 2")
|
|
|
|
|
|
|
|
#define KV_LEV3_GRADE 3
|
|
|
|
#define KV_LEV3_TEXT I18N_NOOP("Level 3")
|
|
|
|
|
|
|
|
#define KV_LEV4_GRADE 4
|
|
|
|
#define KV_LEV4_TEXT I18N_NOOP("Level 4")
|
|
|
|
|
|
|
|
#define KV_LEV5_GRADE 5
|
|
|
|
#define KV_LEV5_TEXT I18N_NOOP("Level 5")
|
|
|
|
|
|
|
|
#define KV_LEV6_GRADE 6
|
|
|
|
#define KV_LEV6_TEXT I18N_NOOP("Level 6")
|
|
|
|
|
|
|
|
#define KV_LEV7_GRADE 7
|
|
|
|
#define KV_LEV7_TEXT I18N_NOOP("Level 7")
|
|
|
|
|
|
|
|
#include <time.h>
|
|
|
|
#include <vector>
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
#include "grammarmanager.h"
|
|
|
|
#include "multiplechoice.h"
|
|
|
|
|
|
|
|
typedef signed char grade_t;
|
|
|
|
typedef unsigned short count_t;
|
|
|
|
|
|
|
|
/***************************************************************
|
|
|
|
* This class contains one expression as original or in one
|
|
|
|
* translations
|
|
|
|
**************************************************************/
|
|
|
|
|
|
|
|
class KEduVocExpression
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
|
|
|
|
/** default constructor for an expression in different languages
|
|
|
|
*/
|
|
|
|
~KEduVocExpression ();
|
|
|
|
|
|
|
|
KEduVocExpression ();
|
|
|
|
|
|
|
|
KEduVocExpression (TQString &s, TQString separator, int lesson = 0);
|
|
|
|
|
|
|
|
/** Constructor for an expression in different languages
|
|
|
|
*
|
|
|
|
* @param expr expression
|
|
|
|
*/
|
|
|
|
KEduVocExpression (TQString &expr, int lesson = 0);
|
|
|
|
|
|
|
|
/** adds a new translation of this entry
|
|
|
|
* @param expr translation
|
|
|
|
* @param grade grade of knowledge of this translation
|
|
|
|
* @param rev_grade dito, in opposite direction
|
|
|
|
*/
|
|
|
|
void addTranslation (TQString expr, grade_t grade=KV_NORM_GRADE,
|
|
|
|
grade_t rev_grade=KV_NORM_GRADE);
|
|
|
|
|
|
|
|
/** removes translation
|
|
|
|
*
|
|
|
|
* @param index number of translation 1..x
|
|
|
|
*/
|
|
|
|
void removeTranslation (int index);
|
|
|
|
|
|
|
|
/** returns index of lesson (0 = none)
|
|
|
|
*/
|
|
|
|
int getLesson () const;
|
|
|
|
|
|
|
|
/** sets index of lesson (0 = none)
|
|
|
|
*/
|
|
|
|
void setLesson (int l);
|
|
|
|
|
|
|
|
/** returns original expression of this entry
|
|
|
|
*/
|
|
|
|
TQString getOriginal () const;
|
|
|
|
|
|
|
|
/** sets original expression of this entry
|
|
|
|
*/
|
|
|
|
void setOriginal (const TQString & expr);
|
|
|
|
|
|
|
|
/** returns number of max. translations of all expressions
|
|
|
|
*/
|
|
|
|
int numTranslations() const;
|
|
|
|
|
|
|
|
/** returns flag if entry is "selected" for queries
|
|
|
|
*/
|
|
|
|
bool isInQuery() const {return inquery; }
|
|
|
|
|
|
|
|
/** set entry "selected"
|
|
|
|
*/
|
|
|
|
void setInQuery(bool flag = true) { inquery = flag; }
|
|
|
|
|
|
|
|
/** returns flag if entry is activated for queries
|
|
|
|
*/
|
|
|
|
bool isActive() const {return active; }
|
|
|
|
|
|
|
|
/** set entry active (enabled for queries)
|
|
|
|
*/
|
|
|
|
void setActive(bool flag = true) { active = flag; }
|
|
|
|
|
|
|
|
/** returns translation of this expression
|
|
|
|
*
|
|
|
|
* @param index number of translation
|
|
|
|
* @result expression or "" if no translation available
|
|
|
|
*/
|
|
|
|
TQString getTranslation (int index) const;
|
|
|
|
|
|
|
|
/** sets translation of this expression
|
|
|
|
*
|
|
|
|
* @param index number of translation
|
|
|
|
* @param expr expression of this index
|
|
|
|
*/
|
|
|
|
void setTranslation (int index, const TQString & expr);
|
|
|
|
|
|
|
|
/** sets remark of this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @param expr remark of this index
|
|
|
|
*/
|
|
|
|
void setPronunce (int index, const TQString & expr);
|
|
|
|
|
|
|
|
/** returns pronunciation of this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @result pronunciation or "" if none available
|
|
|
|
*/
|
|
|
|
TQString getPronunce (int index) const;
|
|
|
|
|
|
|
|
/** returns remarks of this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @result remark or "" if no remark available
|
|
|
|
*/
|
|
|
|
TQString getRemark (int index) const;
|
|
|
|
|
|
|
|
/** sets remark of this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @param expr remark of this index
|
|
|
|
*/
|
|
|
|
void setRemark (int index, const TQString & expr);
|
|
|
|
|
|
|
|
|
|
|
|
/** sets false friend of this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @param expr false friend of this index
|
|
|
|
* @param rev_grade dito, in opposite direction
|
|
|
|
*/
|
|
|
|
void setFauxAmi (int index, const TQString & expr, bool rev_ami = false);
|
|
|
|
|
|
|
|
|
|
|
|
/** returns false friend of this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @param rev_grade dito, in opposite direction
|
|
|
|
* @result false friend or "" if no string available
|
|
|
|
*/
|
|
|
|
TQString getFauxAmi (int index, bool rev_ami = false) const;
|
|
|
|
|
|
|
|
/** sets synonym this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @param expr synonym of this index
|
|
|
|
*/
|
|
|
|
void setSynonym (int index, const TQString & expr);
|
|
|
|
|
|
|
|
|
|
|
|
/** returns synonym of this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @result synonym or "" if no string available
|
|
|
|
*/
|
|
|
|
TQString getSynonym (int index) const;
|
|
|
|
|
|
|
|
/** sets example this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @param expr example of this index
|
|
|
|
*/
|
|
|
|
void setExample (int index, const TQString & expr);
|
|
|
|
|
|
|
|
|
|
|
|
/** returns example of this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @result example or "" if no string available
|
|
|
|
*/
|
|
|
|
TQString getExample (int index) const;
|
|
|
|
|
|
|
|
/** sets usage label this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @param usage usage label of this index
|
|
|
|
*/
|
|
|
|
void setUsageLabel (int index, const TQString & usage);
|
|
|
|
|
|
|
|
|
|
|
|
/** returns usage label of this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @result usage or "" if no string available
|
|
|
|
*/
|
|
|
|
TQString getUsageLabel (int index) const;
|
|
|
|
|
|
|
|
/** sets paraphrase of this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @param usage paraphrase of this index
|
|
|
|
*/
|
|
|
|
void setParaphrase (int index, const TQString & usage);
|
|
|
|
|
|
|
|
|
|
|
|
/** returns paraphrase of this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @result paraphrase or "" if no string available
|
|
|
|
*/
|
|
|
|
TQString getParaphrase (int index) const;
|
|
|
|
|
|
|
|
/** sets antonym this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @param expr antonym of this index
|
|
|
|
*/
|
|
|
|
void setAntonym (int index, const TQString & expr);
|
|
|
|
|
|
|
|
|
|
|
|
/** returns antonym of this expression
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @result antonym or "" if no string available
|
|
|
|
*/
|
|
|
|
TQString getAntonym (int index) const;
|
|
|
|
|
|
|
|
/** returns type of this expression
|
|
|
|
*
|
|
|
|
* @result type or "" if no type available
|
|
|
|
*/
|
|
|
|
TQString getType (int index) const;
|
|
|
|
|
|
|
|
/** all langs have same type ?
|
|
|
|
*
|
|
|
|
* @result true if all have same type
|
|
|
|
*/
|
|
|
|
bool uniqueType () const;
|
|
|
|
|
|
|
|
/** sets type of this expression
|
|
|
|
*
|
|
|
|
* @param index index of type
|
|
|
|
* @param type type of this expression ("" = none)
|
|
|
|
*/
|
|
|
|
void setType (int index, const TQString &type);
|
|
|
|
|
|
|
|
/** returns grade of given translation as string
|
|
|
|
*
|
|
|
|
* @param index index of expression
|
|
|
|
* @param rev_grade dito, in opposite direction
|
|
|
|
* @result number of knowlegde: 0=known, x=numbers not knows
|
|
|
|
*/
|
|
|
|
TQString gradeStr (int index, bool rev_grade = false) const;
|
|
|
|
|
|
|
|
/** sets grade of given translation
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param grade number of knowlegde: 0=known, x=numbers not knows
|
|
|
|
*/
|
|
|
|
void setGrade (int index, grade_t grade, bool rev_grade = false);
|
|
|
|
|
|
|
|
/** returns grade of given translation as int
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param rev_grade dito, in opposite direction
|
|
|
|
* @result number of knowlegde: 0=known, x=numbers not knows
|
|
|
|
*/
|
|
|
|
grade_t getGrade (int index, bool rev_grade = false) const;
|
|
|
|
|
|
|
|
/** increments grade of given translation
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param rev_grade dito, in opposite direction
|
|
|
|
*/
|
|
|
|
void incGrade (int index, bool rev_grade = false);
|
|
|
|
|
|
|
|
/** decrements grade of given translation
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param rev_grade dito, in opposite direction
|
|
|
|
*/
|
|
|
|
void decGrade (int index, bool rev_grade = false);
|
|
|
|
|
|
|
|
/** returns last query date of given translation as int
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param rev_date dito, in opposite direction
|
|
|
|
*/
|
|
|
|
time_t getQueryDate (int index, bool rev_date = false) const;
|
|
|
|
|
|
|
|
/** set last query date of given translation as int
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param rev_date dito, in opposite direction
|
|
|
|
*/
|
|
|
|
void setQueryDate (int index, time_t date, bool rev_date = false);
|
|
|
|
|
|
|
|
/** returns conjugations if available
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
*/
|
|
|
|
Conjugation getConjugation(int index) const;
|
|
|
|
|
|
|
|
/** sets conjugations
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param con conjugation block
|
|
|
|
*/
|
|
|
|
void setConjugation(int index, const Conjugation &con);
|
|
|
|
|
|
|
|
/** returns comparison if available
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
*/
|
|
|
|
Comparison getComparison(int index) const;
|
|
|
|
|
|
|
|
/** sets comparison
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param con comparison block
|
|
|
|
*/
|
|
|
|
void setComparison(int index, const Comparison &comp);
|
|
|
|
|
|
|
|
/** returns multiple choice if available
|
|
|
|
*
|
|
|
|
* @param index index of multiple choice
|
|
|
|
*/
|
|
|
|
MultipleChoice getMultipleChoice(int index) const;
|
|
|
|
|
|
|
|
/** sets multiple choice
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param con multiple choice block
|
|
|
|
*/
|
|
|
|
void setMultipleChoice(int index, const MultipleChoice &mc);
|
|
|
|
|
|
|
|
/** returns query count of given translation as int
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param rev_count dito, in opposite direction
|
|
|
|
*/
|
|
|
|
count_t getQueryCount (int index, bool rev_count = false) const;
|
|
|
|
|
|
|
|
/** set query count of given translation as int
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param rev_count dito, in opposite direction
|
|
|
|
*/
|
|
|
|
void setQueryCount (int index, count_t count, bool rev_count = false);
|
|
|
|
|
|
|
|
/** returns bad query count of given translation as int
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param rev_count dito, in opposite direction
|
|
|
|
*/
|
|
|
|
count_t getBadCount (int index, bool rev_count = false) const;
|
|
|
|
|
|
|
|
/** set bad query count of given translation as int
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param rev_count dito, in opposite direction
|
|
|
|
*/
|
|
|
|
void setBadCount (int index, count_t count, bool rev_count = false);
|
|
|
|
|
|
|
|
/** increment bad query count of given translation by 1
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param rev_count dito, in opposite direction
|
|
|
|
*/
|
|
|
|
void incBadCount (int index, bool rev_count = false);
|
|
|
|
|
|
|
|
/** increment query count of given translation by 1
|
|
|
|
*
|
|
|
|
* @param index index of translation
|
|
|
|
* @param rev_count dito, in opposite direction
|
|
|
|
*/
|
|
|
|
void incQueryCount (int index, bool rev_count = false);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
void Init();
|
|
|
|
|
|
|
|
private:
|
|
|
|
TQString origin;
|
|
|
|
|
|
|
|
// all these vectors must be deleted in removeTranslation()
|
|
|
|
vector<TQString> exprtypes;
|
|
|
|
vector<TQString> translations;
|
|
|
|
vector<TQString> remarks;
|
|
|
|
vector<TQString> usageLabels;
|
|
|
|
vector<TQString> paraphrases;
|
|
|
|
vector<TQString> fauxAmi;
|
|
|
|
vector<TQString> rev_fauxAmi;
|
|
|
|
vector<TQString> synonym;
|
|
|
|
vector<TQString> example;
|
|
|
|
vector<TQString> antonym;
|
|
|
|
vector<TQString> pronunces;
|
|
|
|
vector<grade_t> grades;
|
|
|
|
vector<grade_t> rev_grades;
|
|
|
|
vector<count_t> qcounts;
|
|
|
|
vector<count_t> rev_qcounts;
|
|
|
|
vector<count_t> bcounts;
|
|
|
|
vector<count_t> rev_bcounts;
|
|
|
|
vector<time_t> qdates;
|
|
|
|
vector<time_t> rev_qdates;
|
|
|
|
vector<Conjugation> conjugations;
|
|
|
|
vector<Comparison> comparisons;
|
|
|
|
vector<MultipleChoice> mcs;
|
|
|
|
|
|
|
|
int lesson;
|
|
|
|
bool inquery;
|
|
|
|
bool active;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // KEduVocExpression_H
|
|
|
|
|