• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

libkdeedu/keduvocdocument

  • sources
  • kde-4.12
  • kdeedu
  • libkdeedu
  • keduvocdocument
keduvoctext.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  Copyright 2007-2008 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
3  ***************************************************************************/
4 
5 /***************************************************************************
6  * *
7  * This program is free software; you can redistribute it and/or modify *
8  * it under the terms of the GNU General Public License as published by *
9  * the Free Software Foundation; either version 2 of the License, or *
10  * (at your option) any later version. *
11  * *
12  ***************************************************************************/
13 
14 #include "keduvoctext.h"
15 
16 #include "kvtml2defs.h"
17 #include "keduvockvtml2writer.h"
18 
19 #include <QtXml/QDomDocument>
20 
21 class KEduVocText::KEduVocTextPrivate
22 {
23 public:
25  QString m_text;
26 
27  grade_t m_grade;
28  count_t m_totalPracticeCount;
29  count_t m_badCount;
30  QDateTime m_practiceDate;
31 };
32 
33 KEduVocText::KEduVocText(const QString& text)
34  :d( new KEduVocTextPrivate )
35 {
36  d->m_text = text;
37  resetGrades();
38 }
39 
40 KEduVocText::KEduVocText( const KEduVocText &other )
41  :d( new KEduVocTextPrivate )
42 {
43  d->m_text = other.d->m_text;
44  setGrade( other.grade() );
45  setPracticeCount( other.practiceCount() );
46  setBadCount( other.badCount() );
47  setPracticeDate( other.practiceDate() );
48 }
49 
50 KEduVocText::~KEduVocText()
51 {
52  delete d;
53 }
54 
55 QString KEduVocText::text() const
56 {
57  return d->m_text;
58 }
59 
60 void KEduVocText::setText( const QString & expr )
61 {
62  d->m_text = expr.simplified();
63 }
64 
65 void KEduVocText::resetGrades()
66 {
67  d->m_grade = KV_NORM_GRADE;
68  d->m_totalPracticeCount = 0;
69  d->m_badCount = 0;
70 
71  QDateTime dt;
72  dt.setTime_t( 0 );
73  d->m_practiceDate = dt;
74 }
75 
76 
77 grade_t KEduVocText::grade() const
78 {
79  return d->m_grade;
80 }
81 
82 
83 void KEduVocText::setGrade( grade_t grade )
84 {
85  if ( grade > KV_MAX_GRADE ) {
86  grade = KV_MAX_GRADE;
87  }
88  d->m_grade = grade;
89 }
90 
91 
92 void KEduVocText::incGrade()
93 {
94  setGrade( qMax<grade_t>(grade() + 1, KV_LEV1_GRADE ) );
95 }
96 
97 
98 void KEduVocText::decGrade()
99 {
100  if ( grade() == KV_MIN_GRADE ) {
101  return;
102  }
103  setGrade( grade() - 1 );
104 }
105 
106 
107 count_t KEduVocText::practiceCount() const
108 {
109  return d->m_totalPracticeCount;
110 }
111 
112 
113 void KEduVocText::incPracticeCount()
114 {
115  setPracticeCount( practiceCount() + 1 );
116 }
117 
118 
119 void KEduVocText::incBadCount()
120 {
121  setBadCount( badCount() + 1 );
122 }
123 
124 
125 void KEduVocText::setPracticeCount( count_t count )
126 {
127  d->m_totalPracticeCount = count;
128 }
129 
130 
131 count_t KEduVocText::badCount() const
132 {
133  return d->m_badCount;
134 }
135 
136 
137 void KEduVocText::setBadCount( count_t count )
138 {
139  d->m_badCount = count;
140 }
141 
142 
143 QDateTime KEduVocText::practiceDate() const
144 {
145  return d->m_practiceDate;
146 }
147 
148 
149 void KEduVocText::setPracticeDate( const QDateTime & date )
150 {
151  d->m_practiceDate = date;
152 }
153 
154 KEduVocText & KEduVocText::operator =(const KEduVocText & other)
155 {
156  d->m_text = other.d->m_text;
157  d->m_grade = other.d->m_grade;
158  d->m_totalPracticeCount = other.d->m_totalPracticeCount;
159  d->m_badCount = other.d->m_badCount;
160  d->m_practiceDate = other.d->m_practiceDate;
161 
162  return *this;
163 }
164 
165 bool KEduVocText::operator ==(const KEduVocText & other) const
166 {
167  return
168  d->m_text == other.d->m_text &&
169  d->m_grade == other.d->m_grade &&
170  d->m_totalPracticeCount == other.d->m_totalPracticeCount &&
171  d->m_badCount == other.d->m_badCount &&
172  d->m_practiceDate == other.d->m_practiceDate;
173 }
174 
175 void KEduVocText::toKVTML2(QDomElement& parent)
176 {
177  QDomDocument domDoc = parent.ownerDocument();
178  if (d->m_text.isEmpty() && d->m_totalPracticeCount == 0) {
179  return;
180  }
181 
182  // the text
183  KEduVocKvtml2Writer::appendTextElement( parent, KVTML_TEXT, text() );
184 
185  // grades
186  if ( d->m_totalPracticeCount > 0 ) {
187  QDomElement gradeElement = domDoc.createElement( KVTML_GRADE );
188 
189  //<currentgrade>2</currentgrade>
190  KEduVocKvtml2Writer::appendTextElement( gradeElement, KVTML_CURRENTGRADE, QString::number( grade() ) );
191 
192  //<count>6</count>
193  KEduVocKvtml2Writer::appendTextElement( gradeElement, KVTML_COUNT, QString::number( practiceCount() ) );
194 
195  //<errorcount>1</errorcount>
196  KEduVocKvtml2Writer::appendTextElement( gradeElement, KVTML_ERRORCOUNT, QString::number( badCount() ) );
197 
198  //<date>949757271</date>
199  KEduVocKvtml2Writer::appendTextElement( gradeElement, KVTML_DATE, practiceDate().toString( Qt::ISODate ) );
200 
201  parent.appendChild( gradeElement );
202  }
203 }
204 
205 void KEduVocText::fromKVTML2(QDomElement & parent)
206 {
207  setText( parent.firstChildElement( KVTML_TEXT ).text() );
208 
209  // grade element
210  const QDomElement& gradeElement = parent.firstChildElement( KVTML_GRADE );
211  if ( !gradeElement.isNull() ) {
212 
213  setGrade( gradeElement.firstChildElement(KVTML_CURRENTGRADE).text().toInt() );
214 
215  setPracticeCount( gradeElement.firstChildElement(KVTML_COUNT).text().toInt() );
216 
217  setBadCount( gradeElement.firstChildElement(KVTML_ERRORCOUNT).text().toInt() );
218 
219  QString dateString = gradeElement.firstChildElement(KVTML_DATE).text();
220  if ( !dateString.isEmpty() ) {
221  QDateTime value = QDateTime::fromString( dateString, Qt::ISODate );
222  setPracticeDate( value );
223  }
224  }
225 }
226 
227 bool KEduVocText::isEmpty()
228 {
229  return d->m_text.isEmpty();
230 }
KEduVocText::isEmpty
bool isEmpty()
If the string inside is empty this returns true.
Definition: keduvoctext.cpp:227
KEduVocText::incPracticeCount
void incPracticeCount()
increment query count of given translation by 1
Definition: keduvoctext.cpp:113
KV_MAX_GRADE
#define KV_MAX_GRADE
Definition: keduvoctext.h:21
KVTML_DATE
#define KVTML_DATE
Definition: kvtml2defs.h:157
KV_MIN_GRADE
#define KV_MIN_GRADE
Definition: keduvoctext.h:22
KV_NORM_GRADE
#define KV_NORM_GRADE
Definition: keduvoctext.h:24
KEduVocText::incBadCount
void incBadCount()
increment bad query count of given translation by 1
Definition: keduvoctext.cpp:119
count_t
unsigned short count_t
Definition: keduvoctext.h:50
KEduVocText::~KEduVocText
~KEduVocText()
default destructor
Definition: keduvoctext.cpp:50
keduvoctext.h
KEduVocText::KEduVocText
KEduVocText(const QString &text=QString())
default constructor
Definition: keduvoctext.cpp:33
KEduVocText::practiceDate
QDateTime practiceDate() const
returns last practice date as int
Definition: keduvoctext.cpp:143
KEduVocText::setBadCount
void setBadCount(count_t count)
set bad query count as int
Definition: keduvoctext.cpp:137
KEduVocText::operator==
bool operator==(const KEduVocText &other) const
Compare two sets of grades.
Definition: keduvoctext.cpp:165
KEduVocText
A text in vocabulary documents.
Definition: keduvoctext.h:59
keduvockvtml2writer.h
KEduVocKvtml2Writer::appendTextElement
static void appendTextElement(QDomElement &parent, const QString &elementName, const QString &text)
Helper function, appends a new element AND a text child to parent Only appends if text is NOT empty...
Definition: keduvockvtml2writer.cpp:654
KEduVocText::decGrade
void decGrade()
decrements grade
Definition: keduvoctext.cpp:98
KEduVocText::setGrade
void setGrade(grade_t grade)
sets the grade
Definition: keduvoctext.cpp:83
KEduVocText::operator=
KEduVocText & operator=(const KEduVocText &other)
Equal operator to copy grades.
Definition: keduvoctext.cpp:154
grade_t
unsigned short grade_t
Definition: keduvoctext.h:49
KEduVocText::fromKVTML2
void fromKVTML2(QDomElement &parent)
Definition: keduvoctext.cpp:205
KVTML_TEXT
#define KVTML_TEXT
Definition: kvtml2defs.h:130
KEduVocText::resetGrades
void resetGrades()
Clears grading and date information.
Definition: keduvoctext.cpp:65
KEduVocText::incGrade
void incGrade()
increments grade
Definition: keduvoctext.cpp:92
KEduVocText::text
QString text() const
The translation as string (the word itself)
Definition: keduvoctext.cpp:55
kvtml2defs.h
KEduVocText::badCount
count_t badCount() const
returns bad query count as int
Definition: keduvoctext.cpp:131
KVTML_GRADE
#define KVTML_GRADE
Definition: kvtml2defs.h:152
KVTML_CURRENTGRADE
#define KVTML_CURRENTGRADE
Definition: kvtml2defs.h:154
KV_LEV1_GRADE
#define KV_LEV1_GRADE
Definition: keduvoctext.h:27
KEduVocText::practiceCount
count_t practiceCount() const
returns how often this entry has been practiced as int
Definition: keduvoctext.cpp:107
KEduVocText::setPracticeDate
void setPracticeDate(const QDateTime &date)
Set last query date.
Definition: keduvoctext.cpp:149
KVTML_ERRORCOUNT
#define KVTML_ERRORCOUNT
Definition: kvtml2defs.h:156
KVTML_COUNT
#define KVTML_COUNT
Definition: kvtml2defs.h:155
KEduVocText::setText
void setText(const QString &expr)
Sets the translation.
Definition: keduvoctext.cpp:60
KEduVocText::grade
grade_t grade() const
returns grade as int
Definition: keduvoctext.cpp:77
KEduVocText::setPracticeCount
void setPracticeCount(count_t count)
set how often this entry has been practiced as int
Definition: keduvoctext.cpp:125
KEduVocText::toKVTML2
void toKVTML2(QDomElement &parent)
Definition: keduvoctext.cpp:175
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:37:21 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

libkdeedu/keduvocdocument

Skip menu "libkdeedu/keduvocdocument"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal